24

リポジトリにあるパッケージの無人インストール用のスクリプトを書いています。これは、構成とマークされた Debian の 1 つを含むソフトウェア パッケージです。新しい構成ファイルを受け入れるように apt-get/aptitude に渡すことができるオプションはありますか?

基本的に、dpkg --force-confnew に相当する apt/aptitude が必要です

Y を使用して apt-get インストール中に提起された次の質問に答える必要があります。


設定ファイル `/opt/application/conf/XXX.conf'

==> あなたまたはスクリプトによって作成されたシステム上のファイル。

==>パッケージメンテナーが提供するパッケージにもファイルがあります。

それについてどうしたいですか?オプションは次のとおりです。

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 

デフォルトのアクションは、現在のバージョンを維持することです。


追加情報:

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

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

これは、インストールが Config Interactive フェーズにあるときに、インストールのエラーにフラグを立てています。

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

dpkg を使用できない理由: これらの debian は Repo からインストールする必要があり、自分のマシンにローカルの debian がありません

事前に助けてくれてありがとう!!!!

4

3 に答える 3

29

あなたが探している apt-get コマンドラインは

apt-get -o Dpkg::Options::="--force-confnew" install your-package

sudo -S の問題については、「|」の周りにスペースを追加してみてください。キャラクター。TTY を上書きせずにパスワードを su/sudo/ssh に渡す方法は? 役に立つかもしれません。

于 2011-11-07T00:43:28.607 に答える
12

他の回答の提案を試してみたところ、localepurge パッケージをインストールしようとしたときに十分ではないことがわかりました。

debconf-set-selections を使用して必要なものを設定した後、次を使用する必要がありました。

DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install localepurge

DEBIAN_FRONTEND 環境変数が非対話型に設定されている場合にのみ、localepurge に要求したことを実行させることができました。これは、他のパッケージにも当てはまります。

もちろん、必要に応じてスクリプトを使用して変数をエクスポートすることもできますが、他のパッケージを台無しにする可能性があることに注意してください。例えば:

#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt-get -o Dpkg::Options::="--force-confnew" install -y localepurge foo bar

-y は apt-get に質問をやめるように指示します ( man ページを参照)。

于 2014-01-21T11:04:03.903 に答える