প্রশ্ন কিভাবে একটি নির্দিষ্ট প্যাকেজ আপডেট প্রতিরোধ করা?


কারণে বাগ # 693758 আমি প্রতিরোধ করতে চাই apt-get upgrade এবং আপডেট ম্যানেজার "libgtk2.0-0" প্যাকেজ আপডেট থেকে।

এটা কিভাবে অর্জন করা সম্ভব?


324
2017-12-23 17:29


উত্স


@Hhlp: কিন্তু এই প্রশ্নটি এমন একটি প্যাকেজ সম্পর্কে জিজ্ঞাসা করা যা ইনস্টল করা হয়নি। - Nathan Osman
@ জর্জ এডিসন - প্যাকেজ হোল্ডিং রয়েছে, যা আপনাকে প্যাকেজ আপডেট করতে দেয় না। তাই প্যাকেজটি হোল্ডিং করার অর্থ হল আপনি বর্তমান সংস্করণটি রাখতে কোনও প্যাকেজ ম্যানেজারকে বলছেন কি না। একটি আপডেটের পরে একটি চলমান প্রোগ্রাম বিরতির সাম্প্রতিক সংস্করণ যদি এটি কার্যকর হয়। (আপনি এমন কোনও প্যাকেজ রাখতে পারবেন না যা ইনস্টল করা হয়নি এমনকি আমার প্রশ্নও একই রকম।) আমি এই মুহূর্তে পরীক্ষা করেছি - দেখুন সে বলল disable packages from the auto-update - hhlp


উত্তর:


অধিষ্ঠিত

প্যাকেজগুলি ধরে রাখার জন্য চারটি উপায় রয়েছে: dpkg, apt, aptitude বা dselect এর সাথে।

dpkg

হোল্ড একটি প্যাকেজ রাখুন:

echo "<package-name> hold" | sudo dpkg --set-selections

হোল্ড সরান:

echo "<package-name> install" | sudo dpkg --set-selections

আপনার প্যাকেজের অবস্থা প্রদর্শন করুন:

dpkg --get-selections

একক প্যাকেজের অবস্থা প্রদর্শন করুন:

dpkg --get-selections | grep "<package-name>"

কার্যক্ষম

একটি প্যাকেজ রাখা:

sudo apt-mark hold <package-name>

হোল্ড সরান:

sudo apt-mark unhold <package-name>

dselect

নির্বাচন না করে, [S] নির্বাচিত পর্দাটি প্রবেশ করান, আপনার বর্তমান অবস্থায় থাকা প্যাকেজটির সন্ধান করুন এবং চাপুন = অথবা এইচ। [S] নির্বাচিত পর্দা থেকে বেরিয়ে যাওয়ার পরে তাৎক্ষণিকভাবে কার্যকর হবে।


নিম্নলিখিত পদ্ধতিগুলি লকিং / উপযুক্ততা বা সিনাপটিকের মধ্যে একটি প্যাকেজ ধারণ করার ক্ষেত্রে সীমিত হয় যা APT-GET / APT প্রভাবিত করে না।

প্রবণতা

একটি প্যাকেজ রাখা:

sudo aptitude hold <package-name>

হোল্ড সরান:

sudo aptitude unhold <package-name>

সিনাপটিক প্যাকেজ ম্যানেজার সঙ্গে লকিং

যাও সিনাপটিক প্যাকেজ ম্যানেজার (সিস্টেম> প্রশাসন> সিনাপটিক প্যাকেজ ম্যানেজার)।

অনুসন্ধান বাটনে ক্লিক করুন এবং প্যাকেজ নাম টাইপ করুন।

যখন আপনি প্যাকেজ খুঁজে পান, এটি নির্বাচন করুন এবং যান প্যাকেজ মেনু এবং নির্বাচন করুন লক সংস্করণ

Synaptic menu

সেই প্যাকেজটি এখন আপডেট ম্যানেজারে দেখাবে না এবং আপডেট হবে না।


474
2017-12-23 18:04



এটি ইনস্টল করা থেকে একটি প্যাকেজ প্রতিরোধ করতে কাজ করে। ইনস্টল করার সময় devscripts, অনেক প্যাকেজ প্রস্তাবিত প্যাকেজ হিসাবে টানা হয়। যেহেতু আমার কোন মেইল ​​সার্ভার দরকার নেই (পোস্টফিক্স), আমি এটি চালানোর দ্বারা ইনস্টলেশনটি অক্ষম করতে পারি echo postfix hold | sudo dpkg --set-selections চলমান আগে sudo apt-get install devscripts। ইনস্টলেশনের পরে নির্বাচনগুলি পুনরায় সেট করা হলে এই হোল্ড অ্যাকশন শুধুমাত্র এই ইনস্টলেশনের জন্যই থাকে। - Lekensteyn
এছাড়াও পয়েন্ট আউট আউট, প্যাকেজ কখনও কখনও একটি অবস্থা সমাধান করে বিরতি আপগ্রেড এবং প্যাচ না রাখা যেখানে একটি আইনি সমাধান apt নির্ভরতা হিসাব করতে পারেন। প্যাকেজ foo যদি একটি == <অথবা <= libbar এর উপর নির্ভরশীলতা থাকে তবে তারপরে libbar পাশাপাশি foo আপগ্রেড করতে উপযুক্ত হবে। সময়ের সাথে সাথে, গুরুত্বপূর্ণ নিরাপত্তা আপডেট সহ বৃহৎ সংখ্যক আপডেটগুলি ব্লক করতে এই ক্যাসকেডিং নির্ভরতাগুলি বাড়তে পারে। আপনাকে হোল্ডটি সরাতে হবে এবং আপগ্রেড করার অনুমতি দিতে হবে, অথবা যদি এটি ঘটে তবে তার নির্ভরতার নতুন সংস্করণগুলির বিরুদ্ধে আপনি যে প্যাকেজগুলি ধরে রাখছেন তা পুনর্নির্মাণ করতে হবে। - Stephanie
শুধু একটি নোট: apt-mark সমর্থন করে না hold সংস্করণ 0.7.25 (উবুন্টু লুসিড) - Joril
গ্রাফিক্স ড্রাইভার ফিরে রাখা চেষ্টা করার সময় এটি বিশেষভাবে দরকারী। অত্যধিক ব্যবহারকারীদের জন্য, apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev। - earthmeLon
বর্তমানে synaptic এবং aptitude শুধুমাত্র যারা প্রোগ্রামের মধ্যে প্যাকেজ লক। "প্যাকেজ আপগ্রেডগুলি যেকোনো কিছু (পড়া: আপডেট ম্যানেজার, apt-get, aptitude, ইত্যাদি) এটিকে উপেক্ষা করে।" থেকে এই প্রশ্ন। - holocronweaver


হোল্ডে একটি প্যাকেজ "foo" রাখতে:

echo "foo hold" | dpkg --set-selections

আপনার ক্ষেত্রে আমরা হোল্ড ওয়াইন করা যাচ্ছে:

sudo -i
echo "wine hold" | dpkg --set-selections

হোল অপসারণ করতে:

sudo -i
echo "wine install" | dpkg --set-selections

43
2017-12-08 20:15



এছাড়াও একটি প্যাকেজ রাখা হয়, যখন আপনি মনে রাখবেন করতে পারেন মাধ্যমে একটি নির্দিষ্ট সংস্করণ ইনস্টল করুন apt-get install wine=1.2.3। ধরে রাখা হচ্ছে বাধা দেয় apt-get (dist-)upgrade এটা পরিবর্তন থেকে। - rcoup
@Rcoup যদি আপনার কাছে ধরে রাখা একটি পুরানো সংস্করণ থাকে এবং তারপরে আপনি নিজের মতো বিবরণটি হোল না করে নতুন সংস্করণটিতে আপগ্রেড করেন তবে পুরানো সংস্করণটি ক্যাশে রাখা হবে যাতে আপনি এটিকে আবার ফিরে যেতে পারেন? - cxrodgers
@ cxrodgers স্থানীয় ক্যাশে (সাধারণত /var/cache/apt/archives) হোল্ডার এবং আপগ্রেড এবং স্টাফ থেকে মুক্ত, তাই আপনি ডাউনলোড না হওয়া পর্যন্ত সমস্ত সংস্করণ সেখানে থাকবে apt-get [auto]clean - rcoup


আমি একই জিনিস সন্ধান করছিলাম এবং অনেক গবেষণা পরে আমি দেখেছি যে নিম্নলিখিত সিনট্যাক্স ব্যবহার করে আপনি একটি নির্দিষ্ট সংস্করণটি নিষিদ্ধ করতে পারেন তবে পরবর্তী আপডেটটি মঞ্জুর করতে পারেন:

প্যাকেজ: কম্পিজ প্লাগইন-প্রধান
পিন: সংস্করণ 1: 0.9.7.0 ~ bzr19-0ubuntu10.1
পিন-অগ্রাধিকার: -1

এই / etc / apt / পছন্দ ফাইল মধ্যে যায়।


28
2017-07-22 11:13



এটি অনির্দিষ্টকালের জন্য আপডেটগুলি প্রতিরোধ করার চেয়ে অনেক ভাল উপায় - Eero Aaltonen
এই পদ্ধতির মাধ্যমে, উবুন্টু 'অ্যাডওয়্যার' উবুন্টু এক বা অ্যামাজন আইকনটিকে পরবর্তী রিলিজ আপগ্রেড করার মাধ্যমে পুনরায় ইনস্টল করা থেকে বিরত থাকার সম্ভাবনা বেশি। - Daniel Alder


ইনস্টল করুন synaptic ব্যবহার sudo apt-get install synaptic

ব্যবহার করে চালানো gksudo synaptic এবং অনুসন্ধান বাক্সে আপনি যে প্যাকেজটি লক করতে চান তা সনাক্ত করুন, অর্থাত্: gedit

enter image description here

প্যাকেজ মেনু থেকে নির্বাচন করুন লক সংস্করণ:

enter image description here

এবং যে সব, লক সময় বর্তমানে ইনস্টল সংস্করণ আপগ্রেড সময় এমনকি ইনস্টল করা হবে।


19
2017-12-08 20:06



অনুগ্রহ করে দেখুন "লক সংস্করণটি যতটা চালাক বলে মনে হয় না তেমনি এটি টিনের উপর যা বলে তা করা, সংস্করণটি লক করুন ... তবে এটি কেবল সিনাপটিকের মধ্যে এটি লক করে। প্যাকেজ আপগ্রেডগুলি ছাড়া অন্য কিছু যা কিছু করে তা পড়ে। (পড়ুন: আপডেট ম্যানেজার , apt-get, aptitude, ইত্যাদি) উপেক্ষা করে। এটি সম্ভবত বাগ আচরণ তাই আমি সময় নির্দিষ্ট করা হবে আশা করি। " থেকে askubuntu.com/questions/9607/what-does-lock-version-do। বর্তমান অবস্থা কি? যদি সিনাপটিকে কিছু লক থাকে তবে অন্য প্যাকেজ পরিচালকদের লকটি "সম্মান" করবে?
vasa1: সংস্করণ 0.75.13 হিসাবে, এখনও কোন :( দক্ষতার সাথে একই সমস্যা। - syockit


একটি প্যাকেজ ইনস্টল করা থেকে আটকাতে বলা হয় "প্যাকেজ হোল্ডিং" এবং এটি করা খুব সহজ:

প্রতিধ্বনি PACKAGE_NAME রাখা | dpkg --set-selections

... যেখানে প্যাকেজ_name * প্যাকেজটির নাম যা আপনি ইনস্টলেশন থেকে আটকাতে চান।

বিঃদ্রঃ: উপরের কমান্ড রুট বিশেষাধিকার অনুমান। অন্য কথায়, সম্ভবত আপনি টাইপ করতে হবে sudo su এটা চালানোর আগে।


16
2018-02-05 01:18



নির্ভুল এই উত্তর ছিল। ধন্যবাদ. - asoundmove
s/sudo su/sudo -s/g (অথবা sudo -i)। (-i একটি লগইন শেল দিতে হবে, -s হবে না). - derobert


কিছু সময় থেকে apt-get দ্বারা প্রতিস্থাপিত হয় apt, উদাহরণস্বরূপ আমি ফায়ারফক্সকে 56 এর উপরে সংস্করণে আপডেট করতে বাধা দিতে চাই, কারণ প্রচুর অ্যাড-অন, যেমন "ট্যাব গ্রুপ" নতুন ফায়ারফক্স 57 এর সাথে আর কাজ করবেন না (দেখুন "ওয়েব এক্সটেনশান আপডেট")।

এক কমান্ডসহ একাধিক প্যাকেজ ধরে রাখা এবং ওয়াইল্ডকার্ডগুলি ব্যবহার করা সম্ভব।

ফায়ারফক্স আপডেট থেকে প্রতিরোধ করুন

sudo apt-mark hold firefox firefox-locale-*

যদি আপনি তাদের পরে আনল্ড করতে ইচ্ছুক হন তবে এটি হ'ল কমান্ড হবে:

sudo apt-mark unhold firefox firefox-locale-*

5
2017-11-19 07:45





আমি সিনাপ্টিক একটি নির্দিষ্ট প্যাকেজের সংস্করণটি নিশ্চিহ্ন করতে পারি। আমি 100% নিশ্চিত নই যে এটি এ্যাপ্ট-ইন সংশোধন করবে কিনা তবে এটি অবশ্যই আপডেট ম্যানেজার বন্ধ করবে।

একটি প্যাকেজ ফ্রিজ করতে সিনাপটিক এ এটি নির্বাচন করুন তারপর প্যাকেজ মেনু খুলুন এবং ফ্রীজ সংস্করণ নির্বাচন করুন।

আশাকরি এটা সাহায্য করবে

সম্পাদনা: এই প্রশ্ন 16668 একই অবস্থা সঙ্গে পুলিশ


4
2017-12-23 17:35





নির্দিষ্ট সংস্করণগুলিতে প্যাকেজগুলি "হোল্ডিং" এবং "পিনিং" সম্পর্কে আপনি যা জানতে চান তা সবই: https://help.ubuntu.com/community/PinningHowto


3
2017-12-23 21:09





বাগ দেখুন # 75332, # 158981 এবং # 72806

সারসংক্ষেপটি হল apt-get / aptitude level এ হোল্ডটি ডিপিকেজি-তে হোল্ড স্ট্যাটাস ট্রিগার করা হয় না (বিশেষ করে বাগ 72806 দেখুন) এবং আপডেট-ম্যানেজার dpkg থেকে স্ট্যাটাস পড়ে।

কার্যকারিতা মূল হিসাবে চালানো হয়: echo "package hold" | dpkg --set-selections


3
2017-11-26 07:24





আপনার যদি সিনাপটিক ইনস্টল করা থাকে তবে আপনি প্যাকেজটি নির্বাচন করতে এবং মেনু প্যাকেজ -> লক সংস্করণটি আপডেট করার জন্য এটি ব্যবহার করতে পারেন।

আপনি sineo apt-get synaptic ইনস্টল সঙ্গে Synaptic ইনস্টল করতে পারেন। আমি ব্যক্তিগতভাবে এটি সফ্টওয়্যার সেন্টারের চেয়ে আরও বেশি উপকারী মনে করি ... তারপর আবার, আমি পুরোপুরি পুরাতন স্কুল। :)


1
2017-12-08 20:06