
apt-get
はい/いいえメッセージを強制的に表示する方法はありますか?オプションがありますが、存在しないか同様のオプションが--force-yes
あるようです。--force-prompt
すべての依存関係がインストールされているパッケージをインストールしようとすると、はい/いいえプロンプトが表示されず、インストールが開始されます。潜在的な依存関係が事前にインストールされているかどうかわからないため、依存関係が存在するかどうか、およびどの依存関係がインストールされているかを確認したい場合は、これが問題になる可能性があります。
メモ:「apt-get install」は、いつ継続するかを確認するように要求しますか?プロンプトが表示される標準条件を説明するので、やや関連しています。強制する方法を知りたいです。
答え1
現在、apt-get実装ではこれを行うことができないため、機能要求を送信して管理者にアピールする必要があります。 apt-getの現在の動作は、インストールされているパッケージのリストがインストールされるパッケージのリストと同じであり、他のパッケージがアップグレードまたは中断の影響を受けないように明示的に要求する場合、apt-get は、ユーザーが何をするかをすでに決定していると仮定します。、パッケージを実際にインストールせずに何が起こるのかわからない場合、または分析したい場合は、次のことを使用できます。コスタスがおすすめの-s, --simulate, --just-print, --dry-run, --recon, --no-act
。
インストールするパッケージのバージョン(この場合はバグ)を分析し、実際にインストールする前に警告できるapt-listbugsなどの他のツールがあります。
答え2
yes
このコマンドはインストール時にのみ想定されます。パック(コマンドラインから始まる)とすべての依存関係システムはすでに必要なパッケージを除いて何もインストールする必要はありません。
つまり、「見たものがないと(追加パッケージなし)、ヒントもありません(質問がない)」です。
テスト目的でキーを使用できます-s, --simulate, --just-print, --dry-run, --recon, --no-act
答え3
古い質問のようです。しかし、今は同様の状況です。通常私は何かを使用sudo aptitude install -P PACKAGE_NAME
し、インストールする前に常に尋ねます。ただし、現在Debianのデフォルトのパッケージマネージャにはapt|apt-get
この機能はありません。もちろん、まだインストールしてaptitude
使用することができます...しかし、インストールする前に尋ねる小さなsh / bashラッパー関数/スクリプトを作成しましたapt-get
。本当にプリミティブなので、端末に関数として書きました。
$ f () { sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf'; read -p 'Do You want to continue (y/N): ' ans; case $ans in [yY] | [yY][eE][sS]) sudo apt-get -y install "$@";; *);; esac; }
もう少し明確に説明すると、次のようになります。
f () {
# Do filtered simulation - without lines contains 'Inst' and 'Conf'
sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf';
# Interact with user - If You want to proceed and install package(s),
# simply put 'y' or any other combination of 'yes' answer and tap ENTER.
# Otherwise the answer will be always not to proceed.
read -p 'Do You want to continue (y/N): ' ans;
case $ans in
[yY] | [yY][eE][sS])
# Because we said 'yes' I put -y to proceed with installation
# without additional question 'yes/no' from apt-get
sudo apt-get -y install "$@";
;;
*)
# For any other answer, we just do nothing. That means we do not install
# listed packages.
;;
esac
}
この機能をsh / bashスクリプトとして使用するには、スクリプトファイル(my_apt-get.sh
例:コンテンツを含むスクリプトファイル)を作成します(注:リストには短くするためのコメントは含まれていません;-)。
#!/bin/sh
f () {
sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf';
read -p 'Do You want to continue (y/N): ' ans;
case $ans in
[yY] | [yY][eE][sS])
sudo apt-get -y install "$@";
;;
*)
;;
esac
}
f "$@"
次に、たとえば~/bin/
実行可能にします$ chmod u+x ~/bin/my_apt-get.sh
。ディレクトリが変数~/bin
に含まれている場合は、PATH
次のように簡単に実行できます。
$ my_apt-get.sh PACKAGE_NAME(S)_TO INSTALL
注:
- このコードはを使用します
sudo
。アカウントを使用している場合はroot
調整が必要な場合があります。 - コードはシェルのオートコンプリートをサポートしていません。
- コードがシェルモード(例:「!」、「*」、「?」、...)でどのように機能するかわかりません。