web-dev-qa-db-ja.com

dpkgエラー:「ファイルを上書きしようとしていますが、これも...」

例えば:

$ 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):
 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.
105
missingfaktor

danjjl answer に直接行かないでください。この種の「上書きしよう」エラーが発生した場合、最初に解決する必要のある競合するパッケージがある可能性があります。

問題の即時修正は、望ましくない競合パッケージを削除することです。この場合、scala

Sudo dpkg -P scala

次に、それぞれのパッケージメンテナーと一緒にバグレポートを提出することをお勧めします。これは通常、制御ファイルにConflict: package行を追加することを意味します。

このエラーの詳細については、 this answerも参照してください。

71
Avinash Raj

問題を修正するには

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

Sudo apt-get -f installを実行して、すべてが修正されていることを確認します

それでも問題がある場合は、dpkg: error processing (...)が残っている状態で最初のステップを再実行してください

webupd8で解決策が見つかりました

94
danjjl

@danjjlのコマンドは、.debファイルに対して機能します。このコマンドはapt/apt-getで機能することがわかりました。

Sudo apt-get -o Dpkg::Options::="--force-overwrite" install <package-name>
42
David Xia

私が同じ問題を抱えていたのでそれがグローバルな修正であるかどうかはわかりませんが、キャッシュ内のlibglx-mesaファイルがNvidia-390と競合しています。ファイルを削除してapt install -f -yを発行し、それを終了させて​​から、そのシーケンスでapt updateupgradeおよびautoremoveを続行しました。

Ubuntu 18.04でapt dist-upgradeを実行中にエラーが発生し、プロセスを再び続行しました。これ以上問題はなく、「私の」修正のようです。

コマンド:

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:上書きを強制するのは悪い考えでしたが、幸運にもなりました。しかし、根本的な原因を見つけて修正する方が良いでしょう。私はまだ調査する必要がありますが、エラーが原因でファイルを移動できます。

1
user3091464