Como fazer com que o aptitude reconheça o Oracle Java como uma dependência java válida

1

Eu tenho o Oracle Java 7 no meu Debian.

Eu quero instalar o servidor tomcat usando o aptitude, mas ele continua tentando instalar o icedtea e pacotes desnecessários relacionados ao java. É possível que o aptitude saiba que eu já tenho Java?

NB: usei o comando make-jpkg para instalar o Java a partir do arquivo morto.

    
por PeterFour 14.10.2014 / 16:41

1 resposta

0

Editar: um método mais fácil está aqui no topo, mas o material sobre control arquivos da resposta original completa ainda é relevante, portanto, estou mantendo-o abaixo da regra horizontal.

Se make-jpkg já criou um arquivo .deb do Oracle Java, você poderia extraí-lo, modificar seu arquivo control como abaixo para adicionar diretivas provides , empacotá-lo novamente e instalar o deb modificado .

Resposta original:

Usando equivs , pode-se criar um pacote fictício que basicamente age para fazer o dpkg pensar que algo está instalado.

Um bom exemplo de como começar a usar o 'equivs' está escrito aqui .

Officially you should start with equivs-control <:pkgname> which will create a file pkgname in the current directory. Inside are various fields but you only need eight and can simply delete the rest. Here's approximately what you should end up with for a fictional package 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 fazer isso no Oracle Java e fazê-lo funcionar como um substituto do openjdk (que parece ser uma dependência de icedtea-netx no sid, que eu uso), acho que você precisa definir a entrada provides: em a configuração do dpkg. Então, o seu arquivo de controle seria algo como:

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

Observe a adição da última linha. Se eu pudesse fazer um texto colorido no markdown, eu o coloria em vermelho para dar ênfase.

Depois, de acordo com a postagem do blog vinculada acima:

Having done this, all you need do is issue the command equivs-build path-to-pkgname (preferably from the same directory) and you get a fake deb to install with dpkg -i. Say goodbye to the dependency.

Para detalhes sobre a diretiva provides , consulte: link

Note que não tenho certeza de qual versão do debian você está usando, então não sei se o OpenJDK 7, 8 ou qualquer outra coisa depende do icedtea. Você provavelmente deve instalar o IcedTea no mínimo, já que não acho que o JDK da Oracle tenha um plug-in da web. Mas se você quisesse, e tivesse certeza de que não quebraria nada, você também poderia adicionar icedtea como "fornecido". O nome do pacote é (eu acho - depende do seu lançamento Debian) icedtea-7-plugin .

    
por 19.09.2018 / 02:51