Como você pode retirar (reter) um pacote?

49

Usei o synaptic para bloquear a versão pidgin-data- como posso alterar o status de holdvolta ao normal, para que ele seja atualizado corretamente?

O PinningHowto diz que fazer um apt-get install packagenamedeve remover o hold, mas a execução dpkg -l | grep ^hainda o mostra como mantido:

hi  pidgin-data                                                 1:2.10.6-0ubuntu1+pidgin1.12.04                            multi-protocol instant messaging client - data files

Como posso desfazer corretamente o holdstatus?

David Fraser
fonte

Respostas:

59

Você pode usar sudo apt-mark unhold package_name. O pacote é unheld e retorna uma confirmação: Canceled hold on package_name..

DrA7
fonte
1
Seu sudoproblema é provavelmente porque você escreveu apenas sudo echo "package_name install"|dpkg --set-selections. Isso substitui o canal a echoseguir, mas não o seguinte, daí o erro de acesso. Tente isto em vez disso: sudo -E -- sh -c 'echo "package_name install"|dpkg --set-selections'. Isso gera um sub-shell cuja linha de comando é echo "package_name install"|dpkg --set-selections.
Urhixidur 29/09/14
1
Minha resposta estava um pouco relacionada à versão não editada da resposta aqui abaixo, que anteriormente incluía exatamente o comando que referenciei. No entanto, a pergunta usa especificamente apt-getcomo exemplo e é por isso que respondi usando o apt-markque está incluído no pacote apt . No entanto, é muito útil saber exatamente por que os comandos dpkg não estavam funcionando.
DrA7
@ DrA7 package_name já não estava em espera. O que eu deveria fazer agora?
precisa saber é o seguinte
13

A maneira correta de remover a retenção deve ser:

echo "package_name install"|sudo dpkg --set-selections
jasmim
fonte
2

Desmarque um único pacote chamado $ package_name:

echo $package_name install | dpkg --set-selections

Retire todos os pacotes atualmente retidos:

dpkg --get-selections | grep hold | awk '{ print $1, "install" }' | dpkg --set-selections
Earl Ruby
fonte
1

Executar echo pidgin-data install | dpkg --set-selections(substitua pidgin-datapelo nome do pacote em espera) - isso mudará o status do pacote para em installvez de hold.

David Fraser
fonte
1

Você pode cancelar todos os pacotes do APT com:

apt-mark showhold | awk '{ print $1, "install" }' | dpkg --set-selections
panticz.de
fonte