Comment puis-je passer à une nouvelle version d'Ubuntu sans avoir à réagir aux invites?
Je suis sur 12.04 maintenant et voudrais installer 12.10. Lorsque je lance la mise à jour, il télécharge généralement des éléments, puis pose une question, en installe un peu, pose une question, etc. Je la laisse du jour au lendemain et constate parfois que la mise à jour n'a pratiquement pas progressé. Je voudrais juste entamer le processus, partir et le terminer au bout de quelques heures. Je vais bien avec la mise à jour automatique des fichiers de configuration dans/etc et ainsi de suite. Alors, comment démarrer une mise à niveau sans surveillance?
La commande suivante met à niveau la nouvelle version stable sans invite:
do-release-upgrade -f DistUpgradeViewNonInteractive
La commande suivante met à niveau la version de développement actuelle sans invite:
do-release-upgrade -d -f DistUpgradeViewNonInteractive
Je ne l'ai pas testé, mais il semble qu'il ne fasse que l'action par défaut lorsqu'une question se pose. Il expire également tous les scripts s’ils sont bloqués trop longtemps.
Vous devrez peut-être utiliser dpkg-reconfigure
après si vous n'êtes pas satisfait de la configuration de certains paquets, mais la plupart du temps, tout devrait bien se passer.
Source: http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrade-fully-automatic-non-interactive-upgrade/ . Dans le lien, il existe également d'autres moyens de le faire.
Juste pour développer les réponses précédentes, voici comment procéder à distance avec la réponse acceptée, en utilisant une mise à niveau sans mot de passe sur ssh qui permettra à votre boîte de passer à la dernière version. Il est copié ma propre entrée de blog .
Toutes ces étapes supposent que votre référentiel de paquets fonctionne. Cela signifie que si vous exécutez apt-get update, vous n'êtes pas présenté avec beaucoup de 404 en raison d'une version obsolète. Vous devez d'abord résoudre ce problème, donc voir cette réponse pour cela.
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get dist-upgrade
Ajoutez-vous à la liste des utilisateurs pouvant exécuter do-release-upgrade à l'aide de Sudo sans entrer de mot de passe est obtenue en exécutant
Sudo visudo -f /etc/sudoers.d/do-release-upgrade.
et en ajoutant la ligne suivante, en remplaçant bien sûr mon nom d'utilisateur par le vôtre:
my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade
Déconnectez-vous et exécutez la commande suivante à partir de votre ordinateur. Il effectuera une mise à niveau sans vous inviter à entrer (en acceptant toutes les réponses par défaut), attendra le redémarrage de l'ordinateur, puis recommencera la mise à niveau. Il s'exécute jusqu'à ce que vous soyez mis à niveau vers la dernière version.
while true; do
ssh my-user@my-server Sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
sleep 120;
done
Ensuite, vous devrez déplacer les fichiers de configuration sauvegardés à leur emplacement précédent car le processus de mise à niveau a mis les configurations par défaut à leur place.
Ce gars a un moyen de préparer des réponses pour chaque invite, mais l'inconvénient est que vous devez savoir combien d'invites il y a…
Pour confirmer ce que Thomas Ward a déclaré dans sa réponse et contredire la réponse acceptée, do-release-upgrade -d -f DistUpgradeViewNonInteractive
NE FONCTIONNE PAS.
En fait, au tout premier instant, ma partition d’essai du 16.04 au 18.04 est tombée en panne et j’ai dû la refendre. C'est là que le script se fige:
Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...
Configuration file '/etc/systemd/logind.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a Shell to examine the situation
The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y
Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...
En raison d'inhibiteurs d'entrée, ni le redémarrage ni l'arrêt ne fonctionneront après la suppression du script. Vous devez effectuer un arrêt à froid (maintenez le bouton d'alimentation enfoncé pendant environ 10 secondes).
Dieu merci, il s’agissait d’une mise à niveau de 16.04 clones et non de la partition 16.04 réelle.
Pour rendre la vie encore plus intéressante, une nouvelle partition de 898 Mo a été ajoutée à mon SSD NVMe et mes partitions habituelles ont été déplacées:
$ lsdrv
NAME FSTYPE LABEL MOUNTPOINT SIZE MODEL
nvme0n1 477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs 858M
├─nvme0n1p3 16M
├─nvme0n1p1 ntfs 450M
├─nvme0n1p8 ntfs Shared_WSL+Linux /mnt/e 9G
├─nvme0n1p6 ext4 Ubuntu18.04 23.7G
├─nvme0n1p4 ntfs NVMe_Win10 /mnt/c 390.4G
├─nvme0n1p2 vfat /boot/efi 99M
├─nvme0n1p9 swap Linux Swap [SWAP] 7.9G
└─nvme0n1p7 ext4 NVMe_Ubuntu_16.0 / 44.6G
nvme0n1p5
se trouvait là où se trouvait ma partition Ubuntu 16.04, mais elle se trouve maintenant sur nvme0n1p7
nvme0n1p8
était le lieu où se trouvait ma partition de test 18.04 mais il est maintenant sur nvme0n1p8
REMARQUE: J'ai également mis à niveau Windows 10 de la construction 1709 à la construction 1803 cet après-midi. Il est donc possible qu'il ait créé la nouvelle partition de 898 Mo nvme0n1p5
au format ntfs
.
Vous pouvez le faire via le terminal, en utilisant Sudo apt-get -y upgrade
. Cela répondra "oui" à toutes les invites. Cependant, il ne fonctionnera pas automatiquement, vous devez donc l'exécuter. Cela devrait fonctionner. Si je comprends bien, il n’est pas possible d’utiliser le gestionnaire de mises à jour de l’interface graphique pour effectuer des mises à niveau logicielles sans surveillance (ce n’est pas la même chose qu’une mise à niveau de version!)
Si vous essayez de passer à une autre version d'Ubuntu (c'est-à-dire release upgrade, et généralement la prochaine version dans la ligne des versions relatives à votre version d'Ubuntu), vous devez l'activer manuellement . Sudo do-release-upgrade
peut fonctionner. Il n’existe cependant aucun moyen de passer les invites précédentes. C'est la raison pour laquelle vous lancez des mises à niveau lorsque vous êtes sur le point de recevoir de telles invites - il y aura des invites.