স্বতঃস্থাপন কেন আমার পুরানো কার্নেলগুলি সরিয়ে দেয় না?


53

আমার বুট বিভাজনটি একটি এসএসডি-তে রয়েছে, সুতরাং এতে প্রায় 8 টিরও বেশি ইনস্টল করা কার্নেল সংস্করণ নেই এবং শেষ পর্যন্ত কিছু কার্নেল আপডেট ইনস্টল করতে ব্যর্থ হবে কারণ আমার বুট বিভাজনটি পুরানো সংস্করণে পূর্ণ। পুরানো সংস্করণগুলি (কীভাবে প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে করা যায়) কীভাবে মুছে ফেলা যায় সে সম্পর্কে অনেকগুলি প্রশ্ন রয়েছে তবে আমার প্রশ্নটি কেবল এটি: কেন apt-get autoremoveএগুলি স্বয়ংক্রিয়ভাবে সনাক্ত এবং সরিয়ে ফেলা যায় না এবং আমি কী এমন উপায় করার চেষ্টা করব ? আমার অর্থ, apt-getএগুলি যে কোনও উপায়ে ইনস্টল করা আছে, তাই এটি তাদের সম্পর্কে জানে, সুতরাং কেন এটি সমস্ত পুরানো সংস্করণকে প্রায় ছেড়ে যেতে বেছে নেয়?



1
অটোরমোভ বেশিরভাগ পরিস্থিতিতে পুরানো কার্নেলগুলি সরিয়ে দেয় । কার্নেলগুলি জমা হয় কারণ সিস্টেমটি ডিফল্টরূপে স্বয়ংক্রিয়ভাবে সরানো হয় না। এটি অপরিবর্তিত-আপগ্রেডগুলিতে একটি সেটিংস এবং পরিবর্তিত হতে পারে। পূর্বে-কাতযুক্ত অ্যাপ্ট ক্রিয়াগুলি (নতুন কর্নেল ইনস্টল করার মতো) ব্যর্থ হলে (অপর্যাপ্ত স্থানের কারণে) অটোমোরম পুরানো কার্নেলগুলি সরাতে পারে না। অপ্রচলিত-আপগ্রেডগুলিতে প্যাচটির জন্য bugs.launchpad.net/bugs/1357093 দেখুন যা পুরানো কার্নেলগুলি স্বয়ংক্রিয়ভাবে সরানো শুরু করবে
ব্যবহারকারীর 3535733

উত্তর:


36

কেন উত্তর হিসাবে, ফাইল দেখুন /etc/apt/apt.conf.d/01autoremove-kernels

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন, অপ্টকে কার্নেলগুলি কখনই অটোরেমোভ না করতে বলা হয়, যেমন অন্য একটি (স্ক্রিপ্ট) ফাইল বলেছে /etc/kernel/postinst.d/apt-auto-removal,। এবং এটি এখানে:

এখানে চিত্র বর্ণনা লিখুন

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

হালনাগাদ:

ইন /etc/kernel/postinst.d/apt-auto-removalএই অংশ থাকে:

if [ "$latest_version" != "$installed_version" ] \
   || [ "$latest_version" != "$running_version" ] \
   || [ "$installed_version" != "$running_version" ]
then
        # We have at least two kernels that we have reason to think the
        # user wants, so don't save the second-newest version.
        previous_version=
fi

সুতরাং আপনি যদি 01autoremove-kernelsফাইলের আউটপুট তুলনা করেন এবং uname -rআপনি বুঝতে পারবেন যে বর্তমানে চলমান কার্নেল এবং এর আগে অতি সাম্প্রতিক, কখনই সেই স্ক্রিপ্টের মাধ্যমে মুছে ফেলা হবে না। দেখা যাচ্ছে যে অন্য ফাইল রয়েছে /etc/apt/apt.conf.d/01autoremove, যেখানে লাইন রয়েছে:

    APT
    {
      NeverAutoRemove
      {
            "^firmware-linux.*";
            "^linux-firmware$";
      };
  VersionedKernelPackages
  {
        # linux kernels
        "linux-image";
        "linux-headers";
        "linux-image-extra";
        "linux-signed-image";
        # kfreebsd kernels
        "kfreebsd-image";
        "kfreebsd-headers";
        # hurd kernels
        "gnumach-image";
        # (out-of-tree) modules
        ".*-modules";
        ".*-kernel";
        "linux-backports-modules-.*";
        # tools
        "linux-tools";
  };

সুতরাং আপনি এগুলি মন্তব্য করতে পারেন, এবং এটি আপনাকে কার্নেলগুলি দিয়ে স্বয়ংক্রিয়ভাবে অপসারণের অনুমতি দেবে apt-autoremove, তবে মনে রাখবেন - এটি নিজের ঝুঁকিতে এটি করুন


1
অনেক আগ্রহব্যাঞ্জক! আমার /etc/apt/apt.conf.d/01autoremove-kernelsকাছে অনেকগুলি লাইন রয়েছে তবে সেগুলির মধ্যে কেবল দুটি সংস্করণ রয়েছে: 3.13.0 {39,43}} তবে dpkg -l linux-*versions.১13.০. এর চারটি সংস্করণ তালিকাবদ্ধ করে।, 39,40,41,43 those, সুতরাং /etc/apt/apt.conf.d/01autoremove-kernelsmiddle মাঝারি সংস্করণগুলি প্রায় রাখছেন , তাই না?
ব্লুবম্বার

1
টিএল: ডিআর: 01autoremoveআপনি যে ফাইলটি চান 01autoremove-kernelsসেটি সম্ভবত একটি সুরক্ষা, যাতে
অ্যাপ্লিকেশনটি

1
আমি যদি অশুদ্ধ পাঠ করছি 01autoremove, এটা ঠিক নির্ভরতা প্যাকেজ অটো-অপসারণের বিরুদ্ধে রক্ষা ব্যাপার আরকি linux-image-extra। এটি পরিবর্তিত হওয়া linux-image-3.16.0-31-genericস্বাবলম্বী হয় কি না তা প্রভাবিত করে না । এতে থাকা কোনও নিদর্শন প্যাকেজের নামের সাথে মেলে না যা আমরা স্বয়ংক্রিয়ভাবে সরানো চাই।
পিটার কর্ডেস

1
@ পিটারকর্ডস লাইনগুলি সরাবেন না বা মন্তব্য করবেন না /etc/apt/apt.conf.d/01autoremove। এটি আপনাকে পুরানো সংস্করণযুক্ত কার্নেল প্যাকেজগুলিকে স্বয়ত্তরকরণে সহায়তা করে না তবে অযাচিত প্রভাব ফেলতে পারে। ফাইলটি স্বনির্ধারণ থেকে রক্ষা করে না linux-image-extraতবে NeverAutoRemoveবিভাগে নিয়মিত প্রকাশের সাথে মেলে এমন প্যাকেজগুলি ।
জার্নো

2
@ ব্লুবম্বার, apt-get autoremoveতালিকাভুক্ত না হওয়া কার্নেলগুলি অপসারণ না করার কারণ /etc/apt/apt.conf.d/01autoremove-kernelsহ'ল সেই কার্নেলগুলি ম্যানুয়ালি ইনস্টল করা হিসাবে চিহ্নিত করা হয়েছে; আমার উত্তর দেখুন
জার্নো

8

আমার জন্য এটি সর্বশেষ (এক্স) উবুন্টু (15.10) ইনস্টল করতে সহায়তা করেছে। পূর্ববর্তী রিলিজগুলিতে কার্নেল প্যাকেজগুলি ম্যানুয়ালি ইনস্টল হিসাবে চিহ্নিত হতে পারে, অন্ততপক্ষে, যদি সফ্টওয়্যার আপডেটার ব্যবহার করে ইনস্টল করা থাকে, যাতে sudo apt-get autoremove --purgeসেগুলি মুছতে পারে না। সমস্যা সম্পর্কিত বাগ রিপোর্ট রয়েছে: বাগ # 1175637 , বাগ # 1439769

পূর্ববর্তী সংস্করণে, আপনি স্বয়ংক্রিয়ভাবে ইনস্টল করা কার্নেল প্যাকেজগুলি চিহ্নিত করার চেষ্টা করতে পারেন sudo apt-mark auto $(apt-mark showmanual | grep -E "^linux-([[:alpha:]]+-)+[[:digit:].]+-[^-]+(|-.+)$")এবং sudo apt-get autoremove --purgeতারপরে এটির কোনও পার্থক্য রয়েছে কিনা তা দেখতে চালনা করতে পারেন। কমান্ডটি এখনও /etc/apt/apt.conf.d/01autoremove-kernels এ প্রদর্শিত কার্নেল প্যাকেজগুলি অপসারণ করা উচিত নয়, তবে প্রথমে বিকল্পের apt-get autoremoveসাথে চালানো নিরাপদ --dry-run


ওহ, অটোরমোভ কমান্ডটি অনেকগুলি কার্নেলগুলি সরিয়ে ফেলার প্রবণতা দেখেছে, বাগ # 1440608 দেখুন
জার্নো

1
The apt-markআমার জন্য কৌতুক করেছিল ইচ্ছুক আমি 10 বার ভোট দিন পারে: পি
মাইক Gleason স্বাগতম জুনিয়র couturier
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.