Vraag dpkg-fout: "probeert het bestand te overschrijven, wat ook in ..."


Bijvoorbeeld:

$ 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).

Ik krijg dezelfde of soortgelijke fouten wanneer ik probeer clojure1.3, leiningen en verschillende andere pakketten te installeren.

Wanneer ik de suggestie in de foutmelding probeer, is dit wat er gebeurt:

$ 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.

76
2017-08-15 12:31


oorsprong


Het ziet er ook live uit, u moet Java installeren en het zoeken in het softwarecentrum - Mark Kirby
Waarschijnlijk een duplicaat van deze Q & A of tenminste de oplossing zou moeten helpen - danjjl
@markkirby, ik ben weggeweest sudo apt-get update als dat is wat u vraagt. - missingfaktor
@markkirby, JDK is al geïnstalleerd. - missingfaktor
naar mijn bescheiden mening Het antwoord van Avinash Raj is veel veiliger en breder toepasbaar dan de twee bovenste antwoorden hier. Ik raad aan dit eerst te proberen. - Zanna


antwoorden:


Ga alsjeblieft niet voor de danjjl antwoord direct, als u geconfronteerd met dit soort "proberen te overschrijven" -fout, is het waarschijnlijk dat u conflicterende pakketten die eerst moeten worden opgelost.

De directe oplossing voor het probleem is om het conflicterende pakket te verwijderen dat in dit geval ongewenst is scala,

sudo dpkg -P scala

Vervolgens wordt het aanbevolen om een ​​bugrapport in te dienen bij de respectieve pakketbeheerders. Dit betekent normaal gesproken het toevoegen van een Conflict: package regel in het controlebestand.

Zie ook deze antwoord voor meer gedetailleerde uitleg over deze fout.


49
2018-03-13 04:29



Niet zo zeker van dit advies. Ik denk dat het van de situatie afhangt. In de link naar uw eerdere posting is er een conflict tussen twee versies van dezelfde software. Daar ben ik het mee eens dat de oudere software eerst moet worden verwijderd. Als er echter een probleem is met de manier waarop twee verschillende programma's zijn verpakt en het bestand dat wordt overschreven identiek of anderszins onschadelijk is, dan zie ik geen probleem met het advies. Nee, niet ideaal ... maar het is waarschijnlijk een beetje extreem om iemand te vragen om niet voor een bepaald antwoord te gaan als het alternatief is om te wachten tot het probleem is opgelost ... - Ray
@Ray in dat geval kan een foutenrapport in orde zijn ... maar ik betwijfel dat de software van Ubuntu-repositories dat probleem heeft, omdat ze uitputtend putten uit Debian- en Debian-tests voor dit soort problemen. - Braiam
@Braiam Het is lang geleden dat ik Debian gebruikte. Misschien is het nu beter, maar ik zag vergelijkbare problemen met Debian. Het is niet vanwege een gebrek aan uitgebreide tests, maar soms is het moeilijk om elk mogelijk scenario te testen. Het maakt niet uit hoeveel tests worden uitgevoerd, er kan iets doorheen glippen. Ik ben niet tegen het schrijven van een foutenrapport, maar "makkelijker gezegd dat gedaan". Het kan immers moeilijk zijn om alle conflicterende pakketten samen te vatten. En als bugs niet 'hot' zijn (d.w.z. dat ze niet veel mensen beïnvloeden), zul je gewoon moeten wachten. - Ray
Misschien zou het beter zijn als het oorspronkelijke antwoord werd gewijzigd, zodat het zei: "Doe het alsjeblieft niet vanwege (een of andere reden)." Zodat iemand ervoor kan kiezen om het te negeren zodra ze de voor- en nadelen kennen. In zijn huidige vorm zegt het bovenstaande antwoord alleen niet dat het werkt. - Ray
@Ray umm ... bij het bouwen van een pakket slaat dpkg een lijst met bestanden op (dpkg -L-pakket) en gewoon zoeken naar botsingen zou genoeg moeten zijn voor de eerste meting. En door diepgaand testen bedoelde ik echte testen, onstabiel en testen zijn er precies voor dit soort dingen - Braiam


Om je probleemloop te verhelpen

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

controleer alles is opgelost door te draaien: sudo apt-get -f install

Als u nog steeds problemen ondervindt, voert u de eerste stap opnieuw uit met een willekeurige dpkg: error processing (...) overblijvende

Oplossing gevonden op webupd8


80
2017-08-15 13:01



Hiermee wordt het pakket effectief geïnstalleerd, maar het probleem blijft bestaan ​​wanneer beide pakketten dezelfde bibliotheek / bestand / binair bestand proberen te gebruiken. - Braiam
Godzijdank, nee, dat is een recept voor een kapot systeem ... - fkraiem


De opdracht van @ danjjl werkt voor .deb bestanden. Ik vond dat deze opdracht werkt apt/apt-get:

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

35
2017-07-03 03:48



slechts één die een probleem oploste dat ik had. bedankt - dubnde
Geweldige tipp. Maar wees voorzichtig: dingen overschrijven kan ernstige problemen veroorzaken als de bestanden anders zijn. Een van je conflicterende pakketten zal niet langer correct functioneren. - Cat
sudo apt-get -o Dpkg::Options::="--force-overwrite" install -f werkte voor mij voor een soortgelijk probleem - user2205916
@Cat: meer als "geweldige hack" dan. ; -] - David Foerster


Ik weet niet zeker of dit een globale oplossing is omdat ik hetzelfde probleem had, maar met een libglx-mesa-bestand in de cache in strijd met Nvidia-390. Ik verwijderde het bestand en gaf een apt install -f -y, laat dat af en ging toen verder met de apt update, upgrade en autoremove in die volgorde.

Ik kreeg de fout tijdens het uitvoeren van een apt dist-upgrade op Ubuntu 18.04 en zette het proces opnieuw voort, geen problemen meer en dat leek "mijn" oplossing.

commando's:

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

PS: Het dwingen van een overschrijving was een slecht idee dat ik probeerde en ik heb geluk gehad. Maar het is beter om de oorzaak te achterhalen en het te repareren. Ik moet het nog steeds onderzoeken, maar door de fout kom ik erbij.


1
2018-06-11 19:34