আনমেট নির্ভরতার কারণে একটি পূর্ণ / বুট পরিষ্কার করতে পারে না


43

আমার / বুটটি পূর্ণ হয়েছে তা বোঝাতে একটি ত্রুটি বার্তা পেয়েছি। পুরানো চিত্র ফাইলগুলি পরিষ্কার করার চেষ্টাটি ডিস্ক সম্পূর্ণ ত্রুটি বা নির্ভরতা ত্রুটির কারণে সর্বদা ব্যর্থ বলে মনে হয়। কেউ ভুলতে পারে যেখানে আমি ভুল করছি।

$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
 linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not installed
 linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
 linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
E: Unmet dependencies. Try using -f.

$ ls /boot
abi-3.13.0-32-generic         initrd.img-3.13.0-43-generic
abi-3.13.0-36-generic         lost+found
abi-3.13.0-37-generic         memtest86+.bin
abi-3.13.0-39-generic         memtest86+.elf
abi-3.13.0-40-generic         memtest86+_multiboot.bin
abi-3.13.0-43-generic         System.map-3.13.0-32-generic
config-3.13.0-32-generic      System.map-3.13.0-36-generic
config-3.13.0-36-generic      System.map-3.13.0-37-generic
config-3.13.0-37-generic      System.map-3.13.0-39-generic
config-3.13.0-39-generic      System.map-3.13.0-40-generic
config-3.13.0-40-generic      System.map-3.13.0-43-generic
config-3.13.0-43-generic      vmlinuz-3.13.0-32-generic
grub                          vmlinuz-3.13.0-36-generic
initrd.img-3.13.0-32-generic  vmlinuz-3.13.0-37-generic
initrd.img-3.13.0-36-generic  vmlinuz-3.13.0-39-generic
initrd.img-3.13.0-37-generic  vmlinuz-3.13.0-40-generic
initrd.img-3.13.0-39-generic  vmlinuz-3.13.0-43-generic
initrd.img-3.13.0-40-generic

আমি ব্যবহার করতাম

kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver

পেতে

linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-3.13.0-40
linux-headers-3.13.0-40-generic
linux-headers-3.13.0-44
linux-headers-3.13.0-44-generic
linux-headers-3.13.0-45
linux-headers-3.13.0-45-generic
linux-image-3.13.0-32-generic
linux-image-3.13.0-36-generic
linux-image-3.13.0-37-generic
linux-image-3.13.0-39-generic
linux-image-3.13.0-40-generic

তারপরে সরানোর জন্য প্রথম চিত্রটি বাছাই করা হচ্ছে

$ sudo apt-get purge linux-image-3.13.0-32-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
 linux-image-extra-3.13.0-32-generic : Depends: linux-image-3.13.0-32-generic but it is not going to be installed
 linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not going to be installed
 linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
 linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

আপনার প্রশ্ন এবং আউটপুট সম্পাদনা দয়া করে sudo apt-get autoremoveএবং ls /boot
মুরু

Phrog এর উত্তর চেষ্টা করুন। uname -rআপনার বর্তমান কার্নেল সংস্করণটি জানতে কমান্ডটি ব্যবহার করুন , এবং এটির চেয়ে অন্য কোনও কার্নেল অপসারণের চেষ্টা করুন।
মুরু

উত্তর:


64

এই ক্ষেত্রে আমি dpkgকিছু কার্নেল প্যাকেজ অপসারণ করার জন্য জোর করে এই সরঞ্জামটি ব্যবহার করব । এটি সাধারণ ব্যবহারের জন্য প্রস্তাবিত নয় এবং এটি কিছুটা বিপজ্জনক , তবে অমীমাংসিত নির্ভরতার সাথে এই ক্ষেত্রে সহায়তা করতে পারে।

প্রথমে সিস্টেমটি বুট করা কার্নেলটি সনাক্ত করুন। এটি বর্তমানে লোড হয়েছে। একটি টার্মিনাল খুলুন (CTRL + ALT + T) এবং নিম্নলিখিত কমান্ডটি জারি করুন

uname -r

এটি আপনাকে বোঝা কার্নেলটি দেখায়, আপনার এটি অপসারণ করার চেষ্টা করা উচিত নয়।

তারপরে কমান্ড জারি করুন

ls /boot 

এটি সমস্ত ইনস্টল করা চিত্র ফিরে আসবে। দু'একটি বাছুন এবং সেগুলি সরানোর চেষ্টা করুন। তাদের জোর করে মুছে ফেলার / শুদ্ধ করার চেষ্টা করুন। উদাহরণ স্বরূপ

sudo dpkg --force-all -P linux-image-3.13.0-32-generic

কিছু স্থান খালি করার জন্য আপনি অন্যান্য চিত্রগুলির জন্যও এটি করতে পারেন।

তারপরে আপনি অনুপস্থিত প্যাকেজগুলি ইনস্টল করার চেষ্টা করতে পারেন, বা

sudo apt-get install -f 

নির্ভরতা সমাধান করার চেষ্টা করা।

অবশেষে, "ক্লিনআপ ওল্ড কার্নেলস" কমান্ডটি জারি করুন

 sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

উপরের কমান্ডটি বর্তমানে লোড হওয়া ব্যতীত সমস্ত কার্নেলগুলি সরিয়ে ফেলবে।

আপনার পৃথক / বুট পার্টিশন থাকার কারণে, মনে রাখবেন আপনার এটির স্থান এবং প্রায়শই পরিষ্কার করা প্রয়োজন (ফ্রিকোয়েন্সি / বুটের স্পেসের উপর নির্ভর করে)


1
হাই যখন আমি তাদের অপসারণ করার চেষ্টা করি তখন আমি একটি ত্রুটি পেয়েছি sudo dpkg --for-all -P abi-3.13.0-32-জেনেরিক dpkg: সতর্কতা: অবি -313.1-32-জেনেরিক অপসারণের অনুরোধটি উপেক্ষা করুন যা না ইনস্টল করা হয়েছে
ফিলিপ হাওয়ার্ড

9
এটি আমার জন্য একটি পরিবর্তন করে কাজ করেছিল: কার্নেল চিত্রগুলি দিয়ে মুছে ফেলার পরে আমাকে আনমেট নির্ভরতা সম্পর্কে অভিযোগ করা বন্ধ dpkgকরতে দৌড়াতে sudo apt-get -f autoremoveহয়েছিল apt-get। অন্যথায়, sudo apt-get -f installদৃশ্যত আমি মুছে ফেলা সমস্ত কার্নেল চিত্রগুলি পুনরায় ইনস্টল করার চেষ্টা চালিয়ে গিয়েছিলাম dpkg, যা সম্ভবত /bootআবার পূরণ হয়েছে ।
mdunsmuir

4
জোর করে শুদ্ধ করার পরে এবং apt-get -f autoremoveউপরে @ এমডুনসমুয়ার মন্তব্য করার পরে , এটি এখনও উপরের কোনও ক্লিন আপ অপারেশনের সময় পুরানো সমস্ত কার্নেলগুলি ইনস্টল করতে চায়। সম্পর্কহীন নির্ভরতা অবহেলা এবং একটি একক, সম্পূর্ণ পুরানো কার্নেল অপসারণ করার জন্য কি কেবল এটি বলার উপায় আছে?
এনকিজাক

3
আমি যুক্ত করতে চাই যে আমাকে অতিরিক্তগুলিও আনইনস্টল করতে হয়েছিল sudo dpkg --force-all -P linux-image-extra-3.13.0-32-generic। অন্যথায় এই অতিরিক্তগুলি এখনও প্রকৃত চিত্রের উপর নির্ভর করে এবং -fপতাকাটি চিত্রটিকে পুনরায় ইনস্টল করতে এবং তারপরে ডিস্কের স্থান ছাড়িয়ে যায়।
ঘোস্টকিপার

1
@ লনিবেস্ট আমি একমত বিপরীতে, আর্চ লিনাক্স কেবল একটি ফ্যালব্যাক রাখে। ফেডোরারও এই সমস্যাটি মনে হয় না।
ফ্র্যাঙ্কলিন ইউ 19

5

এটি আমার পক্ষে উবুন্টু 16.04 এ কাজ করেছিল।

sudo apt autoremove --purge
sudo apt autoremove
sudo apt-get -f install
sudo apt-get upgrade

এই পদ্ধতিটি আমার পক্ষে কাজ করেছিল।
বক

2

সমস্ত কার্নেল তালিকাবদ্ধ করুন:

dpkg --list 'linux-image*'

বর্তমান কার্নেল প্রদর্শন করুন:

uname -r

সমস্ত কার্নেল তালিকা বর্তমান বর্তমান ছাড়ুন :

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

আপনার বর্তমান কার্নেলটি সেই তালিকায় নেই তা নিশ্চিত করুন।

সমস্ত কার্নেল সরান বর্তমান বর্তমান ছাড়ুন :

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs sudo apt-get -y purge

অন্যান্য জিনিস সাফ করুন:

sudo apt-get autoremove

এটি যদি এখনও ফাইল ইনস্টল / আনইনস্টল করার জন্য বুট ডিস্কের স্থান ত্রুটি দেয় তবে সরাসরি / বুট ডিরেক্টরি থেকে পুরানো চিত্রটি সরিয়ে ফেলুন, ls -lh /boot/*-3.13.0-119*; আরএম / বুট / ৮.৩.৩.৩.০-১১৯*৩; দ্রষ্টব্য: কোনও চিত্র মোছার আগে দয়া করে আবার কার্নেল চিত্রটি পর্যালোচনা করুন।
হেমন্ত থোরাট

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