dpkg error: “içinde… olan dosyanın üzerine yazmaya çalışılıyor”


108

Örneğin:

$ sudo apt-get install curl
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:
bsh : Depends: libjline-java but it is not going to be installed
groovy : Depends: libjline-java but it is not going to be installed
rhino : Depends: libjline-java but it is not going to be installed
E: Unmet dependencies. 

Try 'apt-get -f install' with no packages (or specify a solution).

Clojure1.3, leiningen ve diğer birçok paketi yüklemeye çalıştığımda aynı veya benzer hataları alıyorum.

Hata mesajında ​​yapılan öneriyi denediğimde, olan şey şu:

$ sudo apt-get -f install 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  diffstat linux-headers-3.2.0-26-generic linux-headers-3.2.0-26 dh-apparmor dkms html2text libmail-sendmail-perl libsys-hostname-long-perl
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libjline-java
Suggested packages:
  libjline-java-doc
The following NEW packages will be installed:
  libjline-java
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
23 not fully installed or removed.
Need to get 0 B/72.0 kB of archives.
After this operation, 129 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 226243 files and directories currently installed.)
Unpacking libjline-java (from .../libjline-java_1.0-1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/libjline-java_1.0-1_all.deb (--unpack):
 trying to overwrite '/usr/share/java/jline.jar', which is also in package scala 2.9.2-400
Errors were encountered while processing:
 /var/cache/apt/archives/libjline-java_1.0-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ sudo apt-get upgrade
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:
 bsh : Depends: libjline-java but it is not installed
 groovy : Depends: libjline-java but it is not installed
 rhino : Depends: libjline-java but it is not installed
E: Unmet dependencies. Try using -f.

Ayrıca java'yı kurmanız, yazılım merkezinde aramanız gerekiyor
Mark Kirby

1
Muhtemelen bu soru-cevap bir kopyası ya da en azından çözüm yardımcı olacaktır
danjjl

@ markkirby, sorduğun buysa kaçtım sudo apt-get update.
missingfaktor

@ markkirby, JDK zaten kurulu.
missingfaktor

Yanıtlar:


72

Lütfen doğrudan danjjl cevabına gitmeyin , bu tür bir "üzerine yazmaya çalışırken" hatasıyla karşılaşırsanız, önce çözülmesi gereken çelişkili paketleriniz olabilir.

Sorunun derhal düzeltilmesi, bu durumda istenmeyen çelişkili paketi kaldırmaktır, bu durumda scala,

sudo dpkg -P scala

Daha sonra ilgili paket bakımcılarına bir hata raporu göndermeniz tavsiye edilir. Bu normalde Conflict: packagekontrol dosyasına bir satır eklemek anlamına gelir .

Ayrıca bu hatanın daha ayrıntılı açıklaması için bu cevaba bakınız .


3
Bu tavsiye hakkında pek emin değilim. Bence bu duruma bağlı. Önceki gönderinize bağlantıda, aynı yazılımın iki sürümünde bir çakışma var. Orada önce eski yazılımı kaldırması gerektiğine katılıyorum. Bununla birlikte, iki farklı programın nasıl paketlendiğiyle ilgili bir sorun varsa ve üzerine yazılan dosya aynı veya başka bir şekilde zararsızsa, tavsiyeyle ilgili bir sorun görmüyorum. Hayır, ideal değil ... ama eğer sorun
Ray

@Bu durumda bir hata raporu sırayla olabilir ... ama Ubuntu depolarından gelen yazılımın bu tür bir problemi olduğundan şüpheliyim, çünkü bu tür problemler için Debian ve Debian testlerinden ayrıntılı bir şekilde söz ediyorlar.
Braiam

1
@Braiam Debian'ı kullandığımdan bu yana çok zaman geçti. Belki şimdi daha iyi, ama Debian ile benzer problemler gördüm. Kapsamlı testlerin yetersizliği nedeniyle değildir, ancak bazen her olası senaryoyu test etmek zordur. Ne kadar test yapılırsa yapılsın bir şey geçebilir. Hata raporu yazmaya karşı değilim, ama "daha kolay olduğunu söyledi". Sonuçta, çakışan paketlerin hepsini özetlemek zor olabilir. Ve eğer böcekler "sıcak" değilse (yani, pek çok insanı etkilemezler), sonunda beklemeye başlayacaksınız.
Ray

Belki de asıl cevabın "Lütfen bir nedenden ötürü yapmayın" dedi. Böylece birileri, lehte ve aleyhte olanları öğrendiğinde onu görmezden gelmeyi seçebilir. Olduğu gibi, yukarıdaki cevap sadece yapma diyor.
Ray

@Ray umm ... bir paket oluştururken dpkg bir dosya listesi (dpkg -L paketi) depolar ve basitçe çarpışmaları aramak ilk önlem için yeterli olmalıdır. Kapsamlı testler ile demek istediğim gerçek dünya testleri, dengesiz ve testler tam da bu tür şeyler için var
Braiam

97

Sorununuzu düzeltmek için

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libjline-java_1.0-1_all.deb

her şeyin çalıştırarak sabitlendiğini kontrol edin: sudo apt-get -f install

Hala sorun yaşarsanız, dpkg: error processing (...)kalanlarla ilk adımı tekrarlayın

Webupd8'de bulunan çözüm


9
Bu etkili bir şekilde paketi kuracaktır fakat her iki paket de aynı kütüphaneyi / dosyayı / ikili dosyayı kullanmaya çalıştığında sorun devam etmektedir.
Braiam

11
Tanrım, hayır, bu kırık bir sistem için bir reçete ...
fkraiem

Odroid Plex medya sunucusu güncellemem düzeltildi .. teşekkürler!
Mark

Benim için çalıştı, Teşekkürler
Miguel Mota

44

@ Danjjl komutunu .debdosyalar için çalışıyor . Bu komutun apt/ ile çalıştığını gördüm apt-get:

sudo apt-get -o Dpkg::Options::="--force-overwrite" install <package-name>

4
Harika bahşiş. Yine de dikkatli olun: Dosyaların farklı olması durumunda dosyaların üzerine yazmak ciddi sorunlara neden olabilir. Çakışan paketlerinizden biri artık düzgün çalışmayacak.
Patates

1
sudo apt-get -o Dpkg::Options::="--force-overwrite" install -fbenzer bir konuda benim için çalıştı
user2205916

@Cat: Daha sonra "büyük kesmek" gibi. ; -]
David Foerster

1

Eminim ki bu aynı sorunu olduğu gibi genel bir düzeltme değil, ancak Nvidia-390 ile çakışan önbellekteki bir libglx-mesa dosyasıyla. I dosya çıkarıldı ve çıkarılan apt install -f -y, bu işlenmiş ve daha sonra devam izin apt update, upgradeve autoremovebu sekans.

apt dist-upgradeUbuntu 18.04'te çalıştırırken hatayla karşılaştım ve işleme devam ettim , daha fazla sorun yok ve bu "benim" düzeltmesi gibi görünüyordu.

Komutlar:

sudo su -
mv /var/cache/apt/archives/libglx-mesa0_18.0.0~rc5-1ubuntu1_amd64.deb ~
apt install -f -y
apt update -y
apt upgrade -y
apt autoremove -y
apt dist-upgrade

Not: Üzerine yazmaya zorlamak denedim ve şanslı oldum. Ancak, kök nedenini bulmak ve düzeltmek daha iyidir. Hala araştırmam gerekiyor ama hata beni dosyadan çıkarmam için bana yol aç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.