私は、必要なすべてのアプリケーションを 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]
またはについてはもう心配する必要はありませんが、 については、以下に示すように対話型プロンプトへの応答が必要となるという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
また、次の出力を抑制したい場合もある。apt-getその場合は:
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