Jak możesz zatrzymać (usunąć wstrzymanie) paczkę?

49

Użyłem synaptic do zablokowania wersji pidgin-data- jak mogę zmienić status z holdpowrotem na normalny, aby został poprawnie zaktualizowany?

PinningHowto mówi, że robi apt-get install packagenamenależy usunąć hold, ale działa dpkg -l | grep ^hnadal pokazuje go jako przeznaczone:

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

Jak mogę poprawnie cofnąć holdstatus?

David Fraser
źródło

Odpowiedzi:

59

Możesz użyć sudo apt-mark unhold package_name. Pakiet jest unheld i zwraca potwierdzenie: Canceled hold on package_name..

DrA7
źródło
1
Twój sudoproblem jest prawdopodobnie dlatego, że właśnie napisałeś sudo echo "package_name install"|dpkg --set-selections. Powoduje to odtworzenie następnego, echoale nie następującego potoku, stąd błąd dostępu. Spróbuj to zamiast: sudo -E -- sh -c 'echo "package_name install"|dpkg --set-selections'. To powoduje sudo podpowłoki, której wiersz komend to echo "package_name install"|dpkg --set-selections.
Urhixidur
1
Moja odpowiedź była nieco związana z nieedytowaną wersją odpowiedzi poniżej, która poprzednio zawierała dokładnie to polecenie, do którego się odwoływałem. Jednak pytanie to jest konkretnym apt-getprzykładem i dlatego odpowiedziałem za pomocą tego, apt-markco jest zawarte w pakiecie apt . Bardzo pomocne jest jednak dokładne zrozumienie, dlaczego polecenia dpkg nie działały.
DrA7
@ DrA7 nazwa_pakietu nie była już wstrzymana. Co mam teraz zrobić?
Dr.jacky
13

Prawidłowy sposób na usunięcie blokady powinien być:

echo "package_name install"|sudo dpkg --set-selections
jaśmin
źródło
2

Odznacz pojedynczy pakiet o nazwie $ nazwa_pakietu:

echo $package_name install | dpkg --set-selections

Usuń zaznaczenie wszystkich pakietów, które są obecnie przechowywane:

dpkg --get-selections | grep hold | awk '{ print $1, "install" }' | dpkg --set-selections
Earl Ruby
źródło
1

Uruchom echo pidgin-data install | dpkg --set-selections(zamień pidgin-datana nazwę wstrzymanego pakietu) - spowoduje to zmianę statusu pakietu na installzamiast hold.

David Fraser
źródło
1

Możesz zatrzymać wszystkie pakiety APT za pomocą:

apt-mark showhold | awk '{ print $1, "install" }' | dpkg --set-selections
panticz.de
źródło