Como escolher uma dependência de pacote quando existem vários provedores

1

Atualmente estou escrevendo puppet config para configurar automaticamente várias configurações do sistema, como apache2 + php5 + mysql, nginx + php5 + mysql (na realidade, qualquer serviço http com muitos addons e bancos de dados).

Muitos pacotes, como wordpress, drupal, php5-fpm e outros, dependem do libapache2-mod-php5, que por sua vez depende do apache2, do apache2-common. Nas configurações não apache2 (onde nginx ou serviços similares são usados) isso causa problemas como pacotes instalados desnecessários, o apache2 se liga à mesma porta etc.

Existe uma maneira de bloquear pacotes especificamente, mudar a prioridade de tal ou talvez preferir outras dependências que podem ter menor prio? Com que abordagem o problema pode ser resolvido?

    
por user135361 16.05.2014 / 08:30

1 resposta

2

Você pode impedir a instalação do pacote adicionando um sinal - (menos) após o nome do pacote, por exemplo:

sudo apt-get install wordpress nginx-full php5 mariadb-client php5-mysqlnd apache2-
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'apache2' is not installed, so not removed
The following NEW packages will be installed:
  libdbd-mysql-perl libjs-cropper libjs-prototype libjs-scriptaculous
  libmariadbclient18 libphp-phpmailer libphp-snoopy mariadb-client
  mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common nginx-common
  nginx-full php5 php5-cgi php5-gd php5-mysqlnd wordpress wordpress-l10n
  wordpress-theme-twentyfourteen wordpress-theme-twentytwelve
0 upgraded, 21 newly installed, 0 to remove and 24 not upgraded.

Claro, você precisa selecionar qual pacote irá substituí-lo e não usar nenhuma das dependências que também depende do apache como libapache2-mod-php5 .

O exemplo acima foi para wordpress, para drupal:

sudo apt-get install drupal7 nginx-full apache2-
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'apache2' is not installed, so not removed
The following extra packages will be installed:
  dbconfig-common libdbd-mysql-perl mysql-client mysql-client-5.5 mysql-server
  mysql-server-5.5 mysql-server-core-5.5 nginx-common php5 php5-cgi php5-gd
  php5-mysql wwwconfig-common
The following NEW packages will be installed:
  dbconfig-common drupal7 libdbd-mysql-perl mysql-client mysql-client-5.5
  mysql-server mysql-server-5.5 mysql-server-core-5.5 nginx-common nginx-full
  php5 php5-cgi php5-gd php5-mysql wwwconfig-common
0 upgraded, 15 newly installed, 0 to remove and 24 not upgraded.

Você pode modificá-lo adicionando mais pacotes, se quiser.

    
por Braiam 16.05.2014 / 14:38