Eu uso isso:
for p in $(apt-show-versions|grep "newer than version in archive"|cut -d\ -f1); do apt-get install $p=$(apt-cache show $p|grep ^Version|tail -1|cut -d\ -f2); done
(Há um espaço duplo depois de ambos -d\
.)
Eu tenho uma distribuição estável do Debian instalada no meu computador. Uma vez que eu instalei alguns pacotes do teste, mas agora isso causa alguns problemas, então eu gostaria de rebaixá-los. Eu tentei os próximos comandos:
apt-get --reinstall install 'apt-show-versions | grep newer | cut -d ' ' -f 1 | tr '\n' ' ''
isto não funciona porque o apt tenta recuperar as mesmas versões de pacotes e reclama que não pode baixá-los porque agora não tenho fontes para testar pacotes em sources.list
apt-get -t squeeze install 'apt-show-versions | grep newer | cut -d ' ' -f 1 | tr '\n' ' ''
não funciona também. Escreve que as versões mais recentes dos pacotes já foram instaladas.
Eu pensei que -t sqeeze
força o apt para instalar pacotes da stable.
De qualquer forma, como posso resolver esta tarefa?
Eu uso isso:
for p in $(apt-show-versions|grep "newer than version in archive"|cut -d\ -f1); do apt-get install $p=$(apt-cache show $p|grep ^Version|tail -1|cut -d\ -f2); done
(Há um espaço duplo depois de ambos -d\
.)
Como @wullxz disse. Você pode fazer isso removendo os novos pacotes, removendo ou comentando o repositório instável do sources list
, instalando os pacotes antigos, descomente ou adicione o repositório instável novamente ao sources.list
se você quiser usar outros pacotes dele .
sudo apt-get purge my-package
sources.list
e comente o repositório de testes: sudo nano /etc/apt/sources.list
sudo apt-get update
sudo apt-get install my-package
# uncomment the testing repo from
sources.list
sudo nano /etc/apt/sources.list
# Lock the current version of the package.
echo "my-package hold" | dpkg --set-selections
echo "my-package install" | dpkg --set-selections
Tags apt package-management debian