¿Puedo hacer que do-release-upgrade solo descargue paquetes para una actualización posterior?

33

Estoy ejecutando lubuntu 10.10, y me gustaría actualizar a 11.04. Tengo una conexión a Internet muy temperamental, por lo que me gustaría descargar todos los paquetes antes de ejecutar la instalación.

De acuerdo con esto , no hay una manera fácil de hacer esto. El informe de error mencionado en ese hilo todavía está abierto.

Mi pregunta: ¿Hay alguna manera de hackear do-release-upgrade para descargar solo los paquetes, como agregar un "-d" a apt-get dist-upgrade?

¿O es hacerlo manualmente la única forma de obtener el resultado que deseo?

Si tengo que hacerlo manualmente, ¿son estos los pasos necesarios para hacerlo o me falta algo?

  1. Deshabilitar repositorios de terceros en /etc/apt/sources.listy/etc/apt/sources.list.d
  2. Cambiar repositorios /etc/apt/sources.listde maverickanatty
  3. correr sudo apt-get update
  4. ejecutar sudo apt-get -d dist-upgradepara descargar solo los paquetes. Haga esto tantas veces como sea necesario hasta que se descarguen todos los paquetes.
  5. ejecutar sudo apt-get dist-upgradepara completar el proceso de actualización
Menachem
fuente
Eso parece cercano a lo que hubiera hecho.
Jo-Erlend Schinstad

Respuestas:

13

Sus primeros cuatro pasos son correctos, pero el paso 5 debería ser sudo do-release-upgrade(en lugar de sudo apt-get dist-upgrade). Debe notar que todos (o la mayoría) de los paquetes que iba a descargar ya están presentes /var/cache/apt/archives.

En algunas versiones anteriores de do-release-upgrade había un error en el que se limpiaría /var/cache/apt/archivesantes de descargar los paquetes nuevamente, pero IIRC ese error se ha solucionado.

Marius Gedminas
fuente
Hice esto y funcionó.
Menachem
vea cómo hacer esto usando la GUI aquí: askubuntu.com/a/418789/21794
Menachem
¿El proceso descrito en la pregunta se puede usar para actualizar de un LTS a otro? Tengo un servidor que ejecuta 12.04 que me gustaría subir a 14.04, pero podría no tener la oportunidad de prepararme completamente para la actualización antes de que se eliminen los repositorios de 12.04 a finales de este mes.
dgw
9

Escribí un script para hacer esto, para mi propia actualización de múltiples máquinas a Ubuntu 14.04 "de confianza". Se llama 'apt-get-other-release'. Uso simple:

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

El guión está en:

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

y la versión 1.0 tiene sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Básicamente, se ejecuta básicamente apt-get update; apt-get -d dist-upgradecon su propio conjunto privado de archivos sources.list. Los resultados se almacenan en / var / cache / apt- $ to_rel / archives, y el indicador '-U' los copia en todo el sistema / var / cache / apt / archives para que estén presentes durante la actualización.

También puede copiar el archivo de actualización de un host local a otro, ahorrando ancho de banda. Hice esto para una actualización amd64 e i386, copiando solo aquellos * .deb que no tenían "amd64" en sus nombres; luego ejecutó otro apt-get-other-release -t trustyen la máquina i386, que descargó otra gran pila de paquetes ya que las dos máquinas tenían diferentes cosas instaladas en ellos.

Comentarios apreciados; correo electrónico cc apreciado, ya que no sé cuándo volveré a mirar askubuntu. Los motores de búsqueda me conocen bien.

NOTA: ¡No he hecho una actualización de un sistema así tratado! Algún tiempo en la próxima semana. Obtener este script mientras puede ser de alguna utilidad para las personas.

> Bela <

usuario270294
fuente
6

Hay una manera de hacer que el administrador de actualizaciones realice los pasos 1-3 por usted.

  1. Ejecutar sudo update-managerdesde una ventana de terminal en la GUI (esto es importante)

    • Inicie el administrador de actualizaciones, dígale que desea actualizar a la próxima versión de Ubuntu y deje que comience a ejecutarse. Deshabilitará los repositorios de terceros, cambiará los repositorios principales a la última versión y luego se ejecutará sudo apt-get updatepor usted.
    • Luego aparecerá una pantalla que le indicará que, para ejecutar la actualización, deberá eliminar, instalar y actualizar los paquetes.
    • En esta etapa, vaya a la ventana de terminal y cierre forzadamente el programa usando CTRL-C. [Si no hace esto y cancela la actualización mediante el botón cancelar del administrador de actualizaciones, revertirá los cambios].
  2. ejecutar sudo apt-get -d dist-upgradedesde la línea de comandos tantas veces como sea necesario, hasta que todos los paquetes estén descargados y listos para instalar

  3. ejecutar sudo do-release-upgradey dejar que complete la actualización con los paquetes ya descargados.

  4. Vuelva a habilitar los repositorios de terceros y sudo apt-get update && sudo apt-get upgradevuelva a ejecutarlos para actualizar los repositorios de terceros a la última versión (asegúrese de que los repositorios estén actualizados a la última versión de ubuntu)

Menachem
fuente
2

También escribí un guión para esto, que puedes encontrar en

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

Uso: en un directorio temporal, ejecute

 ./fetch-release-upgrade.sh trusty

o cualquier nueva versión a la que quieras actualizar. Los paquetes necesarios se descargarán en un subdirectorio llamado debs. Luego puedes moverlos a /var/cache/apt/archivesantes de correr do-release-upgrade.

Todavía no he visto el script de user270294, pero parece que funciona de manera similar y puede tener algunas características más.

Nate Eldredge
fuente
2

La siguiente versión ligeramente más corta de la respuesta de Menachem funcionó para mí:

  1. Ejecute sudo do-release-upgradeen una ventana de terminal, espere hasta que aparezca el mensaje:

    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]
    

    No confirmes, déjalo abierto

  2. En una segunda ventana de terminal, ejecute sudo apt-get dist-upgrade --download-only

  3. Cuando termine, continúe o aborte a su gusto en la primera ventana de terminal

Consejo profesional: instale un terminal multiplexor como screeny ejecute el do-release-upgradeinterior. Luego, puede reconectarse screen -D -RRsi algo le sucede al terminal que muestra el proceso de actualización. (Afortunadamente, mi actualización de hoy fue casi completa ...)

krlmlr
fuente
Esta es una buena manera de hacerlo, pero puede fallar si tiene que apagar la computadora en el medio.
Menachem
@Menachem: Gracias. ¿Qué quieres decir con "fallar"? ¿Puedes explicarlo? Sí, las fuentes de APT probablemente estarán en un estado inconsistente, pero ¿aparte de eso?
krlmlr
No lo he probado, así que no sé exactamente qué pasaría. Solo estaba pensando que porque cuando cancela la actualización do-release-revertir los cambios, pero ha estado utilizando las últimas fuentes de apt para descargar actualizaciones, podría terminar con un sistema inestable cuando intenta volver a ejecutar la actualización más tarde.
Menachem
No estoy seguro de si la simple descarga de archivos de instalación cambia algo, ¿no es esto solo el almacenamiento en caché de archivos de Internet? De todos modos, este proceso funcionó bien para mí, y aborté y luego reinicié do-release-upgradedespués de la descarga.
krlmlr
1
sí. siempre y cuando no intentes ejecutar una actualización regular hasta que hayas terminado, deberías estar bien.
Menachem
0

Descargo de responsabilidad: nunca he hecho esto antes. Puede ser una idea horrible. Podría romperlo todo, vaciar sus cuentas bancarias y huir al sur de España. Al igual que con cualquier cosa potencialmente peligrosa, haga una copia de seguridad antes de hacer nada.


No estoy seguro de cuántas cosas ha instalado, por lo que esta podría ser una solución defectuosa, pero puede actualizar desde un CD. Descargue la iso alternativa , móntela y ejecute el script de actualización.

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

Antes de continuar, no tiene que usar wget para obtener la imagen. Bittorrent funcionará bien como con un administrador de descargas estándar. Lo importante es que desee algo que se reanude, para que pueda detener la descarga y retomarlo en otro momento. Esto es lo que wget's -cbandera va a hacer.

Una vez que tenga el ISO, el siguiente paso es bastante simple:

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

La falla de la que hablé es que esto solo actualizará las cosas integrales de Ubuntu que están incluidas en el CD. No actualizará sus otros paquetes.

En teoría esto debería estar bien. Es posible que algunas aplicaciones se rompan, que el actualizador elimine por la fuerza algunas, pero el sistema operativo central debe permanecer estable.

Si mi teoría es correcta, esto te permitirá actualizar tus otros paquetes usando como y cuando quieras a través de Synaptic o (si lo instalas) aptitude.

Oli
fuente
¿Qué pasa si el sur de España está más cerca?
Matt Joiner el