Existe uma maneira de escolher pacotes a partir de um repositório ppa que você adiciona? Ou seja, excluir algumas das atualizações e incluir outras?
Por exemplo, quero apenas o pacote chromium-browser deste repositório, mas não os outros. Portanto, não quero que meus sudo apt-get upgrade
outros pacotes do ppa (além do chromium-browser) sejam instalados sobre os existentes, apenas esse.
Percebo que é uma licença para me dar um tiro no pé se eu interpretar mal as dependências e excluir as necessárias para as que eu incluí, mas sei que, nesse caso, os outros pacotes não são dependências para aquele.
Tudo isso é possível? Talvez haja algum arquivo da lista branca / lista negra ou algo assim?
Respostas:
Encontrou uma maneira de fazê-lo.
O truque é usar duas cláusulas de fixação. O primeiro a proibir TODOS os pacotes do PPA e o segundo a selecionar os que você deseja.
Portanto, para o exemplo acima, primeiro adiciono o ppa como de costume:
Agora, se eu executar a política do apt-cache, ele me mostrará que há uma versão mais recente do navegador cromo disponível e que será instalada com uma atualização porque está na mesma prioridade (500) do meu navegador cromo atual.
Isso é ótimo no que diz respeito a esse pacote, mas eu não quero que os outros neste ppa (que também têm prioridade 500) sejam instalados. No momento, se eu tentar atualizar, receberei mais do que apenas os pacotes chromium que eu quero desse repositório:
Então, o que posso fazer é dizer ao apt que quero que todos os pacotes nesse ppa, webapps-preview neste caso, tenham uma prioridade mais baixa, exceto aqueles com "chromium" em seu nome. O mecanismo para isso é fixar um pacote
Eu crio um arquivo no /etc/apt/preferences.d/ com duas cláusulas. O primeiro diz que concede a todos os pacotes no webapps-preview ppa uma prioridade mais baixa que a normal (para que eles não sejam preferidos, mesmo que possuam um número de versão mais alto. A segunda cláusula substitui parcialmente o primeiro dizendo: dê os pacotes em que ppa com "chromium" em seu nome tenha a mesma prioridade que outros pacotes para que seja instalado (por ter um número de versão mais alto).
Para identificar a string correta para a opção "Pin: release", podemos usar a política apt-cache novamente.
Para versões apt <0.8.14, pacotes fixados devem ser especificados explicitamente, pois os curingas não funcionam:
E agora, quando tento atualizar, recebo apenas os pacotes que quero desse ppa e não os outros. Tudo bem escolhido cereja para mim:
fonte
Você também pode selecionar a versão da qual deseja instalar com o
?origin
seletor:Portanto, no seu caso específico, você pode usar:
Ou você pode especificar a versão usando
<packagename>=<version>
:fonte
Você pode realmente "escolher" certos pacotes via Synaptic e é muito fácil. Funciona assim:
Se você quiser fazer isso apenas para determinados PPAs, escolha "Origem" (canto inferior esquerdo) na janela do Synaptic e escolha o PPA que deseja alterar
escolha todos os pacotes que você não deseja atualizar automaticamente mais.
escolha o menu "Versão do pacote / bloqueio". Todos os pacotes que você escolheu não serão mais atualizados automaticamente até que você os desbloqueie novamente.
fonte