Como definir a prioridade do pacote, PPA e repositório Apt no Ubuntu
Este é um tutorial simples que mostra como definir a prioridade de um determinado pacote e/ou repositório apt no Ubuntu, Debian, Linux Mint.
No Ubuntu, instalamos pacotes de software de diferentes fontes, incluindo repositórios do universo Ubuntu (usando o software Ubuntu), PPAs do Ubuntu (por exemplo, LibreOffice, Kodi , GIMP e mais), repositórios apt próprios dos aplicativos (por exemplo, Chrome, VirtualBox, Opera e mais).
Podemos até instalar aplicativos de outras distribuições Linux. Por exemplo, é possível instalar o reprodutor IPTV do Linux Mint, o Web App Mananger e o navegador Chromium (em formato deb) no Ubuntu.
Por que definir prioridade:
No entanto, a instalação a partir de fontes de software mistas pode causar as seguintes questões:
- Bloquear um pacote na versão especificada.
- Mais de um repositório possui o mesmo pacote, mas você deseja instalar ou receber atualizações de pacotes de um determinado repositório.
- Instale apenas um ou dois pacotes do repositório, mas recuse todos os outros.
Crie e defina a prioridade do pacote:
Adicionar um arquivo de regras no diretório /etc/apt/preferences.d/ e fixar uma prioridade resolverá os problemas.
Basta abrir o terminal no inicializador de aplicativos do sistema e executar o comando para criar e editar um arquivo de configuração (substitua o gedit por outro sistema):
sudo gedit /etc/apt/preferences.d/99mint-repository
No caso, criei um arquivo 99mint-repository
e adicionei as seguintes linhas:
# Allow upgrading only webapp-manager from Ulyssa repository
Package: webapp-manager
Pin: release n=ulyana
Pin-Priority: 500
# Also allow upgrading chromium (Added by another post).
Package: chromium
Pin: release n=ulyana
Pin-Priority: 500
# Never prefer other packages from the Ulyssa repository
Package: *
Pin: release n=ulyana
Pin-Priority: 1
Como você pode ver, cada entrada possui 3 linhas (excluindo a linha de descrição iniciada com # no início) e separadas por uma linha em branco.
As três linhas iniciadas com Package: no início especificavam os pacotes: “webapp-manager”, “chromium” e “*” (tudo).
Sobre a linha “Pin:”:
A segunda linha especifica a definição do pino. Pode ser Pin: versão 1.0.99*, o “*” é um “curinga”, que indica o pacote com todas as versões começando com 1.0.99.
Você também pode usar release ou origin para a origem do pacote especificada. Por exemplo:
Pin: release o=LP-PPA-team-xbmc
Pin: release l=linuxmint
Pin: origin packages.linuxmint.com
Os parâmetros para release são: a (arquivo), c (componentes), v (versão), o (origem) e l (rótulo).
E você pode descobrir os valores de lançamento e origem executando o comando:
apt-cache policy |more
Sobre o número de Pin-Priority:
O valor da terceira linha pode ser definido como:
- 1000 ou superior. Instale uma versão da versão de destino mesmo que ela substitua (downgrade) um pacote instalado por uma versão superior.
- 990 a 999. Instale uma versão mesmo que ela não venha da versão de destino, a menos que a versão instalada seja mais recente.
- 500 a 899. Instale uma versão, a menos que haja uma versão disponível pertencente à versão de destino ou que a versão instalada seja mais recente.
- 100 a 499. Instale uma versão, a menos que exista uma versão disponível pertencente a alguma outra distribuição ou a versão instalada seja mais recente.
- 1 a 99. Instale uma versão somente se não houver uma versão instalada do pacote.
- -1 ou inferior. Impedir que a versão seja instalada
Depois de configurar o arquivo de configuração, atualize o cache do pacote do sistema por meio do comando sudo apt update
e pronto.