Jak mogę wstrzymać / wznowić proces aktualizacji apt-get w terminalu?

20

Czasami mój Internet jest przerywany z powodu zmiany siły sygnału 3g i muszę ponownie uruchomić cały proces aktualizacji apt-get! Każda aktualizacja zużywa 13-15 MB, a każdy MB kosztuje tutaj !! Czy mogę zrobić coś, aby wstrzymać aktualizację, aby móc ją wznowić po ponownym podłączeniu Internetu! ps - wiem, że mogę wznowić pobieranie aplikacji / aktualizacji

avi
źródło
więc dlaczego dokładnie chcesz się zatrzymać? czy jest to wyłącznie po to, abyś mógł usunąć pliki pakietów, które zostaną pobrane do instalacji? Jeśli tak, po prostu użyj polecenia clean, które opisałem PO uruchomieniu instalacji oprogramowania, wyczyści to miejsce zajmowane przez pobrane instalatory pakietów.
Thomas Ward
@EvilPhoenix Nie. Nie o to chodzi. Chodzi o to, że jeśli połączenie zostanie zerwane w ostatnim kroku mojej aktualizacji, stracę 14 MB, ponieważ muszę go ponownie uruchomić! a moje połączenie internetowe jest oparte na danych ... więc nie mogę sobie pozwolić na niepotrzebną utratę danych!
avi
@amith, aby zaznaczyć odpowiedź jako odpowiedź, kliknij znacznik wyboru obok odpowiedzi @jgbelacqua.
theTuxRacer
@Kaustubh, ale jego poprawna odpowiedź nie jest faktyczną odpowiedzią! To komentarz do innej odpowiedzi !!
avi
Jak to się dzieje, że każda aktualizacja zajmuje 13-15 MB? Czy korzystasz z wersji wstępnej? Nowa aktualizacja powinna zająć tylko kilka 100 kB.
user1974 16.04.11

Odpowiedzi:

25

Patrząc na zalecenia dotyczące używania Ctrl+ C, myślę, że lepiej byłoby spróbować Ctrl+ Zzawiesić proces w tle, gdy / jeśli sieć spadnie. Możesz użyć fgwznowienia po przywróceniu łączności. (Nie wiem jednak, jak solidny jest apt-get w tym scenariuszu.)

Inną możliwością byłoby użycie axeli apt-fastskrypt. Jest reklamowany jako przyspieszenie pobierania przez pobieranie równoległe, ale wydaje się również, że dobrze jest śledzić to, co już zostało pobrane, prawdopodobnie dlatego, że musi śledzić kawałki pliku podczas pobierania w równoległych porcjach.

Oto oryginalny wątek z Ubuntuforum .

Belacqua
źródło
czy axel / apt-fast może również śledzić aktualizację apt-get? czy to może się zatrzymać?
avi
@amith - Jeśli chodzi o pauzę axel / apt-fast, dopuszcza się pauzę, ale nie wiem, czy mechanizm jest dokładnie tym, czego potrzebujesz.
belacqua
kto głosował w dół? Głosowałem za tobą!
avi
5

Możesz zatrzymać pobieranie pakietów lub aktualizację systemu, naciskając „Ctrl + C” i zatrzymując program. Spowoduje to całkowite zatrzymanie programu. Następnym razem, gdy spróbujesz wykonać to samo polecenie, apt-get wznowi pobieranie od miejsca, w którym zatrzymało się ostatnim razem

Amith KK
źródło
@Amith Wznawia pakiety, ale nie aktualizacja! Aktualizacja rozpocznie się od nowa!
avi
1
Lepiej byłoby spróbować Ctrl-Z, aby zawiesić proces w tle, jeśli sieć spadnie - być może będziesz mógł użyć go fgdo wznowienia po przywróceniu łączności. Nie wiem jednak, jak solidny jest apt-get w tym scenariuszu.
belacqua
1
@jgbelacqua hej !! to działa .. jak oznaczyć to jako odpowiedź?
avi
@amithv - dodałem komentarz na początku mojej oryginalnej odpowiedzi, ponieważ wydaje się, że działa. Bardzo się cieszę, że to pomaga.
belacqua
5

Najpierw wstrzymaj tę pracę. aby wstrzymać pracę:

Ctrl + z 

w celu ponownego uruchomienia zadania po otrzymaniu sygnałów sieciowych:

do uruchomienia go na pierwszym planie użyj

fg %1 

do uruchamiania w tle użyj

 bg %1 
AviD1511
źródło
Przynajmniej w bash, nie trzeba określać %1na fglub bg, przynajmniej, jeśli został tylko zawieszony.
Xen2050,
4

Jak aptitudepowiedział mi po nieoczekiwanym ponownym uruchomieniu, użyj:

sudo dpkg --configure -a

I jak man dpkgwyjaśnia:

Jeśli zamiast pakietu podano -a lub --pending, wszystkie rozpakowane, ale nieskonfigurowane pakiety są skonfigurowane.

Denis Ryżkow
źródło
2

Instalowanie / aktualizowanie jest operacją atomową. Albo się kończy, albo nie. Jeśli aktualizacja ulegnie awarii / zatrzymaniu, zostanie przywrócona do ostatniego punktu przed rozpoczęciem aktualizacji. Ponieważ nagłówki (pliki zawierające dane pakietów i skąd je pobrać) Pakiety zaczynają się jednak pobierać od momentu zerwania połączenia. Krótka rada, nie przerywaj instalacji, są szanse, że sprawi, że system będzie bezużyteczny.

theTuxRacer
źródło
-1

Nie lubię terminala. Nie wiem też, czy jest to możliwe przy użyciu terminala, czy nie. Ale istnieje zły sposób robienia tego, o co prosiłeś. W tym celu potrzebujesz „Menedżera pakietów Synaptic”. Jeśli go nie masz, zainstaluj go najpierw. Teraz, jeśli go masz, otwórz go; Kliknij „Oznacz wszystkie aktualizacje”. Spowoduje to wyświetlenie wszystkich pakietów, które można aktualizować (aktualizować). Teraz zacznij pobierać pakiety, dopóki połączenie nie zostanie utracone. Jeśli połączenie zostanie utracone, Synaptic narzeka na to i przestaje aktualizować. Bez obaw, zamknij menedżera pakietów synaptycznych. (Nie otwieraj Centrum oprogramowania ani nie używaj apt-get przez linię poleceń, dopóki nie zakończy się uaktualnienie).

Teraz po ponownym połączeniu ponownie uruchom synaptic. I jeszcze raz kliknij „Oznacz wszystkie aktualizacje” i rozpocznij aktualizację. Tym razem zobaczysz, że pobierane są tylko te pakiety, których nie udało się pobrać, a inne są pomijane.

To nie jest dobre rozwiązanie, ale działa. Jeśli centrum synaptyczne lub programowe narzeka na jakiś rodzaj „blokady”, przejdź do / var / cache / apt / archives i usuń plik „blokady”, a będziesz gotowy :)

Ciekawy uczeń
źródło
Jeszcze jedna rzecz. Nie aktualizuj aktualizacji przez kilka dni. Ponieważ Canonical produkuje nowsze aktualizacje, Twoje już pobrane pliki staną się przestarzałe.
Ciekawy uczeń