Czy mogę dokonać aktualizacji do-wydania tylko do pobrania pakietów do późniejszej aktualizacji?

33

Używam lubuntu 10.10 i chciałbym uaktualnić do 11.04. Mam bardzo temperamentne połączenie internetowe, dlatego chciałbym pobrać wszystkie pakiety przed uruchomieniem instalacji.

Zgodnie z tym nie ma łatwego sposobu na zrobienie tego. Raport o błędzie wymieniony w tym wątku jest nadal otwarta.

Moje pytanie: Czy istnieje sposób na zhakowanie aktualizacji do-release tylko w celu pobrania pakietów, coś w rodzaju dodania „-d” do apt-get dist-upgrade?

Czy robienie tego ręcznie to jedyny sposób na uzyskanie pożądanego rezultatu?

Jeśli muszę to zrobić ręcznie, czy należy wykonać te czynności, czy coś mi brakuje?

  1. Wyłącz repozytoria stron trzecich w /etc/apt/sources.listi/etc/apt/sources.list.d
  2. Zmień repozytoria w /etc/apt/sources.listz mavericknanatty
  3. biegać sudo apt-get update
  4. uruchom, sudo apt-get -d dist-upgradeaby pobrać tylko pakiety. Zrób to tyle razy, ile to konieczne, aż wszystkie pakiety zostaną pobrane.
  5. uruchom, sudo apt-get dist-upgradeaby zakończyć proces aktualizacji
Menachem
źródło
To wydaje się bliskie temu, co bym zrobił.
Jo-Erlend Schinstad

Odpowiedzi:

13

Pierwsze cztery kroki są poprawne, ale krok 5 powinien być sudo do-release-upgrade(zamiast sudo apt-get dist-upgrade). Powinien zauważyć, że wszystkie (lub większość) pakietów, które zamierzał pobrać, są już obecne /var/cache/apt/archives.

W niektórych wcześniejszych wersjach do-release-upgrade występował błąd /var/cache/apt/archives, który czyściłby go przed ponownym pobraniem pakietów, ale IIRC ten błąd został naprawiony.

Marius Gedminas
źródło
Zrobiłem to i zadziałało.
Menachem
zobacz, jak to zrobić za pomocą GUI tutaj: askubuntu.com/a/418789/21794
Menachem
Czy proces opisany w pytaniu nadaje się do aktualizacji z jednego LTS do drugiego? Mam serwer z wersją 12.04, którą chciałbym przejść na wersję 14.04, ale może nie mieć szansy na pełne przygotowanie się do aktualizacji przed usunięciem repozytoriów 12.04 pod koniec tego miesiąca.
dgw
9

Napisałem skrypt, aby to zrobić, dla mojej własnej aktualizacji wielu maszyn do Ubuntu 14.04 „zaufany”. Nazywa się to „apt-get-other-release”. Proste użycie:

$ sudo apt-get-other-release -t trusty
  [ a long time passes as it downloads stuff ]
$ sudo apt-get-other-release -U
  [ it prepares the system for upgrade -- this is quick ]
$ sudo do-release-upgrade   # or update-manager, whatever you're comfortable with
  [ upgrading also takes a long time and may still download some additional stuff ]

Skrypt znajduje się w:

ftp://www.lubkin.com/pub/user/filbo/apt-get-other-release

a wersja 1.0 ma sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Za kulisami działa w zasadzie apt-get update; apt-get -d dist-upgradez własnym prywatnym zestawem plików sources.list. Wyniki są przechowywane w / var / cache / apt- $ to_rel / archives, a flaga „-U” kopiuje je do ogólnosystemowych / var / cache / apt / archives, aby były obecne podczas aktualizacji.

Możesz także skopiować archiwum aktualizacji z jednego hosta lokalnego na inny, oszczędzając przepustowość. Zrobiłem to dla aktualizacji amd64 i i386, kopiując tylko te * .deb, które nie miały w nazwie „amd64”; następnie uruchomił kolejną apt-get-other-release -t trustyna maszynie i386, która pobrała kolejny duży stos pakietów, ponieważ na tych dwóch maszynach zainstalowano różne rzeczy.

Doceniono opinie; doceniam e-mail cc, ponieważ nie wiem, kiedy jeszcze spojrzę na askubuntu. Wyszukiwarki dobrze o mnie wiedzą.

UWAGA: Tak naprawdę nie dokonałem aktualizacji tak traktowanego systemu! Jakiś czas w następnym tygodniu. Wydostanie tego skryptu, podczas gdy może być użyteczny dla ludzi.

> Bela <

użytkownik270294
źródło
6

Istnieje sposób, aby menedżer aktualizacji wykonał dla ciebie kroki 1-3.

  1. Uruchom sudo update-managerz okna terminala w GUI (jest to ważne)

    • Uruchom menedżera aktualizacji, powiedz mu, że chcesz uaktualnić do następnej wersji Ubuntu, i zacznij działać. Wyłączy repozytoria stron trzecich, zmieni główne repozytoria do najnowszej wersji, a następnie uruchomi się sudo apt-get updatedla Ciebie.
    • Następnie pojawi się ekran informujący, że aby uruchomić aktualizację, będzie musiał usunąć, zainstalować i zaktualizować pakiety.
    • Na tym etapie przejdź do okna terminala i wymuś zamknięcie programu za pomocą CTRL-C. [Jeśli tego nie zrobisz i anulujesz aktualizację za pomocą przycisku anulowania w menedżerze aktualizacji, zmiany zostaną cofnięte].
  2. uruchamiaj sudo apt-get -d dist-upgradez wiersza poleceń tyle razy, ile to konieczne, aż wszystkie pakiety zostaną pobrane i będą gotowe do zainstalowania

  3. uruchom sudo do-release-upgradei pozwól mu dokończyć aktualizację już pobranych pakietów.

  4. Ponownie włącz repozytoria stron trzecich i uruchom sudo apt-get update && sudo apt-get upgradeponownie, aby zaktualizować repozytoria stron trzecich do najnowszej wersji (upewnij się, że repozytoria są zaktualizowane do najnowszej wersji Ubuntu)

Menachem
źródło
2

Napisałem również skrypt na ten temat, który można znaleźć na stronie

https://github.com/neldredge/fetch-release-upgrade

Zastosowanie: w katalogu scratch uruchom

 ./fetch-release-upgrade.sh trusty

lub jakąkolwiek nową wersję, którą chcesz uaktualnić. Niezbędne pakiety zostaną pobrane do podkatalogu o nazwie debs. Następnie możesz je przenieść /var/cache/apt/archivesprzed uruchomieniem do-release-upgrade.

Nie widziałem jeszcze skryptu user270294, ale wygląda na to, że działa on podobnie i może mieć kilka dodatkowych funkcji.

Nate Eldredge
źródło
2

Działa dla mnie następująca nieco krótsza wersja odpowiedzi Menachema:

  1. Uruchom sudo do-release-upgradew jednym oknie terminala, poczekaj na monit:

    Do you want to start the upgrade? 
    
    ...
    
    Fetching and installing the upgrade can take several hours. Once the 
    download has finished, the process cannot be canceled. 
    
    Continue [yN]  Details [d]
    

    Nie potwierdzaj, pozostaw to otwarte

  2. W drugim oknie terminala uruchom sudo apt-get dist-upgrade --download-only

  3. Po zakończeniu kontynuuj lub przerwij w wolnym czasie w pierwszym oknie terminala

Wskazówka: zainstaluj podobny multiplekser terminali screeni uruchom go w do-release-upgradeśrodku. Następnie możesz połączyć się ponownie, screen -D -RRjeśli cokolwiek stanie się z terminalem, który pokazuje proces aktualizacji. (Na szczęście moja dzisiejsza aktualizacja była prawie ukończona ...)

krlmlr
źródło
jest to dobry sposób na zrobienie tego, ale może się nie powieść, jeśli będziesz musiał wyłączyć komputer na środku.
Menachem,
@Menachem: Dzięki. Co rozumiesz przez „porażkę”, czy możesz rozwinąć tę kwestię? Tak, źródła APT prawdopodobnie będą w niespójnym stanie, ale poza tym?
krlmlr
Nie próbowałem tego, więc nie wiem dokładnie, co by się stało. Myślałem tylko, że ponieważ po anulowaniu aktualizacji do-release przywraca ona zmiany, ale używasz najnowszych apt-source do pobierania aktualizacji, możesz mieć niestabilny system podczas próby ponownego uruchomienia aktualizacji później.
Menachem,
Nie jestem pewien, czy samo pobranie plików instalacyjnych coś zmieni, czy to nie tylko buforowanie plików z Internetu? W każdym razie ten proces działał dla mnie dobrze i przerwałam, a następnie wznowiłam do-release-upgradepo pobraniu.
krlmlr
1
Tak. dopóki nie skończysz przeprowadzać regularnej aktualizacji, dopóki nie skończysz, wszystko będzie dobrze.
Menachem,
0

Oświadczenie: Nigdy wcześniej tego nie robiłem. To może być okropny pomysł. Może wszystko zepsuć, opróżnić konta bankowe i uciec na południe Hiszpanii. Podobnie jak w przypadku każdego potencjalnie niebezpiecznego, wykonaj kopię zapasową, zanim cokolwiek zrobisz.


Nie jestem pewien, ile zainstalowałeś, więc może to być wadliwe rozwiązanie, ale możesz je uaktualnić z płyty CD. Pobierz alternatywną wersję ISO, zamontuj ją i uruchom skrypt aktualizacji.

wget -c http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-amd64.iso

Zanim przejdę dalej, nie musisz używać wget, aby uzyskać obraz. Bittorrent będzie działał dobrze ze standardowym menedżerem pobierania. Ważne jest, abyś chciał coś wznowić, abyś mógł zatrzymać pobieranie i odebrać go w innym czasie. To, co wgetjest -cflaga zrobi.

Po uzyskaniu ISO następny krok jest dość prosty:

sudo mount -o loop ubuntu-11.04-alternate-amd64.iso /media/cdrom
sudo sh /media/cdrom/cdromupgrade

Wada, o której mówiłem, polega na tym, że uaktualni tylko rzeczy integralne z Ubuntu, które są zawarte na płycie CD. Nie zaktualizuje innych pakietów.

W teorii powinno to być w porządku. Może się okazać, że niektóre aplikacje się psują, niektóre mogą być siłą usuwane przez aktualizator, ale podstawowy system operacyjny powinien pozostać stabilny.

Jeśli moja teoria jest słuszna, pozwoli to na uaktualnienie innych pakietów przy użyciu jako i kiedy chcesz przez Synaptic lub (jeśli go zainstalujesz) aptitude.

Oli
źródło
Co jeśli południe Hiszpanii jest bliżej?
Matt Joiner