Cómo hacer que aptitude reconozca Oracle Java como una dependencia válida de Java

Cómo hacer que aptitude reconozca Oracle Java como una dependencia válida de Java

Tengo Oracle Java 7 en mi Debian.

Quiero instalar el servidor Tomcat usando aptitude, pero sigue intentando instalar icedtea y paquetes innecesarios relacionados con Java. ¿Es posible que aptitude sepa que ya tengo Java?

NB: utilicé make-jpkgel comando para instalar Java desde el archivo.

Respuesta1

Editar: hay un método más sencillo aquí en la parte superior, pero el contenido sobre controlarchivos de la respuesta original completa sigue siendo relevante, por lo que lo mantendré debajo de la regla horizontal.

Si make-jpkgya creó un archivo .deb de Oracle Java, puedeextráigalo, modifique su controlarchivo como se muestra a continuación para agregar providesdirectivas, vuelva a empaquetarlo e instale el deb modificado..


Respuesta original:

Usando equivs, se puede crear un paquete ficticio que básicamente actúa para hacer que dpkg piense que hay algo instalado.

Un buen ejemplo de cómo empezar a utilizar 'equivs' está escritoaquí.

Oficialmente deberías comenzar con equivs-control <:pkgname>lo que creará un archivo pkgnameen el directorio actual. Dentro hay varios campos, pero sólo necesitas ocho y simplemente puedes eliminar el resto. Esto es aproximadamente lo que debería obtener para un paquete ficticio pkgname:

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: pkgname
Version: 1:42
Maintainer: Your Name <[email protected]>
Architecture: all
Description: fake pkgname to block a dumb dependency

Para hacer esto para Oracle Java y hacerlo actuar como un sustituto de openjdk (que parece ser una dependencia de icedtea-netxin sid, que yo uso), creo que es necesario establecer la provides:entrada en la configuración de dpkg. Entonces su archivo de control se vería así:

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: oracle-java
Version: 7u181-2.6.14-1
Maintainer: Joe Bob <[email protected]>
Architecture: all
Description: dummy Java package to let the system know Oracle JDK is OK to use
Provides: openjdk-7-jdk, openjdk-7-jre, openjdk-7-jre-headless

Tenga en cuenta la adición de la última línea. Si pudiera hacer texto en color en Markdown, lo colorearía de rojo para darle énfasis.

Luego, según la publicación del blog vinculada anteriormente:

Una vez hecho esto, todo lo que necesita hacer es emitir el comando equivs-build path-to-pkgname(preferiblemente desde el mismo directorio) y obtendrá un deb falso para instalar dpkg -i. Di adiós a la dependencia.

Para obtener detalles sobre la providesdirectiva, consulte: https://www.debian.org/doc/debian-policy/ch-relationships.html#virtual-packages-provides

Tenga en cuenta que no estoy seguro de qué versión de Debian está utilizando, por lo que no sé si OpenJDK 7, 8 u otra cosa depende de icedtea. Probablemente deberías instalar IcedTea como mínimo, ya que no creo que el JDK de Oracle tenga un complemento web. Pero si lo desea y está seguro de que no romperá nada, también puede agregar té helado según lo "proporcionado". El nombre del paquete es (creo que depende de su versión de Debian) icedtea-7-plugin.

información relacionada