Como proibir a instalação de um pacote específico?


27

Posso configurar o Ubuntu para nunca instalar um pacote específico, mesmo que seja exigido por outro pacote que eu instalar?


Você não pode instalar um pacote sem suas dependências, a menos que queira interromper seu sistema.
enzotib

2
@enzotib, antes de tudo, você está errado: as dependências do pacote podem ser redundantes. existem inúmeros exemplos, ou você pode ter instalado o equivalente a um pacote necessário de outra maneira (por exemplo, eu tenho o openjdk-6 instalado, conforme é exigido por todos os aplicativos java nos repositórios, mas na verdade nunca uso o openjdk-6, eu configure tudo para usar o openjdk-7 ou o Oracle JDK 7). E a segunda coisa - eu não disse que quero que o pacote dependente seja instalado - ele pode gerar um erro neste caso, só quero garantir que um pacote específico nunca seja instalado de qualquer maneira.
1019 Ivan Ivan

Respostas:


28

Como no Debian, também podemos usar o apt-pinning para controle de versão e instalação no Ubuntu .

Para bloquear a instalação de um determinado pacote, podemos colocar as seguintes linhas em /etc/apt/preferences

Package: <nameofpackage>
Pin: origin ""
Pin-Priority: -1

Ao dar uma prioridade negativa a este pino, bloquearemos a instalação de <nameofpackage>uma origem não especificada, ou seja, nosso repositório local. É claro que podemos usar o apt-pinning para fixar uma determinada versão do pacote ou origem específica.

Antes de prosseguir, é altamente recomendável ler a documentação fornecida acima e a página de manual do apt_preferences porque os erros nesses arquivos não são verificados pelo apt e, se ocorrerem, podem interromper o gerenciamento de pacotes.

Para uma alternativa e para impedir a atualização de um determinado pacote, consulte:


Você sabe se isso poderia funcionar no Ubuntu 12.04? Outra questão está relatando que talvez não funcione.
Lucio

11
@ Lucio: claro - ainda funciona; apenas testei para trabalhar em 12.10 também.
Takkat

3
In the Package:-line, you can list multiple packages separated with spaces, like this: Package: metacity metacity-common libmetacity-private0a. (Seems like patterns like Package: metacity* are also possible)
Volker Siegel

5
No Ubuntu 16.04 Pin: origin ""não funcionou para mim, mas Pin: release *funcionou.
barbaz

3

No debian você pode bloquear um pacote, e esse pacote não será mais atualizado

# echo name_of_package hold | dpkg --set-selections

mas não tenho certeza se você pode proibir


Eu apenas tentei no Ubuntu 15.10 (ardiloso) e não bloqueou o pacote; só me deu um avisopackage not in database
Brent Baccala

2

Eu tenho um pacote que continua se escondendo e quebrando o git

sudo apt-mark hold libgnutls-deb0-28

deve impedir que esse pacote seja instalado

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.