無人Debianのインストール時にRepoの新しい設定ファイルをapt-getから受け入れる方法

無人Debianのインストール時にRepoの新しい設定ファイルをapt-getから受け入れる方法

私はDebianタグ付きプロファイルの1つを含むパッケージであるリポジトリのパッケージを自動インストールするためのスクリプトを作成しています。新しいプロファイルを許可するようにapt-get/に渡すオプションはありますか?aptitude

デフォルトでは、次のような apt/が必要です。aptitudedpkg --force-confnew

apt-getY を使用してインストールする場合は、次の質問に対する回答が必要です。


構成ファイル "/opt/application/conf/XXX.conf"

==> File on system created by you or by a script.
==> File also in package provided by package maintainer.

What would you like to do about it ?  Your options are:
Y or I  : install the package maintainer's version
N or O  : keep your currently-installed version
  D     : show the differences between the versions
  Z     : background this process to examine the 

The default action is to keep your current version.

追加情報:

sudoまた、コマンドを実行するためにパイプにパスワードを渡しています。

echo "mysudopass"|sudo -S apt-get mypackage

インストールが構成対話型ステップにあるときにインストールエラーを表示します。

私はUbuntu 10.04
aptバージョンを使用しています:apt 0.7.25.3

利用できない理由dpkg: この Debian はリポジトリからインストールされ、マイ コンピュータにローカル Debian がありません。

答え1

次のdpkgパラメータを渡すことができます。apt-get

apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install pkgname1 pkgname2 ...

古い設定ファイルがまだ存在する場合は--force-confdef上書きされません。だからおそらくあなたはそれを使用しないでしょう。私は他の人のためにそれを文書化しています。

sudoユーザーの認証オプションを拒否したり、特定のアイテムNOPASSWDにラベルを追加したりすると、パスワードは要求されません。例えば

someuser ALL = NOPASSWD: /usr/bin/apt-get

答え2

次のことを試すことができます。

export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install whatever-2

ただし、これは空の基本パスワードと同じ意味を持つことに注意してください。

バラより須藤(5)sudoパスワードのない通話を許可する方法について

答え3

他の答えに加えて、環境を設定する必要があるかもしれません。UCF_FORCE_CONFFNEW=1

たとえば、debianstretchのopensshはdebconfの代わりにucfを使用してopenssh-server/openssh-7.4p1/debian/openssh-server.postinst設定ファイルを要求します。 (これはagainstをopenssh-server.postinst使って見ることができます。dgethttp://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dsc)

無料ユーザーになることに加えて、このページのすべてのヒントを使用する必要があります。debconfプリセット

export DEBIAN_FRONTEND=noninteractiveしかし、私たちは何か(重要かもしれません)を見逃していないかどうか疑問に思いました。私たちのユースケースは、オペレータが作業を始めることです。アップグレードは非対話型に進みますが、問題が発生してダイアログボックスが表示されたら、オペレータが参加します。あなたの状況は異なる場合があります。

しかし、これはexport DEBIAN_FRONTEND=noninteractiveあなたのことわざの大きなハンマーです。

注:設定-o Dpkg::Options::=--force-confnewおよび/またはUCF_FORCE_CONFFNEW=1手段みんなインストールされたパッケージの構成ファイルは、アップストリーム構成ファイルに戻ります。たとえば、の場合、openssh-server設定は/etc/ssh/sshd_config工場設定にリセットされます。たとえばPermitRootLogin=yes削除されます。でも当然使わないから大丈夫でしょう! ;-)

答え4

または何か必須検査推奨事項これらの難しいプログラムオプションを追加する必要がないように、APT設定に追加することをお勧めします。また、これらの設定は無人アップグレードに役立ちます。

/etc/apt/apt.conf.d/71debconf次のコンテンツを含むファイルを作成します。

Dpkg::Options {
  "--force-confnew";
};

注(Geoff):この変更はグローバルな変更です。無人アップグレードを実行しようとしていますが、手動で設定した他のパッケージがシステムにある場合、これは適切なソリューションではありません。

関連情報