私はUbuntu PCに必要なすべてのアプリケーションを一度にインストールするためのシェルスクリプトを書いています(散歩や他のことができる間)。ほとんどのアプリケーションでは、-y
ステートメントの末尾に追加することがapt-get install
ユーザーの介入を防ぐのに効果的です。私のスクリプトは次のとおりです
#!/bin/bash
add-apt-repository ppa:webupd8team/sublime-text-3 -y
apt-get update -y
apt-get upgrade -y
apt-get install synaptic -y
apt-get install wireshark -y
Do you want to continue? [Y/n]
これ以上orについて心配する必要はありませんが、Press [ENTER] to continue or ctrl-c to cancel adding it
問題はwireshark
次の対話型プロンプトに応答する必要があることです。
そのような強制介入を避ける方法は?
答え1
構成デブカンファレンスデータベース:
echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
その後、インストールしてください。ワイヤーシャーク:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark
出力を抑制することもできます。適切。この場合:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark > /dev/null
答え2
apt / dpkgシステムは、無人インストールまたは非対話型インストールを提供できます。
これには、DEBIAN_FRONTEND
変数の設定とnoninteractive
フラグの使用が含まれます-y
。たとえば、
export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]
エラーが発生した場合は、実際に非対話型インストールを実行していることをよりq
確実にするためにこのオプションを設定できます。 dpkg
DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename]
場合によっては、同じスクリプト/シェルプロセスで後でインストールされる一部のパッケージのプロンプトに従う方が簡単になる可能性があります。この場合、変数のエクスポートをキャンセルできますDEBIAN_FRONTEND
。
unset DEBIAN_FRONTEND
事前設定された設定オプションの場合は、debconf-utils
次のコマンドを使用してインストールすると便利ですdebconf-get-selections
。
sudo apt-get install debconf-utils