আমি প্রস্তাবিত সংগ্রহস্থলের আপগ্রেড থেকে কীভাবে ফিরে যেতে পারি?


23

আমি ভুল করে প্রাক-প্রকাশের আপডেটগুলি (ন্যাটি-প্রস্তাবিত) সংগ্রহস্থল সক্ষম করেছিলাম এবং তারপরে সমস্ত প্যাকেজ আপগ্রেড করেছি।

আমি কীভাবে এটিকে পূর্বাবস্থায় ফেরাতে পারি?

এখানে পরীক্ষার ফলাফল থেকে @ enzotib এর নির্দেশাবলী এবং পরীক্ষার ফলাফল থেকে আমার নির্দেশাবলী


1
পরীক্ষার ফলাফল পেস্টবিনগুলি মারা গেছে।
এনজোটিব

উত্তর:


24

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

  1. আপনার এবং আপনার ফাইলগুলিতে -proposedবা এন্ট্রি সরিয়ে ফেলা হয়েছে তা নিশ্চিত করুন ।-backports/etc/apt/sources.list/etc/apt/sources.list.d/*
  2. একটি এপটি-পছন্দসমূহ ফাইল যুক্ত করুন, উদাহরণস্বরূপ /etc/apt/preferences.d/99-back-to-stable-updates( preciseএখানে আপনার সংস্করণ সহ প্রতিস্থাপন করুন):

    Package: *
    Pin: release a=precise
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=precise-updates
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=precise-security
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=precise-proposed
    Pin-Priority: -10
    
    Package: *
    Pin: release a=precise-backports
    Pin-Priority: -10
    

    > 1000 এর এই পিনিংটি সেই চ্যানেল থেকে প্যাকেজগুলিতে ডাউনগ্রেডকে উপযুক্তভাবে চাপিয়ে দেবে -proposedএবং -backportsচ্যানেলগুলিতে <0 এর অগ্রাধিকার কোনও অতিরিক্ত প্যাকেজও সরিয়ে ফেলবে।

  3. এখন চালান

    sudo apt-get update
    sudo apt-get dist-upgrade
    

    প্রস্তাবিত সমাধানটি আপনাকে দিতে হবে তা পরিদর্শন করুন এবং আপনি যদি এটি ঠিক মনে করেন তবে তা গ্রহণ করুন। আপনার কেন এটি এবং কোন সংস্করণটি ডাউনগ্রেড হবে তা খতিয়ে apt-cache policy packagenameদেখার প্রয়োজন হলে কোন সংস্করণ উপলব্ধ রয়েছে এবং কোন অ্যাপ্লিকেশন কী সিদ্ধান্ত নিয়েছে তা ইনস্টলেশনটির প্রার্থী see

  4. /etc/apt/preferences.d/99-back-to-stable-updatesফাইলটি আবার সরান , কারণ এটির আর প্রয়োজন নেই।

mlindউবুন্টু ফোরামগুলিকে ধন্যবাদ 5 বছরেরও বেশি সময় আগে থেকে তার পোস্টে পিন করার বিষয়ে এই অনুপ্রেরণার জন্য - তবুও এটি আমাকে আজ বেশ সুন্দরভাবে সাহায্য করেছে।


আমি মনে করি এটি ডেবিয়ানের সাথেও কাজ করা উচিত। দুর্ভাগ্যক্রমে, এটি আমার জন্য কিছু করে না: /
মাইকেল

@ মিশেল ১) দেবিয়ানের-অনুমোদিত সরকারী সংগ্রহস্থলের ধারণা নেই। 2) এই সাইটটি উবুন্টু সম্পর্কে, দেবিয়ান নয়। আমি আপনাকে ইউনিক্স.এসইতে একটি নতুন প্রশ্ন জিজ্ঞাসা করার পরামর্শ দেব
জার্মটভিডিজ্ক

এই সমাধানটি 'জেনিয়াল' সংস্করণেও কাজ করেছিল! (অবশ্যই ফাইলটিতে জেনিয়াল দিয়ে সুনির্দিষ্ট প্রতিস্থাপনের পরে) অনেক অনেক ধন্যবাদ!
মরহুক

4

এই পৃষ্ঠাটি পরামর্শ দেয় যে 1000 টিরও বেশি পিনের অগ্রাধিকারগুলি প্যাকেজ ডাউনগ্রেডের কারণ হতে পারে এটিকে কাজে লাগিয়ে অ্যাপ্ট পিনিং পুরো সংগ্রহস্থল থেকে ডাউনগ্রেড করতে ব্যবহার করা যেতে পারে ।

তারপরে একটি সমাধান হ'ল অস্থায়ীভাবে 1000 দ্বারা বাড়ানো হবে প্যাকেজ ফাইলগুলির ডিফল্ট অগ্রাধিকারগুলি natty-proposedসংগ্রহস্থল থেকে বাদে :

apt-cache policy | awk '
    /^ [0-9]+ / {
        p = $1;
        getline;
        r = $0;
        if (r !~ /a=natty-proposed/) p += 1000;
        print "Package: *\nPin: " r "\nPin-priority: " p "\n"
    }
' | sudo tee /etc/apt/preferences.d/downgrade-from-natty-proposed

(দ্রষ্টব্য: এই পদ্ধতিটি প্যাকেজ ফাইলগুলির অগ্রাধিকার বাড়াতে ব্যর্থ হয়েছে যার মুক্তির ক্ষেত্রগুলি কমা রয়েছে this এই প্রশ্নটি দেখুন ))

এটি করার পরে, apt-get --simulate upgradeসফল ডাউনগ্রেড সনাক্তকরণের জন্য পরীক্ষার জন্য ব্যবহার করা যেতে পারে। সঠিক ডাউনগ্রেডগুলি সনাক্ত করা হয়েছে তা নিশ্চিত করার পরে sudo apt-get upgrade, ডাউনগ্রেড সম্পাদন করার জন্য প্রয়োজনীয় সমস্ত কিছু হওয়া উচিত।

ডাউনগ্রেডটি সম্পূর্ণ হয়ে গেলে, প্রাক-প্রকাশের আপডেটগুলি (ন্যাটি-প্রস্তাবিত) সংগ্রহস্থলটি অক্ষম করতে সফটওয়্যার উত্সগুলি ব্যবহার করুন , তারপরে অস্থায়ী অগ্রাধিকারের বৃদ্ধি সরান:

sudo rm /etc/apt/preferences.d/downgrade-from-natty-proposed

অবশেষে, পুনরায় বুট করুন যাতে সমস্ত চলমান প্রোগ্রামগুলি তাদের ডাউনগ্রেড সংস্করণ হয়।


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

2

নিম্নলিখিতগুলির চেয়ে সহজ সমাধান আমি খুঁজে পাচ্ছি না। তবুও আশা করা যাচ্ছে যে আরও ভাল উত্তর দিয়ে কেউ প্রবেশ করবেন।

নিম্নোক্ত স্ক্রিপ্ট যা ডাউনগ্রেড কার্যকর করতে পারে

#!/bin/bash

# get a list of installed packages
dpkg --get-selections | awk '{ print $1 }' > all-packages

# run apt-cache policy on each of them, then elaborate with the awk script 
apt-cache policy $(<all-packages) |
  ./get-prev-pkg-vers >old-versions

# install previous version of packages
sudo apt-get --simulate install $(< old-versions)

awkস্ক্রিপ্ট, নামে get-prev-pkg-versহিসাবে অনুসরণ করা হয়

#!/usr/bin/awk -f

/^[^ ]/ {
    package = $1
    gsub(":", "", package)
    search_next = 0
}
/^     [^ ]/ {
    installed = 0
    version = $1
    if (search_next == 1) {
        print package "=" version
        search_next = 0
    }
}
/^ \*\*\* [^ ]/ {
    installed = 1
}
/^        [^ ]/ {
    branch = $3
    if (installed == 1 && branch ~ /proposed/) {
        search_next = 1
    }
    installed = 0
}

স্ক্রিপ্টটি চালানোর সময়, প্রস্তাবিত রেপোটি এখনও অক্ষম করা উচিত হয়নি।

উভয় স্ক্রিপ্টে এক্সিকিউটেবল বিট সেট করতে মনে রাখবেন।

এই পদ্ধতির সাথে একটি সমস্যা হ'ল সমস্ত ডাউনগ্রেড প্যাকেজগুলির ফলস্বরূপ ম্যানুয়ালি ইনস্টল করা হবে (এছাড়াও যেগুলি স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়েছিল)।

নিরাপদ থাকতে, ব্যাশ স্ক্রিপ্টের শেষে --simulateবিকল্পটি যুক্ত করুন apt-get


2

ন্যাটি-প্রস্তাবিত থেকে সমস্ত প্যাকেজগুলি পুনরায় ফিরিয়ে আনার সম্ভবত প্রয়োজন নেই: বেশিরভাগ প্যাকেজ শীঘ্রই ন্যাটি-আপডেটের মাধ্যমে একই সংস্করণে আপডেট করা হবে।

যদি আপনার একটি প্যাকেজ নিয়ে সমস্যা হয় তবে আপনি সেই প্যাকেজটি পিতামাতার উপস্থাপিত পদ্ধতিটি ব্যবহার করে (প্রত্যাশিত অক্ষম করার পরে) ব্যবহার করে ফিরে যেতে পারেন, বা আপনি ব্যবহার করতে পারেন sudo aptitude install packagename/natty। তবে আরও গুরুত্বপূর্ণ বিষয় হল, আপনার প্যাকেজটির বিরুদ্ধে একটি বাগ ফাইল করা উচিত। খুব কম লোকই প্রকৃতপক্ষে ন্যাটি-প্রস্তাবিত পরীক্ষা করে, এবং যদি রিগ্রেশন (= নতুন সমস্যা) দেখা দেয় তবে তাদের অবশ্যই রিপোর্ট করা উচিত। অন্যথায় তারা সমস্ত উবুন্টু ব্যবহারকারীদের জন্য আপডেটগুলি শেষ করতে পারে। সুতরাং আপনার যদি কোনও সমস্যা থাকে তবে রিপোর্ট করুন।


1

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

এখন আপনাকে সেই প্যাকেজগুলি "ডাউনগ্রেড" করতে হবে। একে একে নির্বাচন করুন এবং উপরের মেনুতে চয়ন করুন:

package > force version

(বা নিয়ন্ত্রণ + ই)

প্রাপ্তযোগ্য বিকল্পগুলির সাথে একটি মেনু উপস্থিত হবে। আমি প্রতিটি প্যাকেজের জন্য নিম্ন সংস্করণ নম্বরটি বেছে নেব। আপনি যদি ভুল করে থাকেন এবং সাধারণ ভান্ডারে আরও নতুন সংস্করণ থাকে তবে এটি পরবর্তী আপডেটে সমাধান করা হবে।

একটি দ্রুত সমাধান পোরপোজড রিপোজিটরিটির দিকে ইঙ্গিত করে পার্জ-পিপিএ কমান্ডটি ব্যবহার করা হবে, তবে জানেন না যে এটি তাদের সাথে কাজ করে কিনা, আমি কেবল এটির ব্যবহারিক উবুন্টু সংস্করণে বহিরাগত পিপিএ এবং ডাউনগ্রেড প্যাকেজগুলি সাফ করার জন্য ব্যবহার করেছি। এক্ষেত্রে আমি আপনাকে এটি করার জন্য পুনঃসংশোধন করব না, সম্ভবত কেউ জানেন যে এটি কোনও নিরাপদ পদ্ধতি কিনা ...


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

0

আমি https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1810499proposedসরল রক্ষণাবেক্ষণ কমান্ডের সমতুল্য সমস্ত প্যাকেজ ডাউনগ্রেড করার জন্য একটি ফাংশন সরবরাহ করার প্রস্তাব দিয়েছিলাম কারণ এখানে পোস্টগুলি এখনও প্রতিনিধিত্ব করে বলে মনে হচ্ছে সিস্টেমের অবস্থা।ppa-purge

"প্রস্তাবিত" - পেয়েছেন?

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