web-dev-qa-db-ja.com

preseedを使用してパッケージを削除するにはどうすればよいですか?

自動化された「質問なし」のpreseedシステムをセットアップし、Dustin Kirklandの server preseed を例として使用しています。

次の行を使用して、自動インストールの一部として3つのパッケージをインストールします。

d-i pkgsel/include string byobu vim openssh-server

私はこれをinverseを探しています。基本的に自動インストールの一部としてパッケージを削除できます。

  • インストールガイド を確認しました
  • これをチェックしました preseedの例 ですが、これが利用可能なすべてのオプションの標準リストであるかどうかは明らかではありません。

d-i preseed/late_command string apt-remove packagenameを使用して、インストールの完了時に不要なものをクリーンアップする必要があると考えていますが、よくわかりません

11
Jorge Castro

Preseed設定スクリプトでパッケージを削除または削除するオプションはありませんが、このコマンドを使用できます。

d-i preseed/late_command

This command is run just before the install finishes, but when there is
still a usable /target directory. You can chroot to /target and use it
directly, or use the apt-install and in-target commands to easily install
packages and run commands in the target system.
"in-target" means: chroot /target
d-i preseed/late_command string [in-target] foo

例:

d-i preseed/late_command string \
            in-target apt-get remove packagename

スクリプトを実行することもできます:

d-i preseed/late_command string \
        in-target wget http://........./postinst.sh -O /root/postinst.sh; \
        in-target /bin/bash /root/postinst.sh

または、DEBファイルのグループをインストールします。

d-i preseed/late_command               string \
    for deb in /hd-media/*.deb; do cp $deb /target/tmp; \
    chroot /target dpkg -i /tmp/$(basename $deb); done
11
hhlp

押された例は単なる例です。考えられるすべてのd-iの組み合わせが含まれているわけではなく、より一般的なものだけが含まれています。

個人的には、インストールからパッケージを削除しようとしたことはないので、特定のd-iコマンドがあるかどうかはわかりません。 d-i preseed late_commandが機能するようです。 d-i docsをすばやく検索しても何も生成されませんでした...しかし、もちろん、コリンは知っているでしょう;-)

または、基本的なサーバーから起動し、必要なものを追加することもできます。

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
0
hggdh