Pergunta antiga, eu posso ver, mas em situação semelhante agora. Normalmente eu uso sudo aptitude install -P PACKAGE_NAME
, o que sempre pergunto antes de instalar. No entanto, agora o gerenciador de pacotes padrão do Debian é apt|apt-get
e não possui essa funcionalidade. É claro que ainda posso instalá aptitude
-lo e usá-lo ... No entanto, escrevi uma pequena função / script sh / bash wrapper apt-get
para perguntar antes da instalação. É realmente cru e eu escrevi como uma função no meu terminal.
$ 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; }
Agora, vamos deixar mais claro:
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
}
Para usar esta função como um script sh / bash, basta criar um arquivo de script, por exemplo, my_apt-get.sh
com conteúdo (Nota: a listagem não contém comentários, para torná-lo um pouco mais curto ;-)):
#!/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 "$@"
Em seguida, coloque-o para, por exemplo, in ~/bin/
e torne-o executável com $ chmod u+x ~/bin/my_apt-get.sh
. Se o diretório ~/bin
estiver incluído na sua PATH
variável, você poderá executá-lo simplesmente:
$ my_apt-get.sh PACKAGE_NAME(S)_TO INSTALL
Observe:
- O código usa
sudo
. Se você usa uma root
conta, provavelmente precisará ajustá-la.
- O código não suporta o preenchimento automático de shell
- Não tem idéia de como o código funciona com padrões de shell (por exemplo, "!", "*", "?", ...)