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-jpkg
el 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 control
archivos de la respuesta original completa sigue siendo relevante, por lo que lo mantendré debajo de la regla horizontal.
Si make-jpkg
ya creó un archivo .deb de Oracle Java, puedeextráigalo, modifique su control
archivo como se muestra a continuación para agregar provides
directivas, 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 archivopkgname
en 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 ficticiopkgname
:
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-netx
in 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 instalardpkg -i
. Di adiós a la dependencia.
Para obtener detalles sobre la provides
directiva, 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
.