Como fazer com que o apt reconheça um pacote tar instalado?

4

Eu instalei o Oracle Java. Eu quero ser capaz de remover o OpenJDK, mas ao tentar fazê-lo apt quer instalar outra versão do Java.

Como posso configurar apt para que eu saiba que já tenho um Java de terceiros instalado para que eu possa remover esses pacotes do OpenJDK?

    
por user1529891 08.08.2013 / 06:55

4 respostas

4

Crie um pacote fictício usando equivs . Em poucas palavras:

  1. Crie um arquivo de controle para o pacote fictício. O programa equiv-controls cria um modelo. Dê um nome a ele.

    equivs-control oracle-jre.control
    
  2. Edite o arquivo de controle. Pelo menos, defina a linha Package: para sun-java6-jre (o nome do pacote extinto Sun / Oracle Java). Você também deve escrever um Description: significativo, defina a seção como java . Declare que o pacote Provides: java-6-runtime e outras versões (este é o pacote virtual do qual outros programas dependem, pode descobrir isso verificando o que o openjdk-6-jre fornece e o que vários programas requerem). O arquivo pode ter esta aparência:

    Section: java
    Priority: optional
    Standards-version: 3.9.2
    Package: sun-6-jre
    Provides: java6-runtime, java-runtime
    Description: dummy package when Oracle Java is installed
    
  3. Crie um pacote Debian com o arquivo de controle que você criou. Este pacote está lá apenas para as dependências e não instala nenhum arquivo.

    equivs-build oracle-jre.control
    
  4. Instale o pacote deb resultante.

    sudo dpkg -i sun-6-jre_1.0_all.deb
    
por 09.08.2013 / 02:47
1

Eu não acredito que exista um método para fazer isso. Em vez de usar um repositório PPA que forneça .deb pacotes de Java, você pode dar a este script uma tentativa que rolará seus próprios pacotes .deb da instalação do Java.

Este script é chamado de OAB-Java , especificamente oab-java.sh .

Exemplo

Fazendo o download do script:

cd ~/
wget https://github.com/flexiondotorg/oab-java6/raw/0.2.8/oab-java.sh -O oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh

O script usa as seguintes opções:

  • -7 : Construa pacotes oracle-java7 em vez de sun-java6
  • -c : remova pacotes pré-existentes de /var/local/oab/deb e fontes de /var/local/oab/src .
  • -k : use a chave existente especificada em vez de gerar uma
  • -s : Ignora a construção se os pacotes já existirem
  • -t : Especifique a tag de versão do Java para usar a partir do script de empacotamento do Debian upstream.
  • -h : esta ajuda

Para preparar & instale os arquivos.deb do Oracle 6%:

$ sudo ./oab-java.sh
$ sudo apt-get install sun-java6-jre

Para preparar & instale os arquivos do Oracle 7 .deb :

$ sudo ./oab-java.sh -7
$ sudo apt-get install oracle-java7-jre
    
por 08.08.2013 / 07:23
1

A resposta acima dada por @Gilles funcionou perfeitamente para mim por um tempo. Com o Java 8 e versões mais recentes do Ubuntu, porém, isso não funciona. A seguir está o arquivo oracle-jre.control que eu uso agora.

Section: java
Priority: optional
Standards-version: 3.9.2
Package: sun-8-jre
Provides: default-jre, openjdk-8-jre, openjfx
Description: Dummy package when Oracle Java is installed
    
por 01.05.2017 / 23:49
0

Você pode segurar um pacote com o apt-mark.

Espera:

sudo apt-mark hold package_name

Dispor:

sudo apt-mark unhold package_name

Isso impedirá que ele seja tocado.

    
por 01.05.2017 / 23:53

Tags