apt - dpkg error: "trying to overwrite file, which is also in..."

分享于 

4分钟阅读

ubuntu

  繁體

问题:

例如:


$ 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和几个其他软件包时,得到相同的或类似的错误。

当我尝试错误消息中的建议时,将发生以下情况:


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


 也可以试试ing 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.




答案1:

如果你遇到这种"试图覆盖"错误,很可能有冲突的软件包需要首先解决。

解决这个问题的方法是删除不需要的冲突包,在本例中是scala


sudo dpkg -P scala




答案2:

修复问题


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



通过运行以下命令检查所有内容:sudo apt-get -f install

如果仍然有问题,请重新运行第一步dpkg: error processing (...)


答案3

我发现此命令适用于apt /apt-get


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





文件  APT  Overwrite  DPKG