কেবলমাত্র একটি পিপিএ থেকে নির্দিষ্ট প্যাকেজ আপডেটের অনুমতি দেওয়া কি সম্ভব?


19

আমাদের বলুন যে আমি একটি পিপিএ যুক্ত করেছি যার এক্স প্যাকেজটি রয়েছে যা আমি চাই তবে এটিতে ওয়াই প্যাকেজও রয়েছে যা আমি ব্যবহার করতে বা আপডেটগুলি গ্রহণ করতে চাই না। আমি কীভাবে একই পিপিএ থেকে নির্দিষ্ট প্যাকেজের আপডেট পেতে পারি তবে অন্যান্য প্যাকেজগুলির জন্য একই পিপিএ থেকে আপডেটগুলি অস্বীকার করতে পারি।

একটি ধাপে ধাপে উদাহরণটি ভাল হবে যেহেতু বেশ কয়েকটি পিপিএতে আমার এটি ঘটেছে যার একটি বিশেষ প্যাকেজ রয়েছে যা আমি চাই এবং অন্যরাও পুরো গুচ্ছ যুক্ত করে যা আমি এখনও আপডেট করতে চাই না।

উত্তর:


16

আপনি "পিনিং" বলে যা ব্যবহার করবেন

ধরে নিই যে আপনি পিপিএ থেকে প্যাকেজ ফু ইনস্টল করছেন, আপনার অবশ্যই পিপিএ থেকে কোনও নির্ভরতা ইনস্টল করতে হবে।

তবে অন্য প্রোগ্রাম থাকলে, আপনি পিনিংয়ের সাহায্যে কোন সংগ্রহস্থলটি নির্দিষ্ট করতে পারেন।

দেখুন উবুন্টু উইকি পিন করা

সেই পৃষ্ঠাতে পিপিএ পিন করার একটি উদাহরণ রয়েছে

https://help.ubuntu.com/community/PinningHowto#Pinning_the_ubuntu-mozilla-daily_PPA

উইকি পৃষ্ঠা থেকে:

যতটা সম্ভব বেদাহীন হিসাবে আপ্ট-গিগ আপগ্রেডিং করতে পিপিএতে একটি কম পিন-অগ্রাধিকার সেট করুন, এটি অযাচিত প্যাকেজ সংস্করণগুলি ইনস্টল করা থেকে বিরত রাখবে। একবার সেট হয়ে গেলে, উবুন্টু-মজিলা-দৈনিক পিপিএর প্যাকেজগুলি সর্বদা অন্য সংগ্রহস্থলগুলির প্যাকেজগুলির সাথে যে কোনও প্রতিযোগিতায় হারাবে, এমনকি যদি তাদের উচ্চতর সংস্করণ থাকে।

ফাইল তৈরি করুন /etc/apt/preferences.d/ubuntu-mozilla-daily-pin-400

ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:

Package: *
Pin: release o=LP-PPA-ubuntu-mozilla-daily
Pin-Priority: 400

পিন-অগ্রাধিকার আপডেট হয়েছে কিনা তা পরীক্ষা করার জন্য নিম্নলিখিত এবং পরে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন।

apt-cache policy

apt-cache policy firefox-3.5

7

প্রথমত, যদি আপনি ইতিমধ্যে ভুল করে কোনও পিপিএ থেকে প্যাকেজগুলি আপগ্রেড করে থাকেন তবে এই উত্তরটি দেখুন: /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]?

যেহেতু আমি চাই কেবলমাত্র প্যাকেজটি আপগ্রেড করা, তাই হ্যাঁ বলতে পেরে আমি আনন্দিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.