'আপ্ট' কীভাবে ঠিক করবে যে কতগুলি পুরানো কার্নেল রাখতে হবে?


23

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

nul@quark:~$ sudo apt-get autoremove --purge
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
nul@quark:~$ dpkg -l |grep linux-image
ii  linux-image-3.13.0-51-generic       3.13.0-51.84                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-52-generic       3.13.0-52.85                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.16.0-37-generic       3.16.0-37.49~14.04.1             amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-51-generic 3.13.0-51.84                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-52-generic 3.13.0-52.85                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.16.0-37-generic 3.16.0-37.49~14.04.1             amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii  linux-image-generic                 3.13.0.52.59                     amd64        Generic Linux kernel image
ii  linux-image-generic-lts-utopic      3.16.0.37.29                     amd64        Generic Linux kernel image

...

nul@dwarf:~$ sudo apt-get autoremove --purge
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
nul@dwarf:~$ dpkg -l |grep linux-image
ii  linux-image-3.13.0-52-generic       3.13.0-52.85                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.16.0-37-generic       3.16.0-37.49~14.04.1             amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-52-generic 3.13.0-52.85                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.16.0-37-generic 3.16.0-37.49~14.04.1             amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii  linux-image-generic                 3.13.0.52.59                     amd64        Generic Linux kernel image
ii  linux-image-generic-lts-utopic      3.16.0.37.29                     amd64        Generic Linux kernel image

সমস্ত সার্ভারগুলি অভিন্ন রক্ষণাবেক্ষণ করা হয়, আমি কী করতে পারি তা জানি না, কোথাও একটি প্যারামিটার হতে হবে তবে এটি খুঁজে পাচ্ছে না!

আমার কৌতূহল খাওয়াতে দয়া করে! ধন্যবাদ

উত্তর:


32

এখানে একটি ফাইল রয়েছে যা স্বয়ংক্রিয়ভাবে উত্পন্ন হয় apt-getযা কোনটি কার্নেলগুলি স্বতঃপরিবর্তন করতে পারে এবং কোনটি রাখতে হবে তা জানায় ।
ফাইলটি যেগুলি জানায় apt-getযে তারা কোন কার্নেল /etc/apt/apt.conf.d/01autoremove-kernelsথেকে উত্পন্ন হয়/etc/kernel/postinst.d/apt-auto-removal

সাধারণত সেখানে কি ঘটছে যে আপনি যখন কার্নেল আপডেট পাচ্ছেন, যখন কার্নেল সংস্করণ পরিবর্তন, থেকে বলে 3.13করতে 3.16, /etc/apt/apt.conf.d/01autoremove-kernelsতারপর রাখার আপডেট করা হয় 3.16*কার্নেলের এবং তারপর সব মুছে ফেলার জন্য সেট করা হয়3.13 উৎপাদিত স্ক্রিপ্ট দ্বারা নির্দিষ্ট যদি না করতে সরানো যাবে কার্নেলের।

থেকে apt-auto-removalলিপি :

# লেখক: স্টিভ ল্যাঙ্গাসেক 
#
# যে কার্নেল প্যাকেজগুলি হ'ল - অটোরেমোমল করার জন্য নয় তা হিসাবে চিহ্নিত করুন:
# - বর্তমানে বুট করা সংস্করণ
# - যে কার্নেল সংস্করণটি আমাদের জন্য ডাকা হয়েছিল
# - সর্বশেষতম কার্নেল সংস্করণ (গ্রাব থেকে অনুলিপি করা নিয়ম ব্যবহার করে নির্ধারিত)
কোন কার্নেলটি বুট করতে হবে তা নির্ধারণের জন্য # প্যাকেজ)
# - দ্বিতীয় সর্বশেষতম কার্নেল সংস্করণ, যদি বুট করা কার্নেল সংস্করণ হয়
# ইতিমধ্যে সর্বশেষ এবং এই স্ক্রিপ্টটিকে একই সংস্করণের জন্য ডাকা হয়েছে,
# সদ্য ইনস্টল হওয়া ইভেন্টটিতে একটি ফ্যালব্যাক উপলব্ধ থাকবে তা নিশ্চিত করতে #
এই এবিআইতে # কার্নেল বুট করতে ব্যর্থ
# সাধারণ ক্ষেত্রে, এর ফলস্বরূপ ঠিক দুটি কর্নেল সংরক্ষণ করা হয়েছিল, তবে তা সম্ভব
# ফলস্বরূপ তিনটি কার্নেল সংরক্ষণ করা হবে। পাশ থেকে ভুল করা ভাল
# অল্প সংখ্যক সংরক্ষণের চেয়ে অনেক বেশি কার্নেল সংরক্ষণ করা হচ্ছে।
#
# আমরা এই তালিকাটি তৈরি করি এবং এটি চিহ্নিত করার পরিবর্তে /etc/apt/apt.conf.d এ সংরক্ষণ করি
ডাটাবেসে # প্যাকেজগুলি কারণ এটি একটি পোস্ট-ইনস্ট্রিপ্ট স্ক্রিপ্ট থেকে চালিত হয় এবং অ্যাপ্লিকেশন
# ডিবিটি প্রস্থান করার পরে ওভাররাইট করা হবে।

যাইহোক, এটি কখনও কখনও এগুলিকে স্বয়ংক্রিয় অপসারণের জন্য চিহ্নিত করে না যেহেতু কোডিংয়ের কিছু সংস্করণ পরিবর্তিত হয়েছে যাতে এটি না ঘটে।

আপনি যদি autoremoveস্ক্রিপ্টগুলির উপর ভিত্তি করে প্রয়োজনীয় কার্নেলগুলি বাদ দিয়ে পূর্ববর্তী কার্নেলগুলি চিহ্নিত করতে চান তবে টার্মিনাল উইন্ডো থেকে নিম্নলিখিত কমান্ডটি চালান:

sudo apt-mark auto ^linux-image-

তারপরে, আপনি যখন apt-get autoremoveকমান্ডটি চালাবেন কেবলমাত্র পুরানো এবং আর প্রয়োজন নেই সেগুলি মুছে ফেলা যাবে। আমি নীচে উদাহরণ রেখেছি:

এটির প্রথমটি বর্তমান চলমান কার্নেলটি বিয়োগের সমস্ত কার্নেলগুলি দেখায়।

রুট @ টেরেন্স-লিনাক্স: / হোম / শেয়ার # dpkg -l 'লিনাক্স- *' | সেড '/ ^ আইআই /! ডি; / "" $ (আনমে -আর | সেড "এস /\(.*\)-\( ^-৯]] \ + \) / \ 1 /") "' / ডি; এস / ^ [^] * [^] * \ ([[^] * \))। * / \ 1 /; / [0-9] /! ডি '
লিনাক্স-হেডার-3.16.0-34
লিনাক্স-হেডার-3.16.0-34-জেনেরিক
লিনাক্স-হেডার-3.16.0-36
লিনাক্স-হেডার-3.16.0-36-জেনেরিক
লিনাক্স-হেডার-3.16.0-37
লিনাক্স-হেডার-3.16.0-37-জেনেরিক
লিনাক্স-হেডার-4.0.0-040000
লিনাক্স-হেডার-4.0.0-040000-জেনেরিক
লিনাক্স চিত্র 3.16.0-34-জেনেরিক
লিনাক্স চিত্র 3.16.0-36-জেনেরিক
লিনাক্স চিত্র 3.16.0-37-জেনেরিক
লিনাক্স চিত্র 4.0.0-040000-জেনেরিক
লিনাক্স চিত্র অতিরিক্ত 3.16.0-34-জেনেরিক
লিনাক্স চিত্র অতিরিক্ত 3.16.0-36-জেনেরিক
লিনাক্স চিত্র অতিরিক্ত 3.16.0-37-জেনেরিক

এটি বর্তমান চলমান কার্নেলটি দেখায়।

টেরেন্স @ টেরেন্স-লিনাক্স: ame ame uname -r
4.0.1-040001-জেনেরিক
টেরেন্স @ টেরেন্স-লিনাক্স: do aut অটোমোরিয়ালি supt-get
স্থলতার জন্য [sudo] পাসওয়ার্ড: 
প্যাকেজ তালিকা পড়া হচ্ছে ... সম্পন্ন হয়েছে one
নির্ভারতা গাছ নির্মান       
রাষ্ট্রের তথ্য পড়া ... সম্পন্ন হয়েছে
0 আপগ্রেড করা হয়েছে, 0 নতুন ইনস্টল করা হয়েছে, 0 অপসারণ করতে হবে এবং 0 আপগ্রেড হয়নি।
টেরেন্স @ টেরেন্স-লিনাক্স: do do সুডো এপ-মার্ক অটো ^ লিনাক্স-চিত্র-
লিনাক্স-চিত্র-অতিরিক্ত-3.16.0-33-জেনেরিক এটি ইনস্টল না হওয়ার কারণে চিহ্নিত করা যায় না।
লিনাক্স-চিত্র-অতিরিক্ত-3.13.0-27-জেনেরিক এটি ইনস্টল না হওয়ার কারণে চিহ্নিত করা যায় না।
linux-image-3.13.0-44-lowlatency এটি ইনস্টল না হওয়ায় চিহ্নিত করা যায় না।
linux-image-3.13.0-27-জেনেরিক এটি ইনস্টল না হওয়ায় চিহ্নিত করা যাবে না।
linux-image-3.16.0-31-lowlatency এটি ইনস্টল না হওয়ায় চিহ্নিত করা যায় না।
লিনাক্স-ইমেজ-3.16.0-36-জেনেরিক সেট স্বয়ংক্রিয়ভাবে ইনস্টল।
linux-image-lowlatency-lts-utopic ইনস্টল না হওয়ায় চিহ্নিত করা যাবে না।
লিনাক্স-চিত্র-অতিরিক্ত-3.13.0-36-জেনেরিক এটি ইনস্টল না হওয়ার কারণে চিহ্নিত করা যায় না।
linux-image-3.13.0-36-জেনেরিক এটি ইনস্টল না হওয়ার কারণে চিহ্নিত করা যায় না।
linux-image-4.0.0-040000-জেনেরিক সেট স্বয়ংক্রিয়ভাবে ইনস্টল করা আছে।
লিনাক্স-চিত্র-অতিরিক্ত-3.13.0-45-জেনেরিক এটি ইনস্টল না হওয়ার কারণে চিহ্নিত করা যায় না।
linux-image-3.16.0-25-জেনেরিক এটি ইনস্টল না হওয়ায় চিহ্নিত করা যাবে না।

দ্রষ্টব্য: উপরেরটির তালিকাটি বেশ দীর্ঘ ছিল, তাই আমি কিছুটা ছাঁটাই করেছি।

টেরেন্স @ টেরেন্স-লিনাক্স: do aut অটোমোরিয়ালি supt-get
প্যাকেজ তালিকা পড়া হচ্ছে ... সম্পন্ন হয়েছে one
নির্ভারতা গাছ নির্মান       
রাষ্ট্রের তথ্য পড়া ... সম্পন্ন হয়েছে
নিম্নলিখিত প্যাকেজগুলি সরানো হবে:
  লিনাক্স-ইমেজ-3.16.0-34-জেনেরিক লিনাক্স-ইমেজ-3.16.0-36-জেনেরিক
  linux-image-4.0.0-040000-জেনেরিক লিনাক্স-চিত্র-অতিরিক্ত-3.16.0-34-জেনেরিক
  লিনাক্স চিত্র অতিরিক্ত 3.16.0-36-জেনেরিক
0 আপগ্রেড করা হয়েছে, 0 নতুন ইনস্টল করা হয়েছে, সরানোর জন্য 5 এবং 0 আপগ্রেড করা হয়নি।
এই ক্রিয়াকলাপের পরে, 613 এমবি ডিস্কের স্থানটি মুক্ত করা হবে।
আপনি কি অবিরত করতে চান? [Y / N]

সুতরাং, এই কমান্ডগুলি চালনার পরে, আপনি দেখতে পাচ্ছেন যে আমি এখন সমস্ত পুরানো তবে বর্তমান কার্নেল (4.0.1-040001-জেনেরিক) এবং পরবর্তী নতুনটি (3.16.0-37-জেনেরিক) স্বয়ংক্রিয়ভাবে সরিয়ে ফেলতে পারি।

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


উবুন্টু ডিফল্টরূপে স্বয়ংক্রিয়ভাবে অপসারণ করে না ?. আমাদের কাছে বিকল্প আছে তবে "অযাচিত" কার্নেলটি কী তা সিদ্ধান্ত নেওয়া (এখনও) অসম্ভব বলে মনে করা হয়েছিল (অন্যান্য অপারেটিং সিস্টেমে "অবাঞ্ছিত" "অব্যবহৃত" সমান)।
রিনজুইন্ড

ঠিক আছে. আমি আপনার
বিটটি

1
@ টার্নেন্স আমি sudo apt-mark auto ^linux-image-অনুসরণ করার চেষ্টা করেছি sudo apt-get autoremove --purgeকিন্তু কোন ফল হয় নি; তবে, একটি সামান্য dist-upgradeপরিবর্তিত 2 টি কার্নেল (3.13.0-52 এবং 3.16.0.37) এবং নিম্নলিখিতটি autoremove3.13.0-51 এ মুক্তি পেয়েছে ...
ionreflex

1
আপনি এটি পেয়ে গেছেন প্রতিটি উত্তর নিখুঁত নয় এবং এটি সবার জন্য কার্যকর নাও হতে পারে। তবে আমার কাছে এটি দেখতে সুন্দর লাগছে যে নিজের মতো লোকেরা কিছুটা সমস্যা সমাধান করতে পারে এবং সেগুলি সরানোর কোনও উপায় বের করতে পারে। আমি ভাবছি যে dist-upgradeআপনি দৌড়ে এসে লাথি মেরে ফেলেছিলেন এবং /etc/kernel/postinst.d/apt-auto-removalতারপরে /etc/apt/apt.conf.d/01autoremove-kernelsকোনটি রাখা উচিত তা পরে তা সংশোধন করেছেন ।
টেরেন্স

1
@ টার্নেন্স প্রেটি অবশ্যই নিশ্চিত যে আমি এর dist-upgradeআগে একটি কাজ করেছি , তবে সম্ভবত আজ সকালে কার্নেলগুলি আপগ্রেড হওয়ার কৌশলটি কৌতুকটি করেছে ... যাইহোক, চিয়ার্স এবং আপনার উত্তরের জন্য আপনাকে ধন্যবাদ, আমি এর মাধ্যমে অনেক কিছু শিখেছি!
ionreflex
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.