पुराना सवाल है, मैं देख सकता हूं, लेकिन अब इसी तरह की स्थिति में। आमतौर पर मैं उपयोग करता हूं sudo aptitude install -P PACKAGE_NAME
, हमेशा इंस्टॉल करने से पहले क्या पूछता हूं। हालाँकि अब डेबियन डिफॉल्ट पैकेज मैनेजर है apt|apt-get
और इसकी यह कार्यक्षमता नहीं है। बेशक मैं अभी भी aptitude
इसे स्थापित और उपयोग कर सकता हूं ... हालांकि मैंने apt-get
स्थापना से पहले पूछने के लिए छोटे श / बाश आवरण फ़ंक्शन / स्क्रिप्ट लिखी है । यह वास्तव में कच्चा है और मैंने इसे अपने टर्मिनल में एक फ़ंक्शन के रूप में लिखा था।
$ 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
}
इस फ़ंक्शन को एक श / बश लिपि के रूप में उपयोग करने के लिए, केवल 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
खाते का उपयोग करते हैं, तो आपको संभवतः इसे समायोजित करने की आवश्यकता है।
- कोड शेल स्वतः पूर्णता का समर्थन नहीं करता है
- पता नहीं कैसे कोड शेल पैटर्न (जैसे "!", "*", "?", ...) के साथ काम करता है।