web-dev-qa-db-ja.com

「openjdk-9-jdk」は、「openjdk-9-jdk-headless」にすでに含まれているファイルを上書きしようとするため、インストールできません

64ビットUbuntu 16.04 Xenialデスクトップを実行していて、openjdk-9-jdk(Java 9開発キット)をインストールしたかった。 universeリポジトリから入手できるバージョンは9~b114-0ubuntu1です。

インストールコマンドを実行すると、依存関係は正常にインストールされます(パッケージopenjdk-9-jdk-headlessを含む以下を参照)が、問題のパッケージにも存在する上記の依存関係によって提供されるファイルにより、要求されたパッケージ自体のインストールに失敗します:

dpkg: error processing archive /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_AMD64.deb (--unpack):
 trying to overwrite '/usr/lib/jvm/Java-9-openjdk-AMD64/include/linux/jawt_md.h', which is also in package openjdk-9-jdk-headless:AMD64 9~b114-0ubuntu1

完全な出力は次のとおりです。

$ Sudo apt install openjdk-9-jdk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  ca-certificates-Java libice-dev libpthread-stubs0-dev libsm-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev
  libxt-dev openjdk-9-jdk-headless openjdk-9-jre openjdk-9-jre-headless x11proto-core-dev x11proto-input-dev x11proto-kb-dev
  xorg-sgml-doctools xtrans-dev
Suggested packages:
  libice-doc libsm-doc libxcb-doc libxt-doc openjdk-9-demo openjdk-9-source visualvm icedtea-8-plugin fonts-ipafont-gothic
  fonts-ipafont-mincho ttf-wqy-microhei | ttf-wqy-zenhei fonts-indic
The following NEW packages will be installed
  ca-certificates-Java libice-dev libpthread-stubs0-dev libsm-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev
  libxt-dev openjdk-9-jdk openjdk-9-jdk-headless openjdk-9-jre openjdk-9-jre-headless x11proto-core-dev x11proto-input-dev
  x11proto-kb-dev xorg-sgml-doctools xtrans-dev
0 to upgrade, 19 to newly install, 0 to remove and 0 not to upgrade.
Need to get 183 MB/187 MB of archives.
After this operation, 326 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://ftp.uni-stuttgart.de/ubuntu xenial/main AMD64 ca-certificates-Java all 20160321 [12,9 kB]
Get:2 http://ftp.uni-stuttgart.de/ubuntu xenial/universe AMD64 openjdk-9-jre-headless AMD64 9~b114-0ubuntu1 [183 MB]
Get:3 http://ftp.uni-stuttgart.de/ubuntu xenial/universe AMD64 openjdk-9-jre AMD64 9~b114-0ubuntu1 [51,5 kB]                       
Fetched 183 MB in 2min 21s (1.293 kB/s)                                                                                            
Selecting previously unselected package ca-certificates-Java.
(Reading database ... 210101 files and directories currently installed.)
Preparing to unpack .../ca-certificates-Java_20160321_all.deb ...
Unpacking ca-certificates-Java (20160321) ...
Selecting previously unselected package openjdk-9-jre-headless:AMD64.
Preparing to unpack .../openjdk-9-jre-headless_9~b114-0ubuntu1_AMD64.deb ...
Unpacking openjdk-9-jre-headless:AMD64 (9~b114-0ubuntu1) ...
Selecting previously unselected package xorg-sgml-doctools.
Preparing to unpack .../xorg-sgml-doctools_1%3a1.11-1_all.deb ...
Unpacking xorg-sgml-doctools (1:1.11-1) ...
Selecting previously unselected package x11proto-core-dev.
Preparing to unpack .../x11proto-core-dev_7.0.28-2ubuntu1_all.deb ...
Unpacking x11proto-core-dev (7.0.28-2ubuntu1) ...
Selecting previously unselected package libice-dev:AMD64.
Preparing to unpack .../libice-dev_2%3a1.0.9-1_AMD64.deb ...
Unpacking libice-dev:AMD64 (2:1.0.9-1) ...
Selecting previously unselected package libpthread-stubs0-dev:AMD64.
Preparing to unpack .../libpthread-stubs0-dev_0.3-4_AMD64.deb ...
Unpacking libpthread-stubs0-dev:AMD64 (0.3-4) ...
Selecting previously unselected package libsm-dev:AMD64.
Preparing to unpack .../libsm-dev_2%3a1.2.2-1_AMD64.deb ...
Unpacking libsm-dev:AMD64 (2:1.2.2-1) ...
Selecting previously unselected package libxau-dev:AMD64.
Preparing to unpack .../libxau-dev_1%3a1.0.8-1_AMD64.deb ...
Unpacking libxau-dev:AMD64 (1:1.0.8-1) ...
Selecting previously unselected package libxdmcp-dev:AMD64.
Preparing to unpack .../libxdmcp-dev_1%3a1.1.2-1.1_AMD64.deb ...
Unpacking libxdmcp-dev:AMD64 (1:1.1.2-1.1) ...
Selecting previously unselected package x11proto-input-dev.
Preparing to unpack .../x11proto-input-dev_2.3.1-1_all.deb ...
Unpacking x11proto-input-dev (2.3.1-1) ...
Selecting previously unselected package x11proto-kb-dev.
Preparing to unpack .../x11proto-kb-dev_1.0.7-0ubuntu1_all.deb ...
Unpacking x11proto-kb-dev (1.0.7-0ubuntu1) ...
Selecting previously unselected package xtrans-dev.
Preparing to unpack .../xtrans-dev_1.3.5-1_all.deb ...
Unpacking xtrans-dev (1.3.5-1) ...
Selecting previously unselected package libxcb1-dev:AMD64.
Preparing to unpack .../libxcb1-dev_1.11.1-1ubuntu1_AMD64.deb ...
Unpacking libxcb1-dev:AMD64 (1.11.1-1ubuntu1) ...
Selecting previously unselected package libx11-dev:AMD64.
Preparing to unpack .../libx11-dev_2%3a1.6.3-1ubuntu2_AMD64.deb ...
Unpacking libx11-dev:AMD64 (2:1.6.3-1ubuntu2) ...
Selecting previously unselected package libx11-doc.
Preparing to unpack .../libx11-doc_2%3a1.6.3-1ubuntu2_all.deb ...
Unpacking libx11-doc (2:1.6.3-1ubuntu2) ...
Selecting previously unselected package libxt-dev:AMD64.
Preparing to unpack .../libxt-dev_1%3a1.1.5-0ubuntu1_AMD64.deb ...
Unpacking libxt-dev:AMD64 (1:1.1.5-0ubuntu1) ...
Selecting previously unselected package openjdk-9-jre:AMD64.
Preparing to unpack .../openjdk-9-jre_9~b114-0ubuntu1_AMD64.deb ...
Unpacking openjdk-9-jre:AMD64 (9~b114-0ubuntu1) ...
Selecting previously unselected package openjdk-9-jdk-headless:AMD64.
Preparing to unpack .../openjdk-9-jdk-headless_9~b114-0ubuntu1_AMD64.deb ...
Unpacking openjdk-9-jdk-headless:AMD64 (9~b114-0ubuntu1) ...
Preparing to unpack .../openjdk-9-jdk_9~b114-0ubuntu1_AMD64.deb ...
Unpacking openjdk-9-jdk:AMD64 (9~b114-0ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_AMD64.deb (--unpack):
 trying to overwrite '/usr/lib/jvm/Java-9-openjdk-AMD64/include/linux/jawt_md.h', which is also in package openjdk-9-jdk-headless:AMD64 9~b114-0ubuntu1
Processing triggers for ca-certificates (20160104ubuntu1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160415-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.59ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_AMD64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

したがって、これは明らかにバグであり、不適切なパッケージングが原因であり、私の側の障害ではないようです。また、Launchpadには、たとえば 最も重要と思われるこのレポート 。そのレポートを購読しましたが、Xenialの解決策はまだありません。

したがって、ここでの私の質問は、このパッケージングのバグに関するものではありませんが、この問題を回避し、openjdk-9-jdkをインストールする方法ファイルを上書きしようとしています」エラー?

89
Byte Commander

Sudo apt-get -o Dpkg::Options::="--force-overwrite" install openjdk-9-jdkを直接実行できます。ここにいる場合は、-o Dpkg::Options::="--force-overwrite"なしでインストールをすでに試行しており、どのファイルがサイレントに上書きされるかがわかっています。

99
Dominic108

.debパッケージとdpkgをインストールするときにファイルの上書きを強制することで、自分でエラーを解決できました。

Ubuntuの依存関係によって提供されるファイルを上書きしないことに関するエラーメッセージopenjdk-9-jdkにもかかわらず、Ubuntu 16.04 Xenial(他のリリースではテストされていません)にopenjdk-9-jdk-headlessをインストールする私の回避策は次のとおりです。

  1. 通常、openjdk-9-jdkパッケージのインストールを試みます。できればパッケージマネージャーaptを使用してください。

    Sudo apt install openjdk-9-jdk
    

    これにより、すべての依存関係がインストールされ、バイナリパッケージファイルもダウンロードされます。現在は/var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_AMD64.debに保存する必要がありますが、異なるバージョンを使用している場合は、ファイル名の後半が異なる場合があります。

    この単一のコマンドは、質問に記載されているエラーメッセージで失敗することが予想されますであることに注意してください。エラーを無視して、次のステップでそれを処理します。

  2. openjdk-9-jdkのインストールが失敗し、中止されたため、依存パッケージはまだ完全には構成されていません。これを手動で行い、まだ構成されていないすべてのパッケージの構成をトリガーする必要があります。

    Sudo dpkg --configure -a
    
  3. 最後に、openjdk-9-jdkパッケージをインストールします。したがって、ステップ1で取得したダウンロードおよびキャッシュされたバイナリパッケージファイルを使用します。--force-overwriteフラグを追加して、パッケージマネージャーが二重に提供されたファイルを無視して静かに上書きするようにします。

    Sudo dpkg -i --force-overwrite '/var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_AMD64.deb'
    

    異なるバージョンを使用している場合はファイル名を調整するか、単にタブ補完を使用してファイル名を入力する必要があります。 Tab ファイル名をアンダースコア(...openjdk-9-jdk_)まで入力した後、正しいファイル名をオートコンプリートする必要があります。

59
Byte Commander