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 filepkgname
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 packagepkgname
:
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 withdpkg -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
.