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


41

আমি জেসি সংস্করণগুলিতে "সমস্ত কিছুর এবং রান্নাঘরের সিঙ্ক" আপগ্রেড না করে একক প্যাকেজ (এবং এর নির্ভরশীলতাগুলি, তবে কেবলমাত্র হুইজিতে যেগুলি হুইজি তে সন্তুষ্ট নয়) কেবল আমার হুইজি সিস্টেমে ইনস্টল করতে চাই। বিশেষত, আমি কেপিসিলি ইনস্টল করতে চাই , যা জেসিতে প্যাকেজড পাওয়া যায় তবে হুইজিতে নয়।

আমি যা কিছু পেয়েছি তা ইঙ্গিত করে যে আমার জেসি সংগ্রহস্থলগুলিকে আমার উত্স তালিকায় যুক্ত করা উচিত, সমস্ত জিনিস হুইজে রাখার জন্য পিনিং সেট করা এবং কেবল জেসির কাছ থেকে একক প্যাকেজ নেওয়া এবং এটি বেশ কিছুটা ঠিক জায়গায় পড়ে যাবে। যাইহোক, এটি আমার জন্য স্থানে পড়ছে না। আমি যদি নিম্নলিখিত বিষয়বস্তু দিয়ে /etc/apt.d/sources.list.d/jessie.list তৈরি করি:

deb ftp://ftp.debian.org/debian/ jessie main
deb-src ftp://ftp.debian.org/debian/ jessie main

এবং তারপরে /etc/apt/preferences.d/jessie তৈরি করুন:

Package: *
Pin: release a=wheezy
Pin-Priority: 1001

Package: kpcli
Pin: release a=jessie
Pin-Priority: 450

এবং চালানোর apt-get -u updateদ্বারা অনুসরণ apt-get -u install kpcli/jessie, তারপর আমি আশা apt-get kpcli মধ্যে টান এবং হয়তো জেসি থেকে অন্য প্যাকেজ একটি ছোট থাবা, আর আমার ইনস্টল করা সিস্টেমের অস্পৃষ্ট বাকি ছেড়ে। (আমার সিস্টেম হুইজির সম্পূর্ণরূপে যুগোপযোগী ইনস্টলেশন is) বিকল্পভাবে, আমি পিনের অগ্রাধিকারটি খুব কম পেয়ে থাকলে আমি এটিকে কিছু না করার প্রত্যাশা করি। বরং আমার সিস্টেমে, অ্যাপটি-গেইন কয়েকশ প্যাকেজ আপগ্রেড করতে চায়।

আমার হুইজি সিস্টেমটির বাকী কাজটি ছোঁয়া ছাড়ার পরে জেসি সংস্করণটির কেবল এই একক প্যাকেজটি ইনস্টল করার জন্য কী, ঠিক কী প্রয়োজন?

মনে রাখবেন যে এই বিশেষ ক্ষেত্রে, সফ্টওয়্যারটি আসলে পার্লে লিখিত হয়েছিল সুতরাং বাইনারি বা এর সাথে জড়িত কোনও কিছুর সংকলন নেই; তবে, পার্ল মডিউল নির্ভরতাগুলির একটি থাবা আছে। সুতরাং, সম্ভাব্য বিকল্পগুলির মধ্যে একটি হ'ল .deb (ম্যানুয়ালি ডাউনলোড করা) এমন কিছু ব্যবহার করে ইনস্টল করা হবে যা কেবলমাত্র (1) ইনস্টল করার মতো একটি একক, স্থানীয় .deb সংরক্ষণাগার নির্দিষ্ট করার অনুমতি দেয় dpkg -iএবং (2) বুদ্ধিমান উপায়ে নির্ভরতা পরিচালনা করে , কোন সরল dpkg -iনা। তবে, সমস্ত অনুসন্ধানের জন্য আমি বেশ কয়েকটি উপলক্ষে করেছি এবং কীভাবে এটি করতে পারি তার সহজ-সরল-অনুসরণ-নির্দেশিকা নিয়ে আসতে ব্যর্থ হয়েছি, একটি জেনেরিক সমাধান (যেটি বাইনারি, সংকলিত প্যাকেজগুলির জন্যও কাজ করে) দুর্দান্ত হবে would ।


4
এটি পরিচালনা করার স্বাভাবিক উপায় হ'ল ব্যাকপোর্টিং - হুইজির ডেবিয়ান উত্সগুলি থেকে প্যাকেজটি পুনর্নির্মাণ। আপনি যে প্যাকেজটি ব্যবহার করছেন তা পার্ল হিসাবে প্রদর্শিত হবে (বা এটি অন্তত নির্ভর করে), তাই ব্যাকপোর্ট করা সম্ভবত কঠিন নয়। আপনি যদি আরও বিশদ চান, দয়া করে তাই বলুন। আপনার যদি সত্যিই প্রয়োজন হয় তবে আমি সম্ভবত ওয়াকথ্রো সরবরাহ করতে পারতাম।
ফাহিম মিঠা

উত্তর:


15

প্রতিটি প্রবেশের জন্য (স্থিতিশীল, পরীক্ষা, অস্থির) আপনার পিন-অগ্রাধিকার 500 থাকে You আপনি পিন> 1000 ব্যবহার করবেন না। আমি যখনই কোনও কিছু ডাউনগ্রেড করতে চাই তখনই আমি 1001 ব্যবহার করি। আমার /etc/apt/sources.listনীচের /etc/apt/preferencesফাইলটিতে + sid + পরীক্ষামূলক এন্ট্রি নির্দিষ্ট করা আছে :

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900

Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 130

অস্থির জন্য 500 মানটি ডিফল্ট। সুতরাং, আসুন আইসওয়েজেল যাচাই করার চেষ্টা করুন:

# apt-cache policy iceweasel
iceweasel:
  Installed: (none)
  Candidate: 17.0.10esr-1~deb7u1
  Version table:
     26.0-1 0
        130 http://ftp.pl.debian.org/debian/ experimental/main amd64 Packages
     24.2.0esr-1 0
        500 http://ftp.pl.debian.org/debian/ sid/main amd64 Packages
     17.0.10esr-1~deb7u1 0
        900 http://ftp.pl.debian.org/debian/ testing/main amd64 Packages

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

অগ্রাধিকারগুলিকে এতে পরিবর্তন করার চেষ্টা করুন:

Package: *
Pin: release a=wheezy
Pin-Priority: 900

Package: kpcli
Pin: release a=jessie
Pin-Priority: 910

sudo apt-get -u install kpcli/jessieতবুও 316 upgraded, 137 newly installed, 251 to remove and 1688 not upgraded.আপনার প্রস্তাবিত অগ্রাধিকারগুলি আমাকে দেয় । যদি আমি এটি করি apt-cache policy perl(প্যাকেজগুলির মধ্যে একটি এটি আপগ্রেড করতে চায়) এটি অগ্রাধিকার 500 তে প্রার্থী হিসাবে 5.18.1-5 দেখায় এবং অগ্রাধিকার 500 এ 5.14.2-21 + deb7u1 ইনস্টল করে whatever এটি প্রায় কোনওরকম কারণেই দেখায়,
অ্যাপ্লিকেশনগুলি

ঠিক আছে, আমি কিছু পেয়েছি দেখে মনে হচ্ছে কৌতুকটি ব্যবহার Package: kpcli*করার চেয়ে (পরিবর্তে Package: kpcli) এবং তারপরে একটি Package: * Pin: release o=Debian Pin-Priority: -10শেষে ছিল। তারপরে অবশ্যই পার্সের সংস্করণগুলির জন্য শক্ত নির্ভরশীলতা রয়েছে কেবল জেসিতেই উপলভ্য, যার পরিবর্তে একটি নতুন libc6 প্রয়োজন! আমি সেই পথে যেতে যাচ্ছি না, সততার সাথে, তবে এটি আমার পরে প্রাপ্ত ফলাফলটি পেয়েছিল। ধন্যবাদ!
একটি সিভিএন

25

পিনিং / অগ্রাধিকারগুলি একেবারেই ব্যবহার না করে এটি করার একটি উপায় আসলে রয়েছে। পরিবর্তে, আপনি যে প্যাকেজগুলি ইনস্টল করবেন তা ডিফল্ট প্রকাশ কী তা নির্দিষ্ট করতে পারেন, যা লক্ষ্য প্রকাশের পরামিতি ব্যবহার না করে নির্দিষ্ট করা না হলে ব্যবহৃত হবে। আপনি যদি উদাহরণস্বরূপ ব্যাকপোর্টগুলি থেকে নির্বাচিত প্যাকেজগুলি ইনস্টল করতে চান তবে এটি একইভাবে কাজ করে।

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

প্রথমে সংগ্রহস্থল হিসাবে প্রসারিত করুন, যেমন /etc/apt/sources.list.d/stretch.list:

deb http://ftp.debian.org/debian stretch main

তারপরে, ডিফল্ট প্রকাশটি সেট করতে, এমন ফাইল তৈরি করুন /etc/apt/apt.conf.d/default-release:

APT::Default-Release "jessie";

(হুইজিতে, আমি মনে করি যে apt.conf.dবিদ্যমান ছিল না এবং আপনার সেই স্নিপেটটি toোকাতে হবে /etc/apt/apt.conf)।

তারপরে, টেস্টিং থেকে প্যাকেজ ইনস্টল করা ততটা সহজ যেমন aptitude -t stretch install kpcliআপনার অগ্রাধিকার পিন করার বিষয়ে চিন্তা করার দরকার নেই।

নোট: @amc মন্তব্য যে আপনি যদি ব্যবহার নির্দিষ্ট aptপরিবর্তে aptitude, আপনি ব্যবহার করতে হবে "stable"যেমন Default-Releaseপরিবর্তে "jessie"। ধন্যবাদ! (অবশ্যই, আপনি aptitudeসেই সেটিংসটিও ব্যবহার করতে পারেন ))


… এটি করার মতো সত্যিকারের চতুর মতো দেখাচ্ছে। কেন এটি সরকারীভাবে গৃহীত হয় না ??
জেমস আশ্চর্যডুড

1
আমি পেয়েছিThe value 'stretch' is invalid for APT::Default-Release as such a release is not available in the sources
স্টিভেন পেনি

1
আপনাকে ডিফল্ট প্রকাশের জন্য "জেসি" / "স্ট্রেচ" এর পরিবর্তে "স্থিতিশীল" / "টেস্টিং" / ইত্যাদি ব্যবহার করতে হবে
এএমসি

6

Pin: release a=wheezyহতে হবে Pin: release n=wheezy, হতে পারে ।

থেকে man পৃষ্ঠা :

নিম্নলিখিত রেকর্ডটি এমন কোনও বন্টনের সাথে সম্পর্কিত যার প্যাকেজটির কোডনাম "জেসি" রয়েছে তার সাথে সম্পর্কিত সমস্ত প্যাকেজ সংস্করণগুলিকে উচ্চ অগ্রাধিকার দেয়।

           Package: *
           Pin: release n=jessie
           Pin-Priority: 900

সুতরাং যে সঠিক!


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