La mise à niveau de Fedora 22 à 23 a échoué. Maintenant en utilisant Fedora 24

J'ai essayé de mettre à jour Fedora 22 à Fedora 23 en utilisant ce guide Cependant, les choses ont échoué et il semble que je suis toujours sur Fedora 22. Cependant, le système pense qu'il exécute Fedora 24

$ cat /etc/*-release Fedora release 24 (Rawhide) NAME=Fedora VERSION="24 (Workstation Edition)" ID=fedora VERSION_ID=24 PRETTY_NAME="Fedora 24 (Workstation Edition)" ANSI_COLOR="0;34" CPE_NAME="cpe:/o:fedoraproject:fedora:24" HOME_URL="https://fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=Rawhide REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=Rawhide PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy VARIANT="Workstation Edition" VARIANT_ID=workstation Fedora release 24 (Rawhide) Fedora release 24 (Rawhide) 

et dnf ne fonctionne pas car il search dans les repos pour Fedora 24.

Comment puis-je réparer cela.

Essaye ça:

  1. Pour chaque file /etc/*-release , définissez la valeur de la version sur 23.
  2. Désactivez le repo fedora-rawhide (modifiez le /etc/yum.repo.d/fedora-rawhide.repo en définissant enable=0 )
  3. Dans un terminal, faites dnf distro-sync
  4. Si une erreur est levée avec le packageage au cours de cette étape et seulement si le package contient la valeur f24 sur le nom, faites un dnf remove <entier package name> .
  5. re-faire dnf distro-sync

Cette solution devrait aboutir à une installation Fedora 23 valide.

Le guide que vous mentionnez est un peu compliqué et contient beaucoup d'informations supplémentaires inutiles sur une seule page, ce qui rend l'set du sujet très compliqué quand en fait 2 commands simples suffisent dans la plupart des cas. En outre, apparemment, vous devez suivre 2 liens («methods» dans le message d'avertissement qui vous dit de ne pas utiliser dnf, puis «page dédiée») pour accéder à la page qui explique réellement comment utiliser le plugin de mise à niveau du système – qui est le manière officielle de préparer la mise à jour.

Plus précisément, cette page wiki, qui est liée à la question, explique comment utiliser yum / dnf directement pour la mise à jour, ce qui n'est pas recommandé , ce n'est pas le moyen officiel. "Non recommandé" signifie souvent "Il pourrait casser quelque chose". Au less, il y a un avertissement jaune en haut de la page disant aux users de ne pas faire ce qui est décrit sur cette page, à less qu'ils ne sachent ce qu'ils font. Fedora a un moyen officiel de mise à jour. Il y a longtime, c'était PreUpgrade, à commencer par Fedora 18 c'était FedUp et à partir de la mise à niveau vers Fedora 23, c'est maintenant le plugin dnf "system-upgrade". Pour être clair, c'est un plugin pour dnf , pas seulement dnf lui-même.

Comme il n'est pas clair quelles commands ont été utilisées, ce sera une réponse très générique.


En ce qui concerne la question initiale, une réponse a déjà été acceptée, mais selon le commentaire de l'auteur, une erreur s'est produite. Tout d'abord, ne changez pas les numéros de version dans les files de configuration manuellement, sauf si vous avez une bonne raison. Vous pouvez casser encore plus.

Il semble que vous ayez mis à jour rawhide au lieu de 23, auquel cas vous voudrez tenter une rétrogradation. Alors je peux suggérer:

 # dnf system-upgrade --releasever=23 --setopt=deltarpm=false distro-sync # dnf system-upgrade reboot 

N'oubliez pas l'argument de mise à niveau du système pour appeler le plugin!


Ce qu'il ne faut pas faire

Ne modifiez pas les numéros de version dans les files de configuration et exécutez dnf. Si vous avez de la chance, vous venez de modifier à tort un file sur lequel d'autres programmes countnt; si vous êtes malchanceux, vous risquez d'interrompre les futures mises à jour / mises à niveau, en particulier lors de la modification des files repo. Ne supprimez pas non plus la variable $releasever des files /etc/yum.repos.d/*.repo , ces variables sont importantes. Si vous faites cela et oubliez de les changer à nouveau dans les 6 mois pour la prochaine mise à niveau, cette mise à niveau va probablement se briser ou échouer terriblement.

Si vous avez déjà modifié des files de configuration (suite à de mauvais conseils, dont vous pouvez find beaucoup sur Internet), réinitialisez d'abord vos modifications en utilisant la copy de sauvegarde de chaque file que vous avez créé avant de le modifier.


Comment passer de Fedora 22 à Fedora 23 (officiellement)

Étant donné que FedUp a été déprécié et que systemd est maintenant utilisé en interne pour mettre à niveau le système, il existe une nouvelle command pour préparer et démarrer la mise à niveau: "dnf system-upgrade …". Mais pour des raisons de compatibilité, la command fedup fonctionne toujours.

Encore une fois, la mise à niveau est lancée par un plugin dnf appelé system-upgrade , pas par dnf lui-même. Donc, vous devez au less installer la version actuelle de ce plugin en premier:

Préparation:

  1. Installer / mettre à jour le plugin "system-upgrade": dnf install dnf-plugin-system-upgrade
    Dans certains cas, il pourrait se plaindre de problèmes de dépendance, vous devrez peut-être append --best / --allowerasing : dnf install --best dnf-plugin-system-upgrade
  2. Vous devez mettre à jour votre système avant de préparer la mise à niveau. Il fonctionne souvent de toute façon, mais la mise à niveau n'est pas garantie de fonctionner sauf si vous mettez à jour, donc: dnf upgrade

Ensuite, préparez et démarrez la mise à niveau, qui est essentiellement un process en deux étapes:

  1. # dnf system-upgrade download --releasever=23
    ou # fedup --network 23 (redirige vers la dnf system-upgrade à dnf system-upgrade )
  2. # dnf system-upgrade reboot

Cette dernière command redémarrera le système en mode de mise à niveau. Contrairement à FedUp, qui a créé une nouvelle input de démarrage Grub "System Upgrade" qui a dû être sélectionnée au démarrage, le système effectue un arrêt normal, démarre normalement mais démarre le process de mise à niveau avant le chargement du bureau graphique. Si tout fonctionne bien, votre nouvelle Fedora 23 démarrera par la suite.

Erreur de trace de dnf Python

Actuellement, il y a des problèmes signalés avec la rupture dnf, chaque appel dnf montrerait un backtrace. Cela devrait être corrigé en mettant à jour le système normalement, mais cela ne serait pas possible sans dnf, donc une solution de contournement doit être utilisée. Le message d'erreur (pour tout appel dnf) ressemblerait à quelque chose comme ceci:

 Traceback (most recent call last): File "/bin/dnf", line 36, in <module> ... UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 51: ordinal not in range(128) 

Une solution de contournement consiste à faire précéder chaque appel dnf avec LANG=C , par exemple pour effectuer une mise à jour complète:

 # LANG=C dnf -y upgrade 

boucle de redémarrage du système dnf

Il y a des scénarios dans lesquels la mise à niveau du système échoue, mais au lieu de simplement redémarrer une fois et de redémarrer dans le système, il se retrouve dans une boucle de redémarrage, ce qui rend impossible l'utilisation du système. Cela semble arriver si souvent qu'il est même mentionné dans le README , alors j'ai pensé que je le mentionnerais ici aussi. Comment sortir de la boucle de redémarrage de la mise à niveau:

  1. Juste après le démarrage, dans le menu de démarrage Grub, appuyez sur e pour modifier les parameters de démarrage. Dans la textbox, faites défiler jusqu'à la ligne commençant par linux , appuyez sur End pour déplacer le slider jusqu'à la fin de la ligne et ajoutez (après un espace) rd.break . Puis appuyez sur F10 pour démarrer en mode d'urgence, vous obtiendrez un shell.
  2. Vous devrez supprimer un file, vous devez donc remonter le système de files racine en lecture-écriture car il est monté en lecture seule:
    # mount -o remount,rw /sysroot
  3. Supprimer le lien de mise à niveau du système:
    # rm /sysroot/system-update
  4. Redémarrez (command reboot ou Ctrl + Alt + Del ), le système devrait démarrer normalement. Vous voudrez peut-être effacer les files de mise à jour en exécutant dnf system-upgrade clean .

Ok, alors voici ce qu'il faut faire (en mode superuser):

  • rm tous /etc/yum.repo.d/*.rpmnew
  • pour tout /etc/yum.repo.d/*.repo: remplacez le $releasever par 23 manuellement.
  • passez à l'étape 3.