errore dpkg: "prova a sovrascrivere il file, che è anche in ..."

75

Ad esempio:

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

Ottengo gli stessi errori o simili quando tento di installare clojure1.3, leiningen e molti altri pacchetti.

Quando provo il suggerimento fatto nel messaggio di errore, questo è ciò che accade:

$ 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.
    
posta missingfaktor 15.08.2012 - 14:31

4 risposte

48

Per favore non andare per la risposta di danjjl direttamente, se affronti questo tipo di errore "prova a sovrascrivere" , è probabile che tu abbia pacchetti in conflitto che devono essere risolti per primi.

La soluzione immediata per il problema è rimuovere il pacchetto in conflitto che non è desiderabile, in questo caso scala ,

sudo dpkg -P scala

Successivamente, si consiglia di inviare una segnalazione di bug con i rispettivi manutentori del pacchetto. Ciò implica normalmente l'aggiunta di una riga Conflict: package nel file di controllo.

Vedi anche questo per una spiegazione più dettagliata su questo errore.

    
risposta data Avinash Raj 13.03.2014 - 05:29
78

Per risolvere il problema, esegui

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

controlla che tutto sia corretto eseguendo: sudo apt-get -f install

Se hai ancora problemi, riesegui il primo passaggio con qualsiasi dpkg: error processing (...) rimanente

Soluzione trovata su webupd8

    
risposta data danjjl 15.08.2012 - 15:01
35

Il comando di @ danjjl funziona per .deb file. Ho trovato che questo comando funziona con apt / apt-get :

sudo apt-get -o Dpkg::Options::="--force-overwrite" install <package-name>
    
risposta data David Xia 03.07.2014 - 05:48
1

Non sono sicuro che sia una correzione globale perché avevo lo stesso problema, ma con un file libglx-mesa nella cache in conflitto con Nvidia-390. Ho rimosso il file ed emesso un apt install -f -y , l'ho terminato e poi ho proceduto con apt update , upgrade e autoremove in quella sequenza.

Ho ricevuto l'errore durante l'esecuzione di una apt dist-upgrade su Ubuntu 18.04 e ho continuato il processo di nuovo, senza più problemi e che sembrava essere la "mia" correzione.

Comandi:

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: forzare una sovrascrittura è stata una cattiva idea che ho provato e ho avuto fortuna. Ma è meglio trovare la causa principale e risolverlo. Devo ancora indagare, ma l'errore mi ha portato a spostare il file.

    
risposta data user3091464 11.06.2018 - 21:34

Leggi altre domande sui tag