Impossible d'installer 'openjdk-9-jdk' car il essaie de remplacer le fichier déjà inclus dans 'openjdk-9-jdk-headless' [dupliquer]

77

J'utilise Ubuntu 16.04 Xenial, 64 bits, et je voulais installer openjdk-9-jdk (kit de développement Java 9). La version disponible dans le référentiel universe est 9~b114-0ubuntu1 .

L'exécution de la commande d'installation installe correctement les dépendances (voir ci-dessous, y compris le package openjdk-9-jdk-headless ), mais ne parvient pas à installer le package demandé à cause d'un fichier fourni par cette dépendance également présent dans le package problématique: >

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

Voici la sortie complète:

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

Donc, évidemment, cela semble être un bug et causé par un emballage incorrect et pas une faute de ma part. Il existe également des rapports de bogue sur Launchpad, comme par exemple ce rapport qui semble être le plus important . J'ai souscrit à ce rapport, mais il n'y a pas encore de solution pour Xenial.

Par conséquent, ma question ici est pas à propos de ce bogue de packaging , mais comment contourner ce problème et installer de toute façon openjdk-9-jdk , en ignorant l'erreur "essayer d'écraser le fichier"?

    
posée Byte Commander 08.05.2016 - 21:34
la source

2 réponses

91

Vous pouvez directement faire sudo apt-get -o Dpkg::Options::="--force-overwrite" install openjdk-9-jdk . Si vous êtes ici, vous avez déjà essayé l’installation sans -o Dpkg::Options::="--force-overwrite" et vous savez quels fichiers seront écrasés en silence.

    
réponse donnée Dominic108 14.05.2016 - 22:48
la source
59

J'ai pu résoudre l'erreur moi-même en forçant le remplacement du fichier lors de l'installation du package .deb avec dpkg .

Voici ma solution pour installer openjdk-9-jdk sur Ubuntu 16.04 Xenial (non testé sur les autres versions) malgré le message d'erreur concernant le remplacement d'un fichier fourni par sa dépendance openjdk-9-jdk-headless :

  1. Essayez normalement d’installer le package openjdk-9-jdk , de préférence en utilisant le gestionnaire de paquets apt :

    sudo apt install openjdk-9-jdk
    

    Cela va installer toutes ses dépendances et aussi télécharger le fichier de paquet binaire. Il devrait être stocké à /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb maintenant, mais la seconde moitié du nom du fichier peut différer si vous avez une version différente.

    Veuillez noter que nous attendons à ce que cette commande unique échoue avec le message d'erreur décrit dans la question . Ignorez l'erreur, nous nous en occuperons dans les prochaines étapes.

  2. Les paquets de dépendances n'étaient pas encore complètement configurés car l'installation de openjdk-9-jdk a échoué et a été annulée. Nous devons le faire manuellement maintenant et simplement déclencher la configuration de tous les packages non encore configurés:

    sudo dpkg --configure -a
    
  3. Enfin, nous installons notre paquet openjdk-9-jdk . Par conséquent, nous utilisons le fichier de package binaire téléchargé et mis en cache que nous avons obtenu à l'étape 1. Nous devons ajouter l'indicateur --force-overwrite pour que le gestionnaire de paquets ignore notre fichier doublement fourni et l'écrase discrètement.

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

    Vous devrez peut-être adapter le nom du fichier au cas où vous en auriez une version différente, ou simplement utiliser tab-completion pour entrer le nom du fichier: appuyez sur Tab après avoir entré le nom du fichier le trait de soulignement ( ...openjdk-9-jdk_ ) et il doit compléter automatiquement le nom de fichier correct.

réponse donnée Byte Commander 08.05.2016 - 22:21
la source

Lire d'autres questions sur les étiquettes