Atualizando apenas alguns pacotes através do repositório getdeb

2

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.

    
por intuited 01.05.2010 / 22:01

4 respostas

4

apt não fornece uma maneira amigável para conseguir isso, você precisará usar pinagem apt, verifique o seguinte url: link

Para evitar que qualquer pacote seja atualizado a partir do getdeb, você precisará criar o /etc/apt_preferences com: Pacote: * Pin: release o = GetDeb Pin-prioridade: 50

    
por 02.05.2010 / 00:27
1

deve ficar assim, mas sem a linha vazia após os asteriscos. Linhas vazias não são permitidas entre o pacote, o pino e a prioridade do pin em / etc / apt / preferences. Não sei porque, essa página mudou o layout automaticamente.

Pacote: *

Pin: origem archive.getdeb.net
Pin-Prioridade: -1

    
por 04.03.2015 / 20:32
0

Você está procurando por algo chamado fixação. Eu nunca fui capaz de descobrir por mim mesmo, então vou deixar que os outros apontem na direção certa.

    
por 01.05.2010 / 22:15
-1

Depois de tentar por horas, finalmente consegui a solução:

Package: *
Pin: origin archive.getdeb.net       
Pin-Priority: -1
    
por 04.03.2015 / 20:24