Ubuntu'da kırık paketler nasıl silinir


37

Bozuk paketi çıkaramıyorum. Aşağıdaki komutu kullanın: sudo apt-get -f install ancak aşağıdaki yanıtı alıyorum:

Preparing to unpack .../nodejs_0.10.28-1chl1~trusty1_amd64.deb ...
Unpacking nodejs (0.10.28-1chl1~trusty1) over (0.10.25~dfsg2-2ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/man/man1/node.1.gz', which is also in package nodejs-legacy 0.10.25~dfsg2-2ubuntu1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for man-db (2.6.7.1-1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Gibi çeşitli komutları denedim

 2015  sudo apt-get clean
 2020  sudo dpkg --configure -a
 2023  sudo apt-get autoremove
 2034  sudo apt-get upgrade && sudo apt-get -f install

Ancak sonuç alamadım. Sinaptik kuramıyorum. Herhangi bir fikir kırık paketi nasıl kaldırabilirim?


İşte birkaç cevap önerdi --force-remove-reinstreqve --force-overwrite. Lütfen bu ikisini (özellikle ilki) yalnızca bir Linux uzmanıysanız kullanmanız gerektiğini unutmayın, çünkü sisteminizi tamamen kırabilir.
g_p

Yanıtlar:


54

ubuntu'daki bozuk paketleri kaldırmak için bu komutu çalıştırın.

sudo dpkg --remove --force-remove-reinstreq package_name 

paketi kaldırdıktan sonra sisteminizi komutla güncelleyin

sudo apt-get update

başarıyla güncelledikten sonra sistemi yeniden başlatın.


5
Bu komut sizi sisteminizi
onaracağından

2
@ rancho, hangi pakete bağlı olduğuna bağlıdır.
Philip,

güzel bir, yolu her zaman yazma PACKAGE_NAME Gus henüz ben örneğin bir deli formatta 900 hatların listesini görmek: Broken libopencv-highgui2.4v5:amd64 Conflicts on libopencv-highgui2.4 [ amd64 ] < 2.4.8+dfsg1-2ubuntu1 > ( libs ). LTS'de beklemek bana gerçekten bu çılgın numarayı yaptı.
Nyxee

@ rancho "seni tamir ettiğinden daha fazla yıkıyor" ayrıntılı olarak açıklayabilir misiniz? man dpkgçok yardımcı olmuyor.
Stéphane Gourichon

Bu benim için çalışan tek şeydi. Paketi güncellerken MySQL'imi kırdım. Şimdi temizleyemedim ya da yeniden kuramadım. Böylece bu benim hayatımı kurtardı.
Ankit Singhaniya

11

Terminalini aç ve aşağıdaki komutu kullan

sudo dpkg --purge nodejs-legacy
sudo apt-get install -f

Sorunu çözmeli.


11

Bunu buldum:

sudo dpkg --remove --force-remove-reinstreq <packagename>

En iyi çalışır Başka bir pakete bağlı olduğu için bir paketi kaldırmayacağı konusunda bir hata veriyorsa, diğer paketi de kaldırın. Bu adımı birkaç kez tekrarlamanız ve sonra silinen paketlerinizi yeniden kurmanız gerekir.

force-remove-reinstreqBir paket silme "nükleer seçenek" dir. Sadece silmek üzere olduğunuza bağlı olarak başka bir paket varsa başarısız olur - Yine, bu durumda bağlı paketi de silmiş.


Nükleer seçenek, her ikisini de temizlemenin, temizlemenin, yeniden kurmanın, otomatik hareket etmenin dpkgve apt-getbaşarısız olmanın yolunda çalıştı . Teşekkür ederim.
LAFK, Reinstate Monica'nın

Herşeyi kaçırmak ve baştan başlamak istiyorsanız , bu en iyi çözümdür. Bana çok zaman kazandırdı! (Ben de --remove sonra - mürettebat)
andersevenrud

package_name
plase

4

Bu benim sorunumu çözdü:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb

O zaman lütfen doğru cevap olarak işaretleyiniz.
Jarno

Mükemmel çalışıyor.
Shubham Patel,

3

Terminalinizi açın ve bu satırı satırdan sonra yapıştırın.

sudo rm -rf  /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade

sonra tekrar dene


2

Aynı hata tekrarlar Biz yaparsak apt-get cleanve apt-get -f installönemsiz verileri /var/lib/dpkg/statusUbuntu'daki dosyadan kaldırmadıkça .

Apache'nin kırık paketini kaldırmamız gerektiğini varsayalım. Başlangıçta durum dosyasını açmalı ve apache paketini aramalıyız. Tüm paket açıklamasını kaldırın ve durum dosyasını kaydedin. Sonra apt-get -f installve kullanmayı deneyin apt-get clean.


2

Yukarıdakilerin hiçbiri benim için çalıştı. Sonunda / var / lib / dpkg / status dosyasını düzenledim ve paketleri oradan kaldırdım.

Zor, bunu yapmayı tavsiye etmem, sadece başka bir şey başarısız olursa ...


Bu benim için çalışan tek şey gibi görünüyor. -Force-remove-reinstreq'in 'nükleer seçeneği' bile rahatsız edici paketi silemedi. Teşekkürler bayım.
alex

1

Yukarıdakilerin hiçbiri benim için çalıştı

Ben kullanılan sudo aptitude.

Hemen hatayı buldu ve seçenekler sundu. Siz seçersiniz ve onu düzeltir.


Ayrıca debian'da benim için düzeltti - bu benim için çalışan tek çözümdü. Daha önce yorumların hiçbiri benim için çalıştı! Teşekkürler!
Hirbod

0

Işte bir tane:

paket listenizi bu şekilde güncelleyin

 sudo apt-get update

daha sonra herhangi bir kısmi paketi temizleyin

 sudo apt-get autoclean

Şimdi uygun önbelleği temizle

 sudo apt-get clean

Şimdi gereksiz tüm bağımlılıkları kaldırın

 sudo apt-get autoremove

Yukarıdaki komuttan, herhangi bir kırık paketi tanımlayabilir ve bu şekilde zorla kaldırabilirsiniz.

 sudo dpkg --remove --force-remove-reinstreq package_name

Sonunda başka paketlerin de güvenilir bir şekilde silinmesi

 sudo apt-get -f install 

Bana nasıl gittiğini söyle.


Bu komutun yanlış olduğunu düşünüyorum: `sudo dpkg - remove -force --force-remove-reinstreq package_name.
Juan Simón,

Ji ... hangisi doğru yol?
Olu Smith,

0
  1. bugün veya dün yüklenen tüm paketleri sorgula awk -v foo=$(date '+%Y-%m-%d') -v bar=$(date -d "yesterday" '+%Y-%m-%d') '($1==foo || $1==bar) && $3~/^install$/ { print $4 }' /var/log/dpkg.log
  2. wine-qqintl: i386 soruna neden oldu, bu yüzden paketi kaldırdım sudo dpkg -r wine-qqintl:i386

  3. yapılır.


1
Tamam, son zamanlarda böyle paketleri kurtarabiliriz, ancak bu kırık paketlerin nasıl kaldırılacağı sorusunu cevaplamıyor
Zanna

0

Kırık kodi paketi ile ilgili bir sorunum var. Synaptic paket yöneticisini açtım ve paketi bulmak için "broken" filtresini kullandım ve tam olarak çıkarılması için işaretledim. Bir şampiyon gibi çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.