Vieja pregunta, puedo ver, pero en una situación similar ahora. Usualmente uso sudo aptitude install -P PACKAGE_NAME
, lo que siempre pregunto antes de instalar. Sin embargo, ahora en Debian el administrador de paquetes predeterminado es apt|apt-get
y no tiene esta funcionalidad. Por supuesto, aún puedo instalarlo aptitude
y usarlo ... Sin embargo, he escrito una pequeña función / script sh / bash wrapper para apt-get
preguntar antes de la instalación. Es realmente crudo y lo escribí como una función en mi 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; }
Ahora, hagámoslo más 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 función como un script sh / bash, simplemente cree un archivo de script, por ejemplo, my_apt-get.sh
con contenido (Nota: el listado no contiene comentarios, para hacerlo un poco más corto ;-)):
#!/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 "$@"
Luego póngalo, por ejemplo, en ~/bin/
y hágalo ejecutable con $ chmod u+x ~/bin/my_apt-get.sh
. Si el directorio ~/bin
está incluido en su PATH
variable, podrá ejecutarlo simplemente:
$ my_apt-get.sh PACKAGE_NAME(S)_TO INSTALL
Tenga en cuenta:
- El código sí usa
sudo
. Si usa la root
cuenta, probablemente necesite ajustarla.
- El código no admite el autocompletado de shell
- No tengo idea de cómo funciona el código con los patrones de shell (por ejemplo, "!", "*", "?", ...)