Gostaria de excluir pacotes específicos da instalação com apt-get
, ou seja, instalar um metapacote sem a lista de pacotes específicos, preferencialmente com uma chamada de apt-get
.
Por exemplo, na linha de comando do Ubuntu 14.04 LTS, estou instalando o ambiente de desktop MATE. No 14.04 LTS MATE não é um sabor oficial, então estou adicionando um PPA:
sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update
depois instalando:
sudo apt-get install xorg mate-core --no-install-recommends
Mesmo sem os extras recomendados, mate-core
instala 3 emuladores de terminal: xterm
, uxterm
e mate-terminal
, o último falta fontes apropriadas enquanto instalado nesta configuração mínima.
Suponha que eu decida que 3 programas de terminal seriam muitos e gostaria de instalar xorg
e mate-core
sem xterm
e mate-terminal
. eu poderia fazer
sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal
mas é possível fazer isso de uma só vez? Existe alguma sintaxe como
sudo apt-get install xorg mate-core --without xterm mate-terminal
fonte
xterm
emate-terminal
? No 15.04,mate-terminal
é uma dependência difícil demate-desktop-environment-core
, que é uma dependência difícilmate-core
, e suponho que o PPAmate-terminal
não forneçax-terminal-emulator
(o que o pacote no 15.04 fornece).XTerm
e talvezUXTerm
(não tenho a certeza que o nome do pacote para o último é)sudo apt-get install xorg mate-core --without xterm mate-terminal
aptitude
(ou algum gerenciador gráfico de pacotes), poderá (des) selecionar quais pacotes instalar e, se resultar em uma dependência quebrada, será dada uma explicação (geralmente).Respostas:
Então, companheiro-core depende em
mate-desktop-environment-core
que por sua vez depende emmate-terminal
. Uma dependência não pode ser quebrada facilmente. Nemapt-get
nemaptitude
suporta um--without
ou--exclude
opção e "exploração" dos pacotes não ajuda:Claro, pode-se usar
dpkg --force-depends
para instalar um pacote, mas talvez não seja isso que você deseja.Uma possibilidade seria preencher a
Depends:
bandeira com um pacote fictício:Agora
mate-core
deve poder instalar semmate-terminal
. Repita o mesmo para outros pacotes a serem excluídos.É certo que este é um esforço e uma
--without
opção seria legal. Talvez um bug da lista de desejos possa ser aberto para fornecer essa funcionalidade no futuro, mas, de alguma forma, duvido que isso seja implementado.No entanto, uma opção mais realista seria solicitar ao proprietário do PPA que forneça outro meta pacote para o MATE com
Depends
pacotes menores .fonte
Se você usar
aptitude
ou um gerenciador de pacotes gráficos (Synaptic, etc.), poderá desmarcar quais pacotes devem ser instalados , desde que não causem problemas de dependência.No caso de
aptitude
, antes de instalar um pacote (na visualização gráfica), ele mostrará por que um pacote dependente está sendo instalado. No meu caso, eu uso o KDE e, portanto, não tenho nenhum pacote MATE. Se eu pedir para instalarmate-core
, obtenho o seguinte:Observe que
mate-core
está marcado como sendo instalado manualmente e muitos outros pacotes estão sendo instalados. Para omate-terminal
pacote, na parte inferior, diz: "mate-desktop-environment-core
[universo] depende demate-terminal
(> = 1.0.0)". Indo para a entrada paramate-desktop-environment-core
,"
mate-core
[universo] depende demate-desktop-environment-core
(> = 1.8.0 + 9)". É por isso quemate-terminal
está sendo instalado.Se, em vez disso, um pacote recomendado estiver sendo instalado (em vez de algo dependente de outro pacote),
aptitude
você será avisado e você poderá dizer-lhe para não instalar esse pacote sem nenhuma dependência quebrada. Por exemplo:fonte
Outro método
Baixe o pacote principal que depende do outro. Extraia o pacote, remova as dependências indesejadas e reembale-o. Agora abra o novo pacote com o instalador do pacote gdebi . Ele instalará novas dependências para você.
fonte
Há uma
apt
sintaxe especial para cenários como este: anexar um hífen (sinal de menos) a um pacote irá remover / não instalá-lo, portanto, o mais próximo de vocêsudo apt-get install xorg mate-core --without xterm mate-terminal
ésudo apt-get install xorg mate-core xterm- mate-terminal-
(localizado em /ubuntu//a/1011439/182923 )Não ajudará neste caso, pois você encontrará
mas parece ser a resposta para sua pergunta específica. Então, para referência, este post cruzado.
fonte