প্রথমত, যদি আপনি ইতিমধ্যে ভুল করে কোনও পিপিএ থেকে প্যাকেজগুলি আপগ্রেড করে থাকেন তবে এই উত্তরটি দেখুন: /ubuntu//a/142808/103117 বিশেষত পিপিএ-পার্জ ব্যবহারের বিভাগটি। যেহেতু আমি ইতিমধ্যে প্যাকেজগুলি আপগ্রেড করেছি এবং অপ্ট-গেট অগ্রাধিকার বিবেচনা না করেই হ্রাস পাবে না, প্রথমে সমস্ত আপগ্রেড হওয়া প্যাকেজগুলি সাফ করা সহজ, তারপরে অগ্রাধিকারগুলি ঠিক করুন, তারপরে পিপিএ পুনরায় যুক্ত করুন এবং কেবল আপনার পছন্দসই প্যাকেজগুলি আপগ্রেড করুন।
অগ্রাধিকার / পিনিং সিস্টেমের সম্পূর্ণ ব্যাখ্যার জন্য, দেখুন man apt_preferences
।
যদি একাধিক উত্স থেকে কোনও প্যাকেজ পাওয়া যায় তবে প্রত্যেককে একটি অগ্রাধিকার অর্পণ করা হবে এবং আপনি এটি দেখতে পাচ্ছেন apt-cache policy <package name>
। উদাহরণস্বরূপ, আমি নাথান-রেনিউইলডক / পিপিএ / উবুন্টু নামে একটি পিপিএ ব্যবহার করি এবং আমি সেখান থেকে মাইএসকিএল-সার্ভার -5.5 (আমার "প্যাকেজ ওয়াই") ইনস্টল করতে চাই না। সুতরাং আমি আমার বর্তমান পরিস্থিতি এটি দিয়ে পরীক্ষা করতে পারি:
rob@frodo:~$ apt-cache policy mysql-server-5.5
mysql-server-5.5:
Installed: 5.5.27-1~ppa1~precise
Candidate: 5.5.27-1~ppa1~precise
Version table:
*** 5.5.27-1~ppa1~precise 0
500 http://ppa.launchpad.net/nathan-renniewaldock/ppa/ubuntu/ precise/main amd64 Packages
100 /var/lib/dpkg/status
5.5.24-0ubuntu0.12.04.1 0
500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
5.5.22-0ubuntu1 0
500 http://gb.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
সুতরাং যেহেতু সবকিছু অগ্রাধিকার 500, ম্যান পৃষ্ঠা অনুসারে সর্বাধিক সংস্করণ নম্বর সহ একটি বেছে নেওয়া হয়েছে।
উদাহরণস্বরূপ, যদি আপনি কেবল ডিডক্লিয়েন্ট ("প্যাকেজ এক্স") ইনস্টল করতে চান তবে অন্য কোনও প্যাকেজ নয়, আপনি পিডিএতে সমস্ত প্যাকেজের জন্য অগ্রাধিকারটি ডিডক্লিয়েন্ট ব্যতীত হ্রাস করতে চান। নামে পরিচিত একটি ফাইল তৈরি করুন /etc/apt/preferences.d/nathan-preferences
। নোট করুন যে ডিরেক্টরিটিতে থাকা সমস্ত ফাইলই পঠিত এবং ফাইলের নাম সম্পর্কে কিছু নিয়ম রয়েছে (এটিতে কেবল বর্ণানুক্রমিক অক্ষর, হাইপেনস, ড্যাশ থাকতে হবে এবং প্রিফের কোনও এক্সটেনশন বা শেষ নেই)।
প্রথমে আমাদের পিপিএ সনাক্ত করতে হবে তা জানতে হবে। apt-cache policy
সব সূত্র সম্পর্কে তার নিজস্ব dispays তথ্যের উপর কমান্ড। আমি জানি আমার পিপিএর নামে "নাথন" রয়েছে তাই আমি করি:
$ apt-cache policy | grep nathan
400 http://ppa.launchpad.net/nathan-renniewaldock/ppa/ubuntu/ precise/main i386 Packages
release v=12.04,o=LP-PPA-nathan-renniewaldock,a=precise,n=precise,l=PPA,c=main
আকর্ষণীয় অংশটি হ'ল "o = এলপি-পিপিএ-নাথান-রেনিউভালডক", যা আমরা /etc/apt/preferences.d/nathan-prefs ফাইলটিতে এইভাবে ব্যবহার করি:
Package: *
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 400
Package: ddclient
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 500
এটি পিপিএ-তে সমস্ত কিছুকে অগ্রাধিকার 400 এ সেট করে, তারপরে ডিডক্লিয়েন্টকে ডিফল্ট 500-এ ফিরিয়ে দেয় Now এখন, আমি এটি পরীক্ষা করে দেখতে পারি যে এটি কাজ করেছে:
$ apt-cache policy ddclient
ddclient:
Installed: 3.8.0-11.4ubuntu1
Candidate: 3.8.1-0~ppa1~precise
Package pin: 3.8.1-0~ppa1~precise
Version table:
3.8.1-0~ppa1~precise 500
400 http://ppa.launchpad.net/nathan-renniewaldock/ppa/ubuntu/ precise/main amd64 Packages
*** 3.8.0-11.4ubuntu1 500
500 http://gb.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages
100 /var/lib/dpkg/status
সুতরাং ডিডক্লিয়েন্টের অগ্রাধিকার রয়েছে 500, যা মূল উবুন্টু প্যাকেজের মতো, তবে এটি নাথান পিপিএ থেকে ইনস্টল করা হবে কারণ এটি উচ্চতর সংস্করণ is এখন নিশ্চিত হয়ে নিন যে অন্যান্য প্যাকেজগুলি ইনস্টল করা হবে না:
$ apt-cache policy mysql-server
mysql-server:
Installed: 5.5.24-0ubuntu0.12.04.1
Candidate: 5.5.24-0ubuntu0.12.04.1
Version table:
5.5.27-1~ppa1~precise 0
400 http://ppa.launchpad.net/nathan-renniewaldock/ppa/ubuntu/ precise/main amd64 Packages
*** 5.5.24-0ubuntu0.12.04.1 0
500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
100 /var/lib/dpkg/status
5.5.22-0ubuntu1 0
500 http://gb.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
এই ক্ষেত্রে নাথান পিপিএর প্যাকেজটির অগ্রাধিকার 400 রয়েছে যা উবুন্টুর তুলনায় কম, সুতরাং এটি উচ্চতর সংস্করণ হলেও এটি আপগ্রেড করা হবে না। আমরা এর সাথে চেক করতে পারি:
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
ddclient
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 77.7 kB of archives.
After this operation, 11.3 kB of additional disk space will be used.
Do you want to continue [Y/n]?
যেহেতু আমি চাই কেবলমাত্র প্যাকেজটি আপগ্রেড করা, তাই হ্যাঁ বলতে পেরে আমি আনন্দিত।