Eu tenho o Oracle Java 7 no meu Debian.
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 já possuo Java?
NB: usei make-jpkg
o comando para instalar o Java do arquivo.
Responder1
Editar: um método mais fácil está aqui no topo, mas o material sobre control
os arquivos da resposta original completa ainda é relevante, por isso estou mantendo-o abaixo da regra horizontal.
Se make-jpkg
já tiver feito um arquivo Oracle Java .deb, você poderiaextraia-o, modifique seu control
arquivo como abaixo para adicionar provides
diretivas, empacote-o novamente e instale o deb modificado..
Resposta original:
Usando equivs
, pode-se criar um pacote fictício que basicamente atua para fazer o dpkg pensar que algo está instalado.
Um bom exemplo de como começar a usar 'equivs' está escritoaqui.
Oficialmente você deve começar com
equivs-control <:pkgname>
o qual criará um arquivopkgname
no diretório atual. Dentro há vários campos, mas você só precisa de oito e pode simplesmente excluir o restante. Aqui está aproximadamente o que você deve obter para um pacote fictíciopkgname
:
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 para o openjdk (que parece ser uma dependência do icedtea-netx
sid, que eu uso), acho que você precisa definir a provides:
entrada na configuração do dpkg. Portanto, 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 na redução, eu o coloriria de vermelho para dar ênfase.
Então, de acordo com a postagem do blog com link acima:
Feito isso, tudo que você precisa fazer é emitir o comando
equivs-build path-to-pkgname
(de preferência do mesmo diretório) e você obterá um deb falso para instalar com odpkg -i
. Diga adeus à dependência.
Para obter detalhes sobre a provides
diretiva, consulte:
https://www.debian.org/doc/debian-policy/ch-relationships.html#virtual-packages-provides
Observe 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 deveria instalar pelo menos o IcedTea, já que não acho que o JDK da Oracle tenha um plugin web. Mas se você quisesse e tivesse certeza de que não quebraria nada, também poderia adicionar chá gelado como "fornecido". O nome do pacote é (eu acho - depende da sua versão Debian) icedtea-7-plugin
.