古い質問ですが、私は見ることができますが、今は同じような状況です。通常、私はを使用しますsudo aptitude install -P PACKAGE_NAME
。インストールする前に常に尋ねるものです。ただし、現在Debianではデフォルトのパッケージマネージャーがapt|apt-get
あり、この機能はありません。もちろん、まだインストールaptitude
して使用できます...しかし、apt-get
インストール前に確認するための小さなsh / bashラッパー関数/スクリプトを記述しました。それは本当に生で、私は自分の端末で関数としてそれを書きました。
$ 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
アカウントを使用している場合は、おそらくそれを調整する必要があります。
- コードはシェルのオートコンプリートをサポートしていません
- シェルパターンでコードがどのように機能するかわからない(例: "!"、 "*"、 "?"、...)