apt-get installを使用する場合、自動的に「はい」と答えます


356

apt-get install「続行しますか[y / N]?」に対して「はい」と答える方法はありますか?

回答:



175

の問題:

apt-get --yes install $something

パッケージ署名所有者の公開鍵がキーリングにない場合、またはその他の条件がある場合、手動で確認するように求められるということです。確認を求めないようにするには、次のようにします。

apt-get --yes --force-yes install $something

これらの設定を永続的にしたい場合は、/ etc / apt / apt.conf.d / 90forceyesなどのファイルを/etc/apt/apt.conf.d/に作成し、次の内容を追加します。

APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";

3
多様性のために+1。すべて-yが退屈になっていた。(さらに、より完全な答えです。)
デニスウィリアムソン

1
これは、「「はい、私が言うとおりに!」というフレーズを続けて入力する」と言ったときにも機能しますか?そうでない場合、回避策は何ですか?chrootされたdebianイメージでsysvinitをsystemdに置き換えようとすると、これに遭遇します。
レナート・ローランド

13
今まで使用しないでください--force-yes:との関連スレッドへのこの応答debian-devel、提案する--force-yesシステムが使用できなくなる可能性があります。(答えはOPが述べたように実際に問題に対処しているので、私は
ダウン投票していませ

7
APT :: Get :: Assume-Yes "true"; Dockerコンテナでのインストールの中断を回避するのに役立ちました。
メフディSadeghi

3
force-yesは廃止されました。tracker.mender.io/browse/CFE-2360
rrawat

53

対話型プロンプトが表示されたときにデフォルトの回答を自動的に表示する場合も、使用できることに注意してください。 DEBIAN_FRONTEND=noninteractive

単一インストール:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]

例えば:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix

すべての更新:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y update 

およびを使用して-o Dpkg::Options::="--force-confdef"より細かいオプションを設定できます-o Dpkg::Options::="--force-confold"

例:

apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"

または

apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

対話型プロンプトの例:

ここに画像の説明を入力してください

興味深い読み物: Debianパッケージの無人インストールを実行します


1
素晴らしい答え。でも、-yサービスを再起動するかどうかを尋ねるプロンプトが表示されました。すべてのプロンプトを完全に排除するためにこれが必要でした。
ウィスバッキー

14
APT::Get::Assume-Yes "true";

APT::Get::force-yes "true";

これは少なくとも入力し/etc/apt/apt.confてコメントアウトする必要があります。UbuntuがMicrosoftに常に許可を求めているのではないかと心配しています。

「本当によろしいですか?」もちろん、私はキーボードをただタイプするだけで、うれしそうにクリックする訓練を受けた猿ではありません。

次に、ドアは「外に出てもよろしいですか?」と尋ねます。
オーブンは、「本当に調理しますか?」と尋ねます。
自動車は「本当にブレーキをかけますか?」と尋ねます。
消火器は「本当に消しますか?」と尋ねます。
デイブ、ごめんなさい
HAL9000は収縮を使用できましたが、データは使用できなかったか、使用できませんでした。


3
HAL9000とdpkgが許可を求めるのとの違いは、HA​​Lが「いいえ、ピリオド」と言ったのに対し、「はい、私が言うとおりに」ということは、システムを完全に完全に壊そうとしている場合にのみ表示されます。それがあなたが望むものであるならば、確かに、先に行きなさい。ただし、その場合に警告を表示することは合理的です。
ウーターヴェルヘルスト


7
apt-get -y update
apt-get -y install [package]

2
+1ですが、なぜupdate許可が必要ですか?
アミシン

@amyassin apt-get updateコマンドは、ルートが所有するシステムファイルであるローカルパッケージリスト(インデックス)を更新するため、ルート権限が必要です。
jjmontes

3

一般に、マニュアルのオプションはうまく機能するはずです

apt-get -y --force-yes install package

成功しない場合は、yesコマンドを使用してみてください。

yes | apt-get -y --force-yes install package

私の迷走シェルプロビジョニングスクリプトでこれを使用しました

PS:非インタラクティブにしたいが、一般的にnoを指定した場合、これを試すことができます:

yes no | apt-get install package

1

新しい(wellaptエイリアスも-y--yes)スイッチを取ります:

sudo apt -y upgrade

1

常に-y引数が必要な場合は、行を追加することをお勧めします

alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands

あなたの.bashrcに。これは、コメントで説明されているように、すべてのapt-getコマンドに-y引数を自動的に追加するため、すべてのダウンロードを承認します。


注:.bashrcを元に戻し、シェルを再起動するまで、これは真のままです。


1

特にwiresharkをインストールするときに、スクリプトでデフォルト以外を選択する方法を探していましたが、次のようにtmuxを使用してシェルとやり取りしました:

# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.