Evitar que a dependência seja instalada com o APT

1

Eu tenho esta linha de script para instalar todos os pacotes para um novo servidor.

apt-get install mysql-server openjdk-7-jre-headless tomcat7 tomcat7-admin jsvc apache2 ntp subversion

Como você pode ver, ele instala o Java 7, mas o Java 6 também é instalado porque o tomcat7 (indiretamente) depende dele. Tenho certeza que posso rodar o Tomcat 7 com o Java 7, então não quero instalar dois JREs. Como posso impedir que o Java 6 seja instalado?

Atualização: Uma inspeção mais detalhada mostra que

  • tomcat7 , via tomcat-common , depende default-jre-headless | java6-runtime-headless | java6-runtime | java-6-runtime (assumindo que os canais significam "um de").
  • openjdk-7-jre-headless fornece java6-runtime-headless , para que a dependência seja satisfeita.
  • Em vez disso, default-jre-headless está instalado, o que instala o Java 6.

Por que isso acontece? É porque eu os instalo todos de uma vez? Devo dividi-lo em duas chamadas?

(servidor Ubuntu 12.04, 64 bits)

    
por Bart van Heukelom 24.05.2012 / 12:34

3 respostas

1

Use a opção --nodeps com apt-get para ignorar as dependências instaladas.

Existe outra maneira de baixar um pacote e instalá-lo com dpkg com --ignore-depends= package, ...

Um gerenciador de pacotes GUI, como o Synaptic, fará com que você selecione as dependências antes da instalação dos pacotes selecionados.

    
por 24.05.2012 / 12:41
1

Na verdade, a linha acima não instala o Java 6. Em algum momento do desenvolvimento do script eu tive openjdk-7-jre-lib lá, em vez de openjdk-7-jre-headless , e esse depende de openjdk-6-jre-lib , por algum motivo.

    
por 24.05.2012 / 13:58
0

Crie um pacote debian que "Fornece:" a dependência que você não deseja instalar. Instale-o.

    
por 24.05.2012 / 12:47