Est-ce que je peux faire que do-release-upgrade télécharge uniquement les paquets pour une mise à jour ultérieure?


33

J'exécute lubuntu 10.10 et aimerais passer à la version 11.04. J'ai une connexion Internet très capricieuse, je voudrais donc télécharger tous les packages avant d'exécuter l'installation.

Selon cela , il n'y a pas de moyen facile de le faire. Le rapport de bogue mentionné dans ce fil est toujours ouvert.

Ma question: Y a-t-il un moyen de bidouiller do-release-upgrade pour ne télécharger que les paquets, un peu comme ajouter un "-d" à apt-get dist-upgrade?

Ou le faire manuellement est-il le seul moyen d'obtenir le résultat souhaité?

Si je dois le faire manuellement, est-ce que ce sont les étapes nécessaires pour le faire ou est-ce qu'il me manque quelque chose?

  1. Désactiver les référentiels tiers dans /etc/apt/sources.listet/etc/apt/sources.list.d
  2. Changer les référentiels /etc/apt/sources.listde maverickànatty
  3. courir sudo apt-get update
  4. exécuter sudo apt-get -d dist-upgradepour télécharger uniquement les packages. Faites-le autant de fois que nécessaire jusqu'à ce que tous les packages soient téléchargés.
  5. exécuter sudo apt-get dist-upgradepour terminer le processus de mise à niveau

Cela semble proche de ce que j'aurais fait.
Jo-Erlend Schinstad le

Réponses:


13

Vos quatre premières étapes sont correctes, mais l’étape 5 devrait l'être sudo do-release-upgrade(au lieu de sudo apt-get dist-upgrade). Il convient de noter que la totalité (ou la plupart) des packages à télécharger sont déjà présents dans /var/cache/apt/archives.

Dans certaines versions antérieures de do-release-upgrade, il y avait un bogue qui nettoyait /var/cache/apt/archivesavant de télécharger de nouveau les paquets, mais ce bogue a été corrigé par IIRC.


Je l'ai fait et ça a marché.
Menachem

voyez comment procéder à l'aide de l'interface graphique ici: askubuntu.com/a/418789/21794
Menachem

Le processus décrit dans la question est-il utilisable pour la mise à niveau d’un système LTS à un autre? J'ai un serveur sous 12.04 que je voudrais passer à 14.04, mais je ne pourrais peut-être pas préparer complètement la mise à niveau avant que les mises à jour de 12.04 ne soient supprimées plus tard ce mois-ci.
dgw

9

J'ai écrit un script pour cela, pour ma propre mise à niveau de plusieurs machines vers Ubuntu 14.04 "digne de confiance". Cela s'appelle 'apt-get-other-release'. Utilisation 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 ]

Le script est à:

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

et la version 1.0 a sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

En coulisse, il fonctionne apt-get update; apt-get -d dist-upgradeavec son propre ensemble privé de fichiers sources.list. Les résultats sont stockés dans / var / cache / apt-$ to_rel / archives, et l'indicateur '-U' les copie dans le fichier / var / cache / apt / archives du système pour qu'ils soient présents lors de la mise à niveau.

Vous pouvez également copier l'archive de mise à niveau d'un hôte local à un autre, en économisant de la bande passante. Je l'ai fait pour une mise à niveau amd64 et i386, en ne copiant que ceux * .deb dont le nom ne comportait pas "amd64"; puis en a exécuté une autre apt-get-other-release -t trustysur la machine i386, qui a téléchargé une autre pile de paquets volumineux, car des éléments différents étaient installés sur les deux machines.

Commentaires appréciés email cc apprécié, car je ne sais pas quand je regarderai à nouveau chez askubuntu. Les moteurs de recherche sont bien conscients de moi.

REMARQUE: je n'ai pas réellement mis à niveau un système ainsi traité! Quelque temps dans la semaine prochaine. Obtenir ce script alors qu'il pourrait être utile aux gens.

> Bela <


6

Il existe un moyen de demander au gestionnaire de mise à jour d'effectuer les étapes 1 à 3 à votre place.

  1. Exécuter sudo update-managerdepuis une fenêtre de terminal dans l'interface graphique (c'est important)

    • Démarrez le gestionnaire de mise à jour, indiquez-lui que vous souhaitez effectuer la mise à niveau vers la prochaine version d'Ubuntu et laissez-le s'exécuter. Il désactivera les référentiels tiers, changera les référentiels principaux à la dernière version, puis s'exécutera sudo apt-get updatepour vous.
    • Un écran s’affichera pour vous indiquer que pour exécuter la mise à jour, il sera nécessaire de supprimer, installer et mettre à jour les paquetages.
    • À ce stade, accédez à la fenêtre du terminal et forcez la fermeture du programme à l'aide de CTRL-C. [Si vous ne le faites pas et annulez la mise à jour à l'aide du bouton d'annulation du gestionnaire de mise à jour, les modifications seront annulées].
  2. exécuter à sudo apt-get -d dist-upgradepartir de la ligne de commande autant de fois que nécessaire, jusqu'à ce que tous les packages soient téléchargés et prêts à être installés

  3. lancez-le sudo do-release-upgradeet laissez-le terminer la mise à niveau avec les packages déjà téléchargés.

  4. Réactivez les référentiels tiers et exécutez-le à sudo apt-get update && sudo apt-get upgradenouveau pour mettre à jour les référentiels tiers vers la dernière version (assurez-vous que les référentiels sont mis à jour vers la dernière version d'ubuntu).


2

J'ai aussi écrit un script pour cela, que vous pouvez trouver sur

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

Utilisation: dans un répertoire de travail, lancez

 ./fetch-release-upgrade.sh trusty

ou quelle que soit la nouvelle version que vous souhaitez mettre à niveau. Les packages nécessaires seront téléchargés dans un sous-répertoire appelé debs. Vous pouvez ensuite les déplacer /var/cache/apt/archivesavant de courir do-release-upgrade.

Je n'ai pas encore regardé le script de user270294 mais il semble que cela fonctionne dans le même sens et peut avoir quelques fonctionnalités supplémentaires.


2

La version légèrement plus courte suivante de la réponse de Menachem a fonctionné pour moi:

  1. Exécuter sudo do-release-upgradedans une fenêtre de terminal, attendez jusqu'à ce que l'invite:

    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]
    

    Ne pas confirmer, laissez-le ouvert

  2. Dans une seconde fenêtre de terminal, exécutez sudo apt-get dist-upgrade --download-only

  3. Une fois terminé, continuez ou abandonnez à votre guise dans la première fenêtre du terminal.

Astuce de pro: installez un multiplexeur de terminal comme screenet lancez-le do-release-upgradeà l' intérieur. Ensuite, vous pouvez vous reconnecter screen -D -RRsi quelque chose arrive au terminal qui indique le processus de mise à niveau. (Heureusement, ma mise à jour aujourd'hui était presque terminée ...)


c'est un bon moyen de le faire, mais cela peut échouer si vous devez éteindre l'ordinateur au milieu.
Menachem

@ Menachem: Merci. Que voulez-vous dire par "échec", pouvez-vous élaborer? Oui, les sources APT seront probablement dans un état incohérent, mais autre chose?
krlmlr

Je n'ai pas essayé, donc je ne sais pas exactement ce qui se passerait. Je pensais simplement que parce que lorsque vous annulez la mise à niveau de do-release, les modifications sont annulées, mais que vous utilisez les dernières apt-sources pour télécharger les mises à jour, vous risquez de vous retrouver avec un système instable lorsque vous essayez de réexécuter la mise à jour. plus tard.
Menachem

Je ne sais pas si le simple téléchargement de fichiers d'installation change quoi que ce soit; ne s'agit-il pas simplement de mettre en cache des fichiers depuis Internet? Quoi qu'il en soit, ce processus a bien fonctionné pour moi et j'ai abandonné puis redémarré do-release-upgradeaprès le téléchargement.
krlmlr

1
Ouais. tant que vous n'essayez pas de lancer une mise à jour régulière avant d'avoir terminé, tout devrait bien se passer.
Menachem

0

Disclaimer: Je n'ai jamais fait ça auparavant. Ce pourrait être une idée horrible. Cela pourrait tout casser, vider vos comptes bancaires et fuir vers le sud de l'Espagne. Comme pour tout ce qui est potentiellement dangereux, faites une sauvegarde avant de faire quoi que ce soit.


Je ne sais pas combien de choses vous avez installées, donc cela pourrait être une solution imparfaite, mais vous pouvez effectuer une mise à niveau à partir d'un CD. Téléchargez l' iso alternatif , montez-le et exécutez le script de mise à niveau.

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

Avant d'aller plus loin, vous n'avez pas besoin d'utiliser wget pour obtenir l'image. Bittorrent fonctionnera bien comme avec un gestionnaire de téléchargement standard. L'important est que vous souhaitiez que quelque chose reprenne afin que vous puissiez arrêter le téléchargement et le reprendre à un autre moment. C'est ce que wgetle -cdrapeau fera.

Une fois que vous avez l'ISO, la prochaine étape est assez simple:

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

La faille dont j'ai parlé est que cela ne mettra à jour que les éléments inhérents à Ubuntu qui sont inclus sur le CD. Il ne mettra pas à niveau vos autres packages.

En théorie, ça devrait aller. Vous constaterez peut-être que certaines applications tombent en panne, certaines peuvent être supprimées de force par le programme de mise à jour, mais le système d'exploitation principal doit rester stable.

Si ma théorie est correcte, cela vous permettra ensuite de mettre à jour vos autres paquets en utilisant au fur et à mesure via Synaptic ou (si vous l’installez) aptitude.


Et si le sud de l'Espagne est plus proche?
Matt Joiner
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.