Posso fare i pacchetti di download do-release-upgrade solo per un aggiornamento successivo?


33

Sto eseguendo Lubuntu 10.10 e vorrei aggiornare a 11.04. Ho una connessione internet molto temeraria, quindi vorrei scaricare tutti i pacchetti prima di eseguire l'installazione.

Secondo questo , non esiste un modo semplice per farlo. La segnalazione di bug menzionata in quel thread è ancora aperta.

La mia domanda: c'è un modo per hackerare do-release-upgrade per scaricare solo i pacchetti, un po 'come aggiungere una "-d" per apt-get dist-upgrade?

O farlo manualmente è l'unico modo per ottenere il risultato che desidero?

Se devo farlo manualmente, sono questi i passaggi necessari per farlo o mi sto perdendo qualcosa?

  1. Disabilitare i repository di terze parti in /etc/apt/sources.liste/etc/apt/sources.list.d
  2. Cambia repository /etc/apt/sources.listda da maverickanatty
  3. correre sudo apt-get update
  4. eseguire sudo apt-get -d dist-upgradeper scaricare solo i pacchetti. Fallo tutte le volte che è necessario fino a quando non vengono scaricati tutti i pacchetti.
  5. eseguire sudo apt-get dist-upgradeper completare il processo di aggiornamento

Sembra vicino a quello che avrei fatto.
Jo-Erlend Schinstad,

Risposte:


13

I tuoi primi quattro passaggi sono corretti, ma il passaggio 5 dovrebbe essere sudo do-release-upgrade(anziché sudo apt-get dist-upgrade). Dovrebbe notare che tutti (o la maggior parte) dei pacchetti che stava per scaricare sono già presenti /var/cache/apt/archives.

In alcune versioni precedenti di do-release-upgrade c'era un bug in cui si sarebbe pulito /var/cache/apt/archivesprima di scaricare nuovamente i pacchetti, ma IIRC quel bug è stato corretto.


L'ho fatto e ha funzionato.
Menachem,

guarda come fare usando la GUI qui: askubuntu.com/a/418789/21794
Menachem

Il processo descritto nella domanda è utilizzabile per l'aggiornamento da un LTS al successivo? Ho un server che esegue 12.04 che vorrei passare a 14.04, ma potrei non avere la possibilità di prepararmi completamente per l'aggiornamento prima che i repository 12.04 vengano rimossi alla fine di questo mese.
dgw,

9

Ho scritto uno script per farlo, per il mio aggiornamento di più macchine su Ubuntu 14.04 "fidato". Si chiama 'apt-get-other-release'. Uso semplice:

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

Lo script è su:

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

e la versione 1.0 ha sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Dietro le quinte è praticamente in esecuzione apt-get update; apt-get -d dist-upgradecon il suo set privato di file sources.list. I risultati sono memorizzati in / var / cache / apt- $ to_rel / archives e il flag '-U' li copia in tutto il sistema / var / cache / apt / archives in modo che siano presenti durante l'aggiornamento.

È inoltre possibile copiare l'archivio di aggiornamento da un host locale a un altro, risparmiando larghezza di banda. L'ho fatto per un aggiornamento amd64 e i386, copiando solo quei * .deb che non avevano "amd64" nei loro nomi; quindi ne eseguì un altro apt-get-other-release -t trustysulla macchina i386, che scaricò un'altra grande pila di pacchetti poiché sulle due macchine erano installate cose diverse.

Feedback apprezzato; e-mail cc apprezzata, poiché non so quando esaminerò successivamente askubuntu. I motori di ricerca sono ben consapevoli di me.

NOTA: non ho effettivamente fatto un aggiornamento di un sistema così trattato! Qualche volta nella prossima settimana. Ottenere questo script mentre potrebbe essere di qualche utilità per le persone.

> Bela <


6

C'è un modo per convincere il gestore aggiornamenti a fare i passaggi 1-3 per te.

  1. Esegui sudo update-managerda una finestra del terminale nella GUI (questo è importante)

    • Avviare il gestore aggiornamenti, dire che si desidera aggiornare alla prossima versione di Ubuntu e lasciarlo funzionare. Disabiliterà i repository di terze parti, cambierà i repository principali all'ultima versione e quindi funzionerà sudo apt-get updateper te.
    • Apparirà quindi una schermata che ti informa che per eseguire l'aggiornamento, dovrà rimuovere, installare e aggiornare i pacchetti.
    • A questo punto, vai alla finestra del terminale ed esci forzatamente dal programma usando CTRL-C. [Se non lo fai, e annulli l'aggiornamento tramite il pulsante Annulla del gestore aggiornamenti, verranno ripristinate le modifiche].
  2. eseguire sudo apt-get -d dist-upgradedalla riga di comando tutte le volte necessarie, fino a quando tutti i pacchetti non vengono scaricati e pronti per l'installazione

  3. esegui sudo do-release-upgradee lascia che completi l'aggiornamento con i pacchetti già scaricati.

  4. Riattiva i repository di terze parti ed esegui sudo apt-get update && sudo apt-get upgradenuovamente per aggiornare i repository di terze parti all'ultima versione (assicurati che i repository siano aggiornati all'ultima versione di ubuntu)


2

Ho anche scritto una sceneggiatura per questo, che puoi trovare su

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

Utilizzo: in una directory scratch, eseguire

 ./fetch-release-upgrade.sh trusty

o qualsiasi nuova versione che si desidera aggiornare. I pacchetti necessari verranno scaricati in una sottodirectory chiamata debs. È quindi possibile spostarli su /var/cache/apt/archivesprima di eseguire do-release-upgrade.

Non ho ancora esaminato la sceneggiatura di user270294 ma sembra che funzioni in modo simile e potrebbe avere alcune funzionalità in più.


2

La seguente versione leggermente più breve della risposta di Menachem ha funzionato per me:

  1. Esegui sudo do-release-upgradein una finestra del terminale, attendi fino al prompt:

    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]
    

    Non confermare, lasciarlo aperto

  2. In una seconda finestra del terminale, eseguire sudo apt-get dist-upgrade --download-only

  3. Al termine, continuare o interrompere a piacere nella prima finestra del terminale

Suggerimento pro: installa un terminale multiplexer come screened esegui l' do-release-upgradeinterno. Quindi, è possibile riconnettersi con se screen -D -RRdovesse succedere qualcosa al terminale che mostra il processo di aggiornamento. (Fortunatamente, il mio aggiornamento oggi era quasi completo ...)


questo è un buon modo per farlo, ma potrebbe non funzionare se devi spegnere il computer nel mezzo.
Menachem,

@Menachem: grazie. Cosa intendi con "fallimento", puoi per favore elaborare? Sì, le fonti APT saranno probabilmente in uno stato incoerente, ma diverso da quello?
krlmlr,

Non l'ho provato, quindi non so esattamente cosa sarebbe successo. Stavo solo pensando che, poiché quando annulli l'aggiornamento do-release vengono ripristinate le modifiche, ma hai utilizzato le ultime apt-source per scaricare gli aggiornamenti, potresti provare a creare un sistema instabile quando provi a rieseguire l'aggiornamento dopo.
Menachem,

Non sono sicuro che il semplice download di file di installazione cambi qualcosa, non è solo la memorizzazione nella cache dei file da Internet? Comunque, questo processo ha funzionato bene per me, e ho interrotto e poi riavviato do-release-upgradedopo il download.
krlmlr,

1
si. fino a quando non si tenta di eseguire un aggiornamento regolare fino al termine, si dovrebbe andare bene.
Menachem,

0

Disclaimer: non l'ho mai fatto prima. Potrebbe essere un'idea orribile. Potrebbe rompere tutto, svuotare i conti bancari e fuggire nel sud della Spagna. Come per qualsiasi cosa potenzialmente pericolosa, fai un backup prima di fare qualsiasi cosa.


Non sono sicuro di quanta roba hai installato, quindi questa potrebbe essere una soluzione difettosa ma puoi aggiornarla dal CD. Scarica l' iso alternativo , montalo ed esegui lo script di aggiornamento.

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

Prima di andare oltre, non è necessario utilizzare wget per ottenere l'immagine. Bittorrent funzionerà bene come con un download manager standard. L'importante è che tu voglia qualcosa che riprenderà, quindi puoi interrompere il download e ritirarlo in un altro momento. Questo è ciò che wget's -cfarà bandiera.

Una volta che hai l'ISO, il passaggio successivo è abbastanza semplice:

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

Il difetto di cui ho parlato è che aggiornerà solo le cose integrali di Ubuntu che sono incluse nel CD. Non aggiornerà i tuoi altri pacchetti.

In teoria questo dovrebbe andare bene. Potresti scoprire che alcune applicazioni si rompono, alcune potrebbero essere rimosse forzatamente dal programma di aggiornamento, ma il sistema operativo principale dovrebbe rimanere stabile.

Se la mia teoria è giusta, questo ti permetterà quindi di aggiornare gli altri tuoi pacchetti usando come e quando vuoi tramite Synaptic o (se lo installi) aptitude.


E se il sud della Spagna fosse più vicino?
Matt Joiner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.