পুরোপুরি ইনস্টল না হওয়া প্যাকেজটি কীভাবে সরিয়ে / ইনস্টল করবেন?


62

আমি অন্য দিন বিএসনেস ইনস্টল করতে গিয়েছিলাম এবং যে কোনও কারণে ইনস্টলেশনটি ব্যর্থ হয়েছে। এখন, আমি আপডেট করতে পারি না, নতুন প্যাকেজগুলি ইনস্টল করতে পারি না বা মূলত কোনও এপট-গিন্ড করতে পারি না কারণ তারা সকলেই এই ভাঙা প্যাকেজটি প্রক্রিয়া করার চেষ্টা করে এবং ব্যর্থ হয়। একটি নতুন প্যাকেজ ইনস্টল করার চেষ্টা করা ঠিক একই পরিণতিতে ডومস করে। আমি যে ত্রুটি পেয়েছি তা হ'ল:

Setting up google-chrome-stable (33.0.1750.152-1) ...
/var/lib/dpkg/info/google-chrome-stable.postinst: 124: /var/lib/dpkg/info/google-chrome-stable.postinst: update-alternatives: not found
dpkg: error processing google-chrome-stable (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up bsnes (0.088-7) ...
/var/lib/dpkg/info/bsnes.postinst: 5: /var/lib/dpkg/info/bsnes.postinst: update-alternatives: not found
dpkg: error processing bsnes (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 google-chrome-stable
 bsnes
E: Sub-process /usr/bin/dpkg returned an error code (1)

আমি গুগলে এবং এখানে জিজ্ঞাসা উবুন্টুতে অনুসন্ধান করছি কিন্তু কার্যকর সমাধান খুঁজে পাইনি। সাধারণভাবে প্রস্তাবিত ফিক্সটি নিম্নলিখিতটি চালানো হয়:

sudo apt-get clean && sudo apt-get autoremove
sudo apt-get -f install
sudo dpkg --configure -a

এটি অবশ্য কাজ করে না। অ্যাপ্ট-গেট কমান্ডগুলি উপরের মতো একই ত্রুটি সহ সমস্ত ব্যর্থ হয় এবং dpkg কমান্ড কেবল সহায়তা করে না। তারা প্রায়শই সিন্যাপটিক বা কমান্ড লাইনের মাধ্যমে এটি শুদ্ধ করার পরামর্শ দেয়, যা ব্যর্থ হয়।

সাহায্যের জন্য ধন্যবাদ

উত্তর:


60

উন্নত ব্যবহারকারীদের জন্য, আপনার নিজের ঝুঁকিতে ব্যবহার করুন।

নিম্নলিখিত ত্রুটি বার্তা অনুযায়ী:

subprocess installed post-installation script returned error exit status 127

আপনি /var/lib/dpkg/info/[package_name].postinstসবকিছু সম্পাদনা করতে এবং মন্তব্য করতে চাইতে পারেন (বা আরও ভাল, এটি বোঝার চেষ্টা করুন এবং সমস্যাটি সনাক্ত করতে পারেন), তারপরে apt-getআবার চেষ্টা করুন ।

দ্রষ্টব্য যে যদিও এই বিশেষ প্রশ্নে বার্তাটি "পোস্ট-ইনস্টলমেন্ট" সম্পর্কিত, তবে এটি "প্রাক-অপসারণ" বা "অপসারণের পরে" উল্লেখ করতে পারত (যে ক্ষেত্রে ফাইলটি সম্পাদনা করার সময় বাড়ানো হত .prermবা .postrm) ।


2
আসলে এটি সেরা পদ্ধতি। পুনরায় ইনস্টল করা dpkgসর্বদা সহায়তা করে না।
দানাতেলা

2
ধন্যবাদ গাদা. আমাকে ঠিক করতে হয়েছিল /var/lib/dpkg/info/[package_name].prermতবে আপনার পোস্টটি আমাকে সঠিক দিকনির্দেশনা দিয়েছে। অবশ্যই উন্নত ব্যবহারকারীদের জন্য, এটি ঝুঁকিপূর্ণ !
sururf

সেরা উত্তর। ধন্যবাদ! সংশোধন .prermএবং .postrmফাইলগুলি সমস্যার সমাধান করে।
ফুসর

42

আপনি ইতিমধ্যে পোস্ট করেছেন সেগুলি ব্যতীত, অন্যান্য কয়েকটি কমান্ড রয়েছে যা সহায়ক হতে পারে।

  • অটোকলিয়ান পুনরুদ্ধারকৃত প্যাকেজ ফাইলগুলির স্থানীয় সংগ্রহস্থলটি সাফ করে।

    sudo apt-get autoclean
    
  • প্যাকেজ অপসারণ / অপসারণ জোর করে। সাবধানতার সাথে ব্যবহার করুন

    sudo apt-get --force-yes install <pkgname>
    

    এবং

    sudo apt-get --force-yes remove <pkgname>
    

এছাড়াও সর্বদা হিসাবে, আপনি dpkgপ্যাকেজ ইনস্টল করতে, মুছে ফেলার এবং মুছে ফেলার জন্য ব্যবহার করতে পারেন।

  • ইনস্টল করুন

    sudo dpkg -i <pkgname>
    
  • অপসারণ

    sudo dpkg -r <pkgname>
    
  • রেচক পদার্থ

    sudo dpkg -P <pkgname>
    

Dpkg এবং apt-get --for-Yes কমান্ড উভয়ই আগের মতো একই ত্রুটিটি ফিরিয়ে দেয়। অটোক্লিয়ান একটি ত্রুটি ফেরায় না তবে দুটি ভাঙা প্যাকেজগুলির সাথে কিছু করারও দেখায় না।
বিজাক

@Bijak আপনি নিশ্চয় শুদ্ধিকরণ চেষ্টা করেছি আবশ্যক bsnes.Have তুমি?
নিবন্ধিত ব্যবহারকারী

হ্যাঁ, ডিপি কেজি-পি সহ, অ্যাপ-
গেট শুদ্ধি

আউটপুট পোস্ট করুনdpkg -l |grep bsnes
নিবন্ধিত ব্যবহারকারী

আরএফ bsnes 0.088-7 সঠিক SNES AMD64 / SuperFamicom এমুলেটর
Bijak

27

সুতরাং, আরও গুগল করার পরে এবং সত্যই সাবধানতার সাথে ত্রুটি বার্তাগুলির মাধ্যমে আবার পড়ার পরে মনে হচ্ছে এটি dpkgপুনরায় ইনস্টল করা দরকার।

sudo apt-get install --reinstall dpkg

এই সমস্যাটি কী বলেছিল যে এই সমস্যাটি (যদি কেউ এটি সন্ধান করে এবং দেখে) update-alternatives: not foundএটি ত্রুটি বার্তায় ছিল। Dpkg পুনরায় ইনস্টল করার সাথে সাথে অন্যান্য প্যাকেজগুলি স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে ইনস্টল করতে এগিয়ে গেল।


3
শীর্ষ উত্তরের ⅓ এর চেয়ে কম ভোটের সাথে কেন এখন পর্যন্ত তালিকার একমাত্র সঠিক (এবং স্বীকৃত) উত্তর? +1
ডেভিড ফোরস্টার

একটির জন্য: যেহেতু এটি প্যাকেজগুলির জন্য কাজ করে না যা আর ডাউনলোড করা যায় না "লিনাক্স-চিত্র-অতিরিক্ত -4.4.0-65-জেনেরিকের পুনরায় ইনস্টলেশন সম্ভব নয়, এটি ডাউনলোড করা যায় না।"
জো

3
এটি সম্ভবত হয় অন্তত প্রশ্ন শিরোনাম উপর ভিত্তি করে এখানে আসার কেউ জন্য সম্ভবত সমাধান। তবে এই সমস্যার সাথে যে কেউ শেষ করতে পারে তার অনেকগুলি কারণ রয়েছে, সুতরাং প্রচুর প্রস্তাবিত "এটি আমার জন্য কাজ করে" সমাধানগুলি আসবে
মাইকেল 25

এটি আসলে কাজ করে না।
নেলসনগন

15

আপনি এই /var/lib/dpkg/info/পথে প্যাকেজ ফাইলটি সরাতে এবং উত্সটি আপডেট করতে পারেন।

sudo rm /var/lib/dpkg/info/[package_name].*
sudo dpkg --configure -a
sudo apt-get update

তারপরে, আপনার প্যাকেজটি পুনরায় ইনস্টল করুন sudo apt-get install [package_name]

ডক


4
আসলে আপনার ভাল ব্যবহার ছিল sudo rm /var/lib/dpkg/info/[pakege_name].*। অন্যথায় আপনি একই নামে শুরু হওয়া প্যাকেজগুলিও সরিয়ে ফেলবেন। যাইহোক, এর জন্য ধন্যবাদ, এটি আমার পক্ষে কাজ করা একমাত্র সমাধান ছিল
স্মাক 89

13

অন্য সব ব্যর্থ হলে. আমি যা করেছি তা হ'ল আমি প্রথমে ডিরেক্টরিটি পরিবর্তন করেছিলাম:

cd /var/lib/dpkg/info

তারপরে আমি এর সাথে সমস্ত কিছু সরিয়েছি .postinst:

sudo rm *.postinst

তারপরে সংগ্রহস্থল আপডেট করুন

sudo apt-get update

তখন আমি যখন করেছি তখন সমস্ত কিছু স্বাভাবিক হয়ে যায়:

sudo apt-get --force-yes install openjdk-7-jre-headless

6
এটি প্রভাবিত প্যাকেজের মতো নয় সমস্ত ইনস্টলেশন-পরবর্তী স্ক্রিপ্টগুলি সরিয়ে দেয় । আমার মতে কিছুটা অতিমাত্রায় -1
ডেভিড ফোস্টার

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

কেবল আক্রান্ত কার্নেলের পোস্টস্টাস্টের নাম পরিবর্তন করে কার্নাল ইস্যুগুলি নিয়ে একটি দুঃস্বপ্নের পরে সমস্যাটি স্থির করে
অ্যান্ডি

5

যদি সমস্ত কিছু ব্যর্থ হয়, আপনি ম্যানুয়ালি প্যাকেজটির মাধ্যমে সরাতে পারেন dpkg। দৌড়ানো শুদ্ধ করা sudo dpkg -P bsnesউচিত bsnes


2
dpkg: error processing package libcuda1-340 (--purge): package is in a very bad inconsistent state; you should reinstall it before attempting a removal
এন্ডোলিথ

2

আমার ক্ষেত্রে apt-get install -fকাজ। আমি মাইএসকিএল-ওয়ার্কবেঞ্চ-সম্প্রদায় ইনস্টল করছিলাম

পূর্বে চেষ্টা করা হয়েছে apt autoclean

আমি দেখেছি যে কিছু অনুপস্থিত নির্ভরতার কারণে ডিপি কেজি ত্রুটি হয়েছে যা জোর করে মোডে ইনস্টল করে (নির্ভরতা ইনস্টল করে) সংশোধন করা যেতে পারে


0
sudo apt-get install -f --reinstall coreutils init-system-helpers

উপরে চালানোর পরে, আপনি যে কোনও প্যাকেজগুলির জন্য যথারীতি ইনস্টল / আপগ্রেড / রিমুভ / পার্জ করতে পারেন।

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