Vieille question, je peux voir, mais dans une situation similaire maintenant. Habituellement, j'utilise ce que je sudo aptitude install -P PACKAGE_NAME
demande toujours avant l'installation. Cependant, le gestionnaire de paquets par défaut de Debian est maintenant apt|apt-get
et il n'a pas cette fonctionnalité. Bien sûr, je peux toujours l'installer aptitude
et l'utiliser ... Cependant, j'ai écrit une petite fonction / script sh / bash wrapper pour apt-get
demander avant l'installation. C'est vraiment brut et je l'ai écrit en fonction dans mon 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; }
Maintenant, soyons plus clairs:
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
}
Pour utiliser cette fonction comme un script sh / bash, il suffit de créer un fichier script par exemple my_apt-get.sh
avec du contenu (Remarque: la liste ne contient pas de commentaires, pour la raccourcir un peu ;-)):
#!/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 "$@"
Ensuite, mettez-le par exemple dans ~/bin/
et rendez-le exécutable avec $ chmod u+x ~/bin/my_apt-get.sh
. Si le répertoire ~/bin
est inclus dans votre PATH
variable, vous pourrez l'exécuter simplement en:
$ my_apt-get.sh PACKAGE_NAME(S)_TO INSTALL
Notez s'il vous plaît:
- Le code utilise
sudo
. Si vous utilisez un root
compte, vous devrez probablement l'ajuster.
- Le code ne prend pas en charge la saisie semi-automatique du shell
- Je n'ai aucune idée de la façon dont le code fonctionne avec les modèles de shell (par exemple "!", "*", "?", ...)