Eski soru, görebiliyorum, ama şimdi benzer bir durumda. Genellikle ben kullanımını yapmak sudo aptitude install -P PACKAGE_NAME
her zaman önce sormak yüklemek ne. Ancak şimdi Debian varsayılan paket yöneticisi apt|apt-get
ve bu işlevselliği yok. Tabii ki hala yükleyebilir aptitude
ve kullanabilirsiniz ... Ancak ben apt-get
kurulumdan önce sormak için küçük sh / bash sarma işlevi / komut yazdı . Gerçekten ham ve terminalimde bir işlev olarak yazdım.
$ 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; }
Şimdi daha açık bir şekilde açıklayalım:
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
}
Bu işlevi bir sh / bash betiği olarak kullanmak için, örneğin my_apt-get.sh
içerikli bir komut dosyası oluşturun (Not: listeleme, yorum içermez, biraz daha kısa yapmak için ;-)):
#!/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 "$@"
Sonra örneğin içine koymak ~/bin/
ve ile yürütülebilir hale getirmek $ chmod u+x ~/bin/my_apt-get.sh
. Dizin değişkeninize ~/bin
eklenmişse, dizini PATH
basitçe şu şekilde yürütebilirsiniz:
$ my_apt-get.sh PACKAGE_NAME(S)_TO INSTALL
Lütfen aklınızda bulundurun:
- Kod kullanılır
sudo
. Eğer kullanırsanız root
hesabı, muhtemelen ayarlamak gerekir.
- Kod, kabuk otomatik tamamlamayı desteklemiyor
- Kodun kabuk kalıplarıyla nasıl çalıştığına dair bir fikriniz yok (örn. "!", "*", "?", ...)