DEBIAN_FRONTEND環境変数


22

私の潜在的なホスティングプロバイダー、KVMベースのサーバーのOSイメージを最小限にするために、ターミナルでコマンドを実行すること提案しています。それらのKVMテンプレートには必要のないパッケージが付属しているため、同じコマンドを使用して不要なパッケージを削除できると考えました。

そのコマンドはで始まり、次のようにDEBIAN_FRONTEND=noninteractive呼び出しapt-get removeます。

DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" package-1 package-2 ... package-n; apt-get -y autoremove; apt-get clean all 

DEBIAN_FRONTEND環境変数に遭遇するのは初めてであり、今のところ有用な情報を見つけることができませんでした。だから私noninteractiveはそれを設定するとどうなるのか、そしてそれが賢明かどうか疑問に思います、なぜなら私はその値(noninteractive)が持続すると思うからです。


4
それが何をするのか知らなくても、長いコマンド文字列の一部として変数をそのように設定すると、そのコマンドを実行するときにのみ有効であることがわかります。持続しません。
グンナルハルマルソン

回答:


27

aptコマンドを単に先頭に追加するだけでDEBIAN_FRONTEND=somethingは、コマンドが適用される単一のコマンドの後には保持されません。

DEBIAN_FRONTENDオプションは、セクション7マニュアルページに記載されていますdebconf(あなたがインストールする必要がありdebconf-doc、システムでこれらを利用できるようにするために、パッケージを)。からman 7 debconf

Frontends
   One of debconf's unique features is that the interface it  presents  to
   you is only one of many, that can be swapped in at will. There are many
   debconf frontends available:

   dialog The default frontend, this uses  the  whiptail(1)  or  dialog(1)
          programs to display questions to you. It works in text mode.

   readline
          The  most  traditional frontend, this looks quite similar to how
          Debian configuration always has been:  a  series  of  questions,
          printed  out  at  the console using plain text, and prompts done
          using the readline library. It even supports tab completion. The
          libterm-readline-gnu-perl package is strongly recommended if you
          chose to use this frontend; the default readline module does not
          support  prompting  with default values.  At the minimum, you'll
          need the perl-modules package installed to use this frontend.

          This frontend has some special hotkeys. Pageup (or ctrl-u)  will
          go  back  to  the previous question (if that is supported by the
          package that is using debconf), and pagedown  (or  ctrl-v)  will
          skip forward to the next question.

          This is the best frontend for remote admin work over a slow con‐
          nection, or for those who are comfortable with unix.

   noninteractive
          This is the anti-frontend. It never interacts with you  at  all,
          and  makes  the  default  answers  be used for all questions. It
          might mail error messages to root, but that's it;  otherwise  it
          is  completely  silent  and  unobtrusive, a perfect frontend for
          automatic installs. If you are using this front-end, and require
          non-default  answers  to questions, you will need to preseed the
          debconf database; see the section below  on  Unattended  Package
          Installation for more details.

また、次の点にも注意してください。

   You can change the default frontend debconf uses by reconfiguring  deb‐
   conf.  On the other hand, if you just want to change the frontend for a
   minute, you can set the DEBIAN_FRONTEND  environment  variable  to  the
   name of the frontend to use. For example:

     DEBIAN_FRONTEND=readline apt-get install slrn

   The  dpkg-reconfigure(8) and dpkg-preconfigure(8) commands also let you
   pass --frontend= to them, followed by the frontend  you  want  them  to
   use.

   Note  that not all frontends will work in all circumstances. If a fron‐
   tend fails to start up for some reason, debconf will print out  a  mes‐
   sage explaining why, and fall back to the next-most similar frontend.

1
なるほどDEBIAN_FRONTEND=noninteractive、一般的にDockerfilesで使用します。この答えは、なぜ--yesより明示的で、ほとんどの場合、ニーズを満たすので、aptコマンドでフラグを使用しないのか疑問に思います。
デニス

@Dennis readlineが必ずしもインストールされているわけではなく、aptが警告を出力できるためだと思います。
ハイド

4
注:DEBIAN_FRONTENDwith を使用する場合sudoは、sudoコマンドではなく変数を設定します。それは:sudo DEBIAN_FRONTEND=noninteractive apt-get install slrnです。env変数設定をの前sudoに配置すると、sudoコマンド自体に対して有効になり、実行中sudoapt-getコマンドにコピーされません。sudo実際のコマンドとの間で使用すると、sudo実行するコマンドのenv変数を設定するための構文になります(manページを参照)。これで苦労したので、共有したいと思いました。
caxcaxcoatl

1
あなたがフロントエンドのデフォルトの動作を変更したい場合noninteractiveは、次のコマンドでそれを行うことができます:dpkg-reconfigure debconf --frontend=noninteractive
カーターパプ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.