Vraag Kan 'openjdk-9-jdk' niet installeren omdat het bestand aready dat is opgenomen in 'openjdk-9-jdk-headless' [duplicate] probeert te overschrijven


Deze vraag heeft hier al een antwoord:

Ik voer Ubuntu 16.04 Xenial-bureaublad, 64 bit, en wilde installeren openjdk-9-jdk (Java 9 development kit). De versie beschikbaar vanaf de universe repository is 9~b114-0ubuntu1.

Het uitvoeren van de installatieopdracht installeert met succes de afhankelijkheden (zie hieronder, inclusief pakket) openjdk-9-jdk-headless), maar slaagt er niet in om het gevraagde pakket zelf te installeren vanwege een bestand dat wordt geleverd door de genoemde afhankelijkheid en dat ook aanwezig is in het problematische pakket:

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

Dit is de volledige output:

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

Dit lijkt dus duidelijk een bug te zijn en veroorzaakt door onjuiste verpakking en geen fout van mijn kant. Er zijn al enkele gerelateerde bugrapporten op Launchpad, zoals bijvoorbeeld. dit rapport lijkt de belangrijkste te zijn. Ik heb me op dat rapport geabonneerd, maar er is nog geen oplossing voor Xenial.

Daarom is mijn vraag hier niet over deze verpakkingsbug, maar hoe dit te omzeilen en te installeren openjdk-9-jdk hoe dan ook, het negeren van de "proberen om het bestand te overschrijven" fout?


78
2018-05-08 19:34


oorsprong


@NickWeinberg The openjdk-9-jdk-headless pakket is een vereiste afhankelijkheid van openjdk-9-jdkdaarom heb ik geen kans om het weg te laten. - Byte Commander
Merk op dat dit blijkbaar te wijten is aan het verkeerd verpakken van openjdk9: bugs.launchpad.net/ubuntu/+source/openjdk-9/+bug/1593191 - stewbasic
@Stewbasic, weet je of dit zal worden gecorrigeerd? Klinkt een beetje belachelijk. - Adrian M.
@AdrianM. Misschien vragen over de bug (zie de link in mijn commentaar)? In mijn geval had ik geen specifieke behoefte aan versie 9, dus ik heb net een downgrade naar 8 gedaan. - stewbasic
Gewoon een opmerking voor andere mensen die deze thread vinden. Versie 9 ~ b114-0ubuntu1 is oud en niet echt bruikbaar op dit moment. Er zijn nieuwere versies, maar ze moeten worden teruggestuurd naar Xenial of handmatig worden geïnstalleerd: packages.ubuntu.com/search?keywords=openjdk-9-jdk - MeTTeO


antwoorden:


Dat kun je direct doen sudo apt-get -o Dpkg::Options::="--force-overwrite" install openjdk-9-jdk. Als je hier bent, heb je de installatie al geprobeerd zonder de -o Dpkg::Options::="--force-overwrite" en je weet welke bestanden stil worden overschreven.


92
2018-05-14 20:48



De syntaxis is correct en er is geen foutmelding in de installatie. Ik vermoed dat het hetzelfde doet als uw oplossing: een installatie die het bestand overschrijft. - Dominic108


Ik kon de fout zelf oplossen door het opheffen van het bestand tijdens het installeren van de .deb pakket met dpkg.

Hier is mijn oplossing voor de installatie openjdk-9-jdk op Ubuntu 16.04 Xenial (niet getest op andere releases) ondanks de foutmelding over het niet overschrijven van een bestand geleverd door zijn afhankelijkheid openjdk-9-jdk-headless:

  1. Normaal probeer het te installeren openjdk-9-jdk pakket, bij voorkeur met behulp van de pakketbeheerder apt:

    sudo apt install openjdk-9-jdk
    

    Hiermee installeert u alle afhankelijkheden en downloadt u ook het binaire pakketbestand. Het moet worden opgeslagen op /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb nu, maar de tweede helft van de bestandsnaam kan verschillen als u een andere versie gebruikt.

    Houd er rekening mee dat we verwachten dat deze enkele opdracht faalt met de foutmelding die in de vraag wordt beschreven. Negeer de fout, dat regelen we in de volgende stappen.

  2. De afhankelijkheidspakketten waren nog niet volledig geconfigureerd omdat de installatie van openjdk-9-jdk is mislukt en is afgebroken. We moeten dit nu handmatig doen en eenvoudig de configuratie van alle nog niet geconfigureerde pakketten activeren:

    sudo dpkg --configure -a
    
  3. Eindelijk installeren we onze openjdk-9-jdk pakket. Daarom gebruiken we het gedownloade en gecachte binaire pakketbestand dat we in stap 1 hebben gekregen. We moeten de --force-overwrite vlag om ervoor te zorgen dat de pakketbeheerder ons dubbel aangeboden bestand negeert en het stil overschrijft.

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

    Mogelijk moet u de bestandsnaam aanpassen voor het geval u een andere versie gebruikt, of u gebruikt gewoon het voltooien van de tab om de bestandsnaam in te voeren: druk op tab na het invoeren van de bestandsnaam tot aan het onderstrepingsteken (...openjdk-9-jdk_) en moet de juiste bestandsnaam automatisch aanvullen.


59
2018-05-08 20:21



Ik weet niet precies wat we hier doen, maar het werkte voor mij. :-) - dotslash
Geweldig! dank je! Als het mogelijk is, denk ik dat het beter zou zijn als dit antwoord zou worden aanvaard omdat het meer gedetailleerd en stapsgewijs is. - Edson Horacio Junior
Lijkt te werken, maar toen ik later moest downgraden naar 8 voor een niet-verwante reden, krijg ik fouten bij het opstarten: bugs.launchpad.net/ubuntu/+source/openjdk-9/+bug/1550950 - Barry Staes
Altijd behulpzaam. Bedankt Byte Commander - noone
Ik heb het getest: Ja, in deze openjdk-9-jdk (openjdk-9-jdk_9 ~ b114-0ubuntu1_amd64) is het bestand "jawt_md.h" identiek als in deze openjdk-9-jdk-headless (openjdk-9-jdk- headless_9 ~ b114-0ubuntu1_amd64). Jdk-headless geïnstalleerd; gekopieerd "jawt_md.h" naar een tijdelijke locatie; geïnstalleerd jdk; vergeleken. Bevestigd: OK geïnstalleerde inhoud nadat overschreven is gedwongen. OK om te proberen jdk-headless eerst te verwijderen - vraagt ​​u om beide te verwijderen. LET OP: jdk verwijderen verwijdert eerst "jawt_md.h", wat jdk-headless normaal gesproken levert voor het bouwen van programma's die AWT-afbeeldingen verwerken (zij het zonder kop, dat wil zeggen zonder ze weer te geven). - Aaron Mansheim