एपीटी-गेट का उपयोग करके एकल पैकेज को अपग्रेड कैसे करें?

मैं एक पैकेज कैसे अपडेट करूं? जहाँ तक man apt-get कहते हैं apt-get upgrade पैरामीटर के रूप में पैकेज/पैकेज की सूची नहीं लेता है:

अपग्रेड करें

अपग्रेड का उपयोग वर्तमान में सिस्टम पर स्थापित सभी पैकेजों के नवीनतम संस्करणों को स्थापित करने के लिए किया जाता है /etc/apt/sources.list. वर्तमान में उपलब्ध नए संस्करणों के साथ स्थापित पैकेज पुनर्प्राप्त और अपग्रेड किए गए हैं; किसी भी परिस्थिति में वर्तमान में स्थापित पैकेज नहीं हटाए गए हैं, या पैकेज पहले से ही पुनर्प्राप्त और स्थापित नहीं किए गए हैं । वर्तमान में स्थापित पैकेजों के नए संस्करण जिन्हें किसी अन्य पैकेज की इंस्टॉल स्थिति को बदले बिना अपग्रेड नहीं किया जा सकता है, उनके वर्तमान संस्करण पर छोड़ दिए जाएंगे । एक अद्यतन पहले किया जाना चाहिए ताकि उपयुक्त-प्राप्त को पता चले कि पैकेज के नए संस्करण उपलब्ध हैं ।

आपको बस करना है apt-get install --only-upgrade <packagename>. यह केवल उस एकल पैकेज को अपग्रेड करेगा, और केवल अगर यह स्थापित है ।

यदि आप पैकेज को स्थापित करना चाहते हैं यदि यह मौजूद नहीं है, या यदि ऐसा होता है तो इसे अपग्रेड करें, आप छोड़ सकते हैं --only-upgrade.

सीएलआई का उपयोग करके एकल पैकेज को अपडेट करने के लिए:

sudo apt-get install --only-upgrade <packagename>

जैसे, sudo apt-get install --only-upgrade ack

Reading package lists... DoneBuilding dependency tree       Reading state information... DoneSkipping **ack**, it is not installed and only upgrades are requested.0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

दो संभावित तरीके हैं जिनके बारे में मैं सोच सकता हूं:

  1. sudo apt-get install nameofpackage

    यह पहले से स्थापित होने पर भी पैकेज को अपग्रेड करेगा:

    ~$ sudo apt-get install emeseneReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following packages will be upgraded:  emesene1 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.Need to get 1,486 kB of archives.After this operation, 696 kB disk space will be freed.Get:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/universe emesene all 2.11.4+dfsg-0ubuntu1 [1,486 kB]
  2. का उपयोग करनाSynaptic Package Manager: अपग्रेड के लिए राइट क्लिक करें:

    नोट: कभी-कभी यह अतिरिक्त पैकेज या निर्भरता के लिए पूछ सकता है, यह सामान्य है ।

उबंटू 12.04 एलटीएस पर मेरे अनुभव में, नीचे दिए गए कमांड का उपयोग करके एक अलग पीपीए का उपयोग करने पर पैकेज को अपग्रेड नहीं किया जाएगा -

sudo apt-get --only-upgrade install <packagename>

इसी तरह, मैं अपग्रेड कमांड नहीं चलाना चाहता था, जो मेरे सर्वर पर सभी पैकेजों को अपग्रेड करेगा -

sudo apt-get dist-upgrade

उदाहरण के लिए, मैंने पीएचपी 5.3 स्थापित किया है और ओन्ड्रेज पीपीए को अपने एपीटी में जोड़ा है । उपयोग करने वाले स्रोत -

sudo add-apt-repository ppa:ondrej/php5

अगर मैं दौड़ता हूं

sudo apt-get install php5

यह सिर्फ पीएचपी 5.3 को पुनर्स्थापित करेगा ।

मुझे सबसे पहले, उपयोग करने के लिए अपग्रेड करने के लिए संस्करण संख्या निर्धारित करनी होगी

sudo apt-cache policy php5

यह सभी उपलब्ध संस्करण संख्याओं को सूचीबद्ध करेगा । आपको वह संस्करण संख्या मिलनी चाहिए जिसे आप अपग्रेड करना चाहते हैं, और फिर उस संपूर्ण स्ट्रिंग को कॉपी करें जो इसे संदर्भित करता है । उदाहरण के लिए, उबंटू पर पीएचपी 5.5 के लिए स्ट्रिंग "5.5.16+डीएफएसजी -1+" है deb.sury.org~सटीक+2" ।

अब, आप विशिष्ट संस्करण संख्या, और वॉइला के साथ उपयुक्त-इंस्टॉल इंस्टॉल कमांड चला सकते हैं!

sudo apt-get install php5=5.5.16+dfsg-1+deb.sury.org~precise+2

मैंने इसे केवल इसलिए जोड़ा क्योंकि मुझे यह जानकारी कहीं और नहीं मिली!

उबंटू 9.04 जौंटी पर,

apt-get --only-upgrade install <package>

पैदावार:

E: Sense only is not understood, try true or false.

आदेश

apt-get --only-upgrade true install <package>

मेरे मामले में काम किया ।

एक कमांड लाइन समाधान के लिए जो पैकेज को स्थापित नहीं करता है यदि यह पहले से मौजूद नहीं है:

dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>

इसे आसानी से एक स्क्रिप्ट में बनाया जा सकता है, उदा । :

upgrade-package.sh:

#!/bin/bash[[ -z $1 ]] && { echo "Usage: $(basename $0) package"; exit 1; }if dpkg -s "$1" 2>/dev/null | grep -q Status.*installed; then    echo "Attempting to upgrade $1"    sudo apt-get install "$1"else    echo "Package $1 is not installed"fi

उबंटू 18.04 एलटीएस पर एकल पैकेज को अपग्रेड करने के लिए:

sudo apt update && sudo apt install --only-upgrade <packagename>

एकाधिक पैकेज अपग्रेड करने के लिए:

sudo apt update && sudo apt install --only-upgrade <package1> <package2> <package3>