Kann ich ein Do-Release-Upgrade nur für Download-Pakete für ein späteres Upgrade durchführen?

33

Ich arbeite mit Lubuntu 10.10 und möchte ein Upgrade auf 11.04 durchführen. Ich habe eine sehr temperamentvolle Internetverbindung, daher möchte ich vor dem Ausführen der Installation alle Pakete herunterladen.

Nach diesem , gibt es keine einfache Möglichkeit , dies zu tun. Der in diesem Thread erwähnte Fehlerbericht ist noch offen.

Meine Frage: Gibt es eine Möglichkeit, das Do-Release-Upgrade zu hacken, um nur die Pakete herunterzuladen, wie das Hinzufügen eines "-d" zu apt-get dist-upgrade?

Oder ist es nur manuell möglich, das gewünschte Ergebnis zu erzielen?

Wenn ich es manuell machen muss, sind dies die erforderlichen Schritte, oder fehle ich etwas?

  1. Deaktivieren Sie Repositorys von Drittanbietern in /etc/apt/sources.listund/etc/apt/sources.list.d
  2. Ändern Sie die Repositorys in /etc/apt/sources.listvon mavericknachnatty
  3. Lauf sudo apt-get update
  4. Führen Sie dies aus, sudo apt-get -d dist-upgradeum nur die Pakete herunterzuladen. Tun Sie dies so oft wie nötig, bis alle Pakete heruntergeladen sind.
  5. Führen Sie sudo apt-get dist-upgradeden Befehl aus, um den Upgrade-Vorgang abzuschließen
Menachem
quelle
Das scheint nahe zu dem zu sein, was ich getan hätte.
Jo-Erlend Schinstad

Antworten:

13

Ihre ersten vier Schritte sind korrekt, aber Schritt 5 sollte sudo do-release-upgrade(anstelle von sudo apt-get dist-upgrade) sein. Es sollte beachtet werden, dass alle (oder die meisten) Pakete, die es herunterladen wollte, bereits in vorhanden sind /var/cache/apt/archives.

In einigen früheren Versionen von do-release-upgrade gab es einen Fehler, bei dem /var/cache/apt/archivesvor dem erneuten Herunterladen der Pakete eine Bereinigung durchgeführt wurde. Dieser Fehler wurde jedoch in IIRC behoben.

Marius Gedminas
quelle
Ich habe das gemacht und es hat funktioniert.
Menachem
Sehen Sie hier, wie dies mithilfe der grafischen Benutzeroberfläche geschieht
Menachem
Ist der in der Frage beschriebene Prozess für ein Upgrade von einem LTS zum nächsten geeignet? Ich habe einen Server mit 12.04, auf dem ich 14.04 erreichen möchte, habe aber möglicherweise keine Gelegenheit, mich vollständig auf das Upgrade vorzubereiten, bevor die 12.04-Repos später in diesem Monat entfernt werden.
dgw
9

Ich habe dazu ein Skript geschrieben, um mein eigenes Upgrade mehrerer Rechner auf Ubuntu 14.04 "vertrauenswürdig" zu machen. Es heißt "apt-get-other-release". Einfache Bedienung:

$ 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 ]

Das Skript ist bei:

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

und Version 1.0 hat sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Hinter den Kulissen läuft es im Grunde apt-get update; apt-get -d dist-upgrademit einem eigenen Satz von sources.list-Dateien. Die Ergebnisse werden in / var / cache / apt- $ to_rel / archives gespeichert, und das Flag '-U' kopiert diese in das systemweite Verzeichnis / var / cache / apt / archives, damit sie während des Upgrades angezeigt werden.

Sie können das Upgrade-Archiv auch von einem lokalen Host auf einen anderen kopieren, um Bandbreite zu sparen. Ich habe dies für ein amd64- und ein i386-Upgrade getan und nur die * .deb kopiert, die nicht "amd64" in ihren Namen hatten. Dann lief ein weiterer apt-get-other-release -t trustyauf dem i386-Computer, der einen weiteren großen Stapel von Paketen herunterlud, da auf beiden Computern unterschiedliche Komponenten installiert waren.

Feedback erwünscht; email cc dankbar, da ich nicht weiß wann ich mich das nächste mal bei askubuntu umschaue. Suchmaschinen sind sich meiner bewusst.

HINWEIS: Ich habe noch kein Upgrade eines so behandelten Systems durchgeführt! Irgendwann in der nächsten Woche. Dieses Skript herauszubekommen, während es für die Leute von Nutzen sein könnte.

> Bela <

user270294
quelle
6

Es gibt eine Möglichkeit, den Update Manager dazu zu bringen, die Schritte 1-3 für Sie auszuführen.

  1. Lauf sudo update-manager Sie von einem Terminalfenster in der grafischen Benutzeroberfläche (das ist wichtig)

    • Starten Sie den Update-Manager, teilen Sie ihm mit, dass Sie auf die nächste Ubuntu-Version aktualisieren möchten, und lassen Sie ihn starten. Es werden Repositorys von Drittanbietern deaktiviert, die Haupt-Repositorys auf die neueste Version geändert und dann ausgeführtsudo apt-get update für Sie ausgeführt.
    • Daraufhin wird ein Bildschirm eingeblendet, der Sie darüber informiert, dass Pakete entfernt, installiert und aktualisiert werden müssen, damit das Update ausgeführt werden kann.
    • Wechseln Sie zu diesem Zeitpunkt zum Terminalfenster und beenden Sie das Programm mit STRG-C. [Wenn Sie dies nicht tun und das Update über die Abbrechen-Schaltfläche des Update-Managers abbrechen, werden die Änderungen zurückgesetzt].
  2. Führen Sie sudo apt-get -d dist-upgradeso oft wie nötig von der Befehlszeile aus, bis alle Pakete heruntergeladen und zur Installation bereit sind

  3. Führen sudo do-release-upgradeSie es aus und lassen Sie es das Upgrade mit den bereits heruntergeladenen Paketen abschließen.

  4. Aktivieren Sie die Repositorys von Drittanbietern sudo apt-get update && sudo apt-get upgradeerneut und führen Sie sie erneut aus, um die Repositorys von Drittanbietern auf die neueste Version zu aktualisieren.

Menachem
quelle
2

Ich habe auch ein Skript dafür geschrieben, das Sie unter finden können

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

Verwendung: In einem Arbeitsverzeichnis ausführen

 ./fetch-release-upgrade.sh trusty

oder auf welche neue Version Sie aktualisieren möchten. Die erforderlichen Pakete werden in ein Unterverzeichnis namens heruntergeladen debs. Sie können sie dann /var/cache/apt/archivesvor dem Ausführen verschiebendo-release-upgrade .

Ich habe mir das Skript von user270294 noch nicht angesehen, aber es klingt so, als würde es in ähnlicher Weise funktionieren und könnte ein paar weitere Funktionen haben.

Nate Eldredge
quelle
2

Die folgende etwas kürzere Version von Menachems Antwort hat für mich funktioniert:

  1. Führen Sie sudo do-release-upgradein einem Terminalfenster aus und warten Sie, bis die folgende Aufforderung angezeigt wird:

    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]
    

    Nicht bestätigen, offen lassen

  2. Führen Sie in einem zweiten Terminalfenster aus sudo apt-get dist-upgrade --download-only

  3. Wenn Sie fertig sind, können Sie im ersten Terminalfenster fortfahren oder den Vorgang abbrechen

Pro Tipp: Installieren Sie einen Terminalmultiplexer wie screenund führen Sie den do-release-upgradedarin aus. Anschließend können Sie erneut eine Verbindung herstellen, screen -D -RRfalls auf dem Terminal etwas passiert, das den Aktualisierungsprozess anzeigt. (Zum Glück war mein Upgrade heute fast abgeschlossen ...)

krlmlr
quelle
Dies ist eine gute Möglichkeit, aber es kann fehlschlagen, wenn Sie den Computer in der Mitte ausschalten müssen.
Menachem
@Menachem: Danke. Was meinst du mit "scheitern", kannst du das bitte näher erläutern? Ja, die APT-Quellen werden wahrscheinlich in einem inkonsistenten Zustand sein, aber anders als das?
krlmlr
Ich habe es nicht ausprobiert, daher weiß ich nicht genau, was passieren würde. Ich dachte nur, dass, wenn Sie das Do-Release-Upgrade abbrechen, die Änderungen zurückgesetzt werden, Sie jedoch die neuesten Apt-Quellen zum Herunterladen von Updates verwendet haben, Sie möglicherweise auf ein instabiles System stoßen, wenn Sie versuchen, das Update erneut auszuführen später.
Menachem
Ich bin mir nicht sicher, ob sich durch das bloße Herunterladen von Installationsdateien etwas ändert. Zwischenspeichern von Dateien aus dem Internet? Wie auch immer, dieser Prozess hat bei mir gut funktioniert und ich habe abgebrochen und do-release-upgradenach dem Herunterladen neu gestartet .
krlmlr
1
Ja. Solange Sie nicht versuchen, ein regelmäßiges Update durchzuführen, bis Sie fertig sind, sollte es Ihnen gut gehen.
Menachem
0

Haftungsausschluss: Ich habe das noch nie gemacht. Es könnte eine schreckliche Idee sein. Es könnte alles kaputt machen, Ihre Bankkonten leeren und nach Südspanien fliehen. Machen Sie, wie bei potenziell gefährlichen Dingen, eine Sicherungskopie, bevor Sie etwas unternehmen.


Ich bin mir nicht sicher, wie viel Material Sie installiert haben. Dies ist möglicherweise eine fehlerhafte Lösung, aber Sie können ein Upgrade von CD durchführen. Laden Sie die Alternate iso, montieren, und führen Sie das Upgrade - Skript.

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

Bevor ich weiter gehe, müssen Sie wget nicht verwenden, um das Bild zu erhalten. Bittorrent funktioniert genauso gut wie ein Standard-Download-Manager. Wichtig ist, dass Sie eine Wiederaufnahme wünschen, damit Sie den Download beenden und ihn zu einem anderen Zeitpunkt wieder aufnehmen können. Dies ist, was wgetdie -cFlagge tun wird.

Sobald Sie die ISO haben, ist der nächste Schritt ziemlich einfach:

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

Der Fehler, über den ich gesprochen habe, ist, dass hiermit nur die für Ubuntu wichtigen Komponenten aktualisiert werden, die auf der CD enthalten sind. Ihre anderen Pakete werden nicht aktualisiert.

In der Theorie sollte dies in Ordnung sein. Möglicherweise stellen Sie fest, dass einige Anwendungen nicht mehr funktionieren, andere möglicherweise vom Updater zwangsweise entfernt werden, das Kernbetriebssystem sollte jedoch stabil bleiben.

Wenn meine Theorie richtig ist, können Sie dann Ihre anderen Pakete aktualisieren, indem Sie über Synaptic oder (wenn Sie es installieren) as und when möchten aptitude.

Oli
quelle
Was ist, wenn der Süden Spaniens näher ist?
Matt Joiner