it-swarm.com.de

'Openjdk-9-jdk' kann nicht installiert werden, da versucht wird, die bereits in 'openjdk-9-jdk-headless' enthaltene Datei zu überschreiben.

Ich verwende Ubuntu 16.04 Xenial Desktop (64 Bit) und wollte openjdk-9-jdk (Java 9 Development Kit) installieren. Die im Repository universe verfügbare Version ist 9~b114-0ubuntu1.

Wenn Sie den Installationsbefehl erfolgreich ausführen, werden die Abhängigkeiten installiert (siehe unten, einschließlich Paket openjdk-9-jdk-headless), das angeforderte Paket selbst kann jedoch aufgrund einer von dieser Abhängigkeit bereitgestellten Datei nicht installiert werden, die auch im problematischen Paket vorhanden ist:

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

Hier ist die vollständige Ausgabe:

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

Das scheint also offensichtlich ein Fehler zu sein, der durch falsche Verpackung und nicht durch einen Fehler auf meiner Seite verursacht wurde. Es gibt auch bereits einige verwandte Fehlerberichte auf Launchpad, wie z. dieser Bericht scheint der wichtigste zu sein . Ich habe diesen Bericht abonniert, aber es gibt noch keine Lösung für Xenial.

Daher geht es bei meiner Frage hier nicht um diesen Verpackungsfehler , sondern darum und wie man openjdk-9-jdk installiert, wobei das " Fehler beim Überschreiben der Datei?

89
Byte Commander

Sie können Sudo apt-get -o Dpkg::Options::="--force-overwrite" install openjdk-9-jdk direkt ausführen. Wenn Sie hier sind, haben Sie die Installation bereits ohne den -o Dpkg::Options::="--force-overwrite" versucht und wissen, welche Dateien stillschweigend überschrieben werden.

99
Dominic108

Ich konnte den Fehler selbst beheben, indem ich beim Installieren des Pakets .deb mit dpkg die Dateiüberschreibung erzwang.

Hier ist meine Problemumgehung für die Installation von openjdk-9-jdk unter Ubuntu 16.04 Xenial (in anderen Releases nicht getestet), obwohl die Fehlermeldung angezeigt wird, dass eine Datei, die durch ihre Abhängigkeit openjdk-9-jdk-headless bereitgestellt wird, nicht überschrieben wird:

  1. Versuchen Sie normalerweise, das Paket openjdk-9-jdk zu installieren, vorzugsweise mit dem Paketmanager apt:

    Sudo apt install openjdk-9-jdk
    

    Dadurch werden alle Abhängigkeiten installiert und die Binärpaketdatei heruntergeladen. Es sollte jetzt unter /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_AMD64.deb gespeichert werden, aber die zweite Hälfte des Dateinamens kann abweichen, falls Sie eine andere Version haben.

    Bitte beachten Sie, dass wir erwarten, dass dieser einzelne Befehl mit der in der Frage beschriebenen Fehlermeldung fehlschlägt. Ignorieren Sie den Fehler, wir werden uns in den nächsten Schritten darum kümmern.

  2. Die Abhängigkeitspakete wurden noch nicht vollständig konfiguriert, da die Installation von openjdk-9-jdk fehlgeschlagen ist und abgebrochen wurde. Das müssen wir jetzt manuell machen und einfach die Konfiguration aller noch nicht konfigurierten Pakete auslösen:

    Sudo dpkg --configure -a
    
  3. Schließlich installieren wir unser openjdk-9-jdk -Paket. Daher verwenden wir die heruntergeladene und zwischengespeicherte Binärpaketdatei, die wir in Schritt 1 erhalten haben. Wir müssen das Flag --force-overwrite hinzufügen, damit der Paketmanager unsere doppelt bereitgestellte Datei ignoriert und sie stillschweigend überschreibt.

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

    Möglicherweise müssen Sie den Dateinamen anpassen, falls Sie eine andere Version haben, oder einfach die Tabulator-Vervollständigung verwenden, um den Dateinamen einzugeben: drücken Sie Tab Nachdem Sie den Dateinamen bis zum Unterstrich (...openjdk-9-jdk_) eingegeben haben, sollte der korrekte Dateiname automatisch vervollständigt werden.

59
Byte Commander