Estou um pouco confuso sobre como o getdeb.net funciona agora. A última vez que recebi um pacote de lá foi há um tempo atrás; Naquele momento, o procedimento era apenas baixar um .deb para cada pacote que você queria instalar / atualizar e, em seguida, instalá-lo usando dpkg -i
. No entanto, a marcha inexorável do progresso emprestou seus trompetes para este sistema também, e as instalações getdeb agora são feitas através de seu repositório, que é registrado com apt em /etc/apt/sources.list.d
, depois de instalar um único pacote que faz as alterações no banco de dados apt .
Instalei esse pacote e descobri que aptitude dist-upgrade
agora deseja atualizar muitos pacotes no meu sistema que não estavam prontos para atualizações antes da instalação do pacote getdeb. Se eu renomear o arquivo /etc/apt/sources.list.d/getdeb.list
para algo com uma extensão diferente, faça aptitude update && aptitude dist-upgrade
, ele pára de querer atualizar pacotes.
Então, percebo que o comportamento padrão agora é atualizar todos os pacotes para a versão disponível no getdeb. Isso não é particularmente apropriado, já que esses pacotes não são tão bem testados quanto as versões lançadas oficialmente.
Existe alguma configuração em algum lugar que impeça a atualização de pacotes para versões do repositório getdeb, a menos que essa ação seja especificamente selecionada? Eu gostaria de poder escolher quais pacotes são atualizados via getdeb.
Atualizar
Como recomendado por @ ~ joaopinto, criei o arquivo /etc/apt/preferences
, contendo o seguinte:
Package: *
Pin: release o=GetDeb
Pin-Priority: 50
No processo de aprender sobre isso, descobri que há um bug no apt que impede que o diretório /etc/preferences.d
seja pesquisado. Então ... não tente usar esse diretório.
Com o arquivo de preferências configurado como indicado, aptitude dist-upgrade
não tentará atualizar pacotes para suas versões getdeb. A prioridade de 50 significa basicamente que os pacotes serão instalados a partir do getdeb somente se eles não estiverem disponíveis em qualquer outro lugar.
Neste ponto, estou procurando uma maneira conveniente de atualizar um pacote para a versão getdeb ou para a versão mais recente (está tudo bem) e atualizar / instalar as dependências conforme necessário. Eu costumo fazer essas coisas a partir da linha de comando, mas descobri que precisava entrar na versão curses de aptitude
para atualizar um pacote para uma versão específica. Isso não quer dizer que não há uma maneira de fazer isso a partir da linha de comando, mas, se existe, não é prontamente discernível pela rápida documentação do aptitude.
Dentro do aptitude eu tive que selecionar a versão desejada do pacote desejado para atualização, e então lidar com 'conflitos' criados por causa das dependências da versão do pacote em versões mais novas de outros pacotes. Isso foi fácil o suficiente para resolver - eu só tinha que selecionar as versões originadas em getdeb desses pacotes - mas parece um incômodo desnecessário. Existe uma maneira mais simples de fazer isso?
atualizar também
Como explica @Ryan Thompson, as versões podem ser passadas para apt-get
- ou, como descobri, no modo de linha de comando aptitude
- por meio do sufixo =VERSION
ao nome do pacote, onde VERSION é a mesma string listado por aptitude
ou apt-cache
show
.
Portanto, fazer algo como aptitude install rosegarden=1:10.04-1~getdeb1
instalará esse pacote do repositório getdeb mesmo que os pacotes GetDeb sejam fixados conforme explicado acima. Eu fiz isso e fui solicitado a confirmar a atualização do pacote dependido rosegarden-data
para a versão fornecida pelo getdeb.