এপিটি-গেট ব্যবহার করে কীভাবে একটি প্যাকেজ আপগ্রেড করবেন?

আমি কীভাবে একটি প্যাকেজ আপডেট করব? যতদুর 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>