Page 1 sur 5

[filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 14:19
par oktoberfest
Je créé ce fil de discussion préventivement, car je sens que les problèmes vont fleurir dans les prochaines heures/jours :pleure:

La nouvelle version du paquet filesystem arrive et avec elle une réorganisation des répertoires /bin, /sbin et /usr/sbin qui disparaissent et sont remplacés par des liens symboliques vers /usr/bin.
L'annonce sur le site est ici : http://archlinux.fr/news/le-deplacement ... ise-a-jour

Il suffit de la suivre (cela ne semble pas toujours être fait...) et tout se passera bien.
Il se peut que lors de la mise à jour vous rencontriez un problème avec la mise à jour du noyau. Dans mon cas cela se traduit par :

Code : Tout sélectionner

(47/72) mise à jour de linux                                                         [################################################] 100%
>>> Updating module dependencies. Please wait ...
>>> Generating initial ramdisk, using mkinitcpio.  Please wait...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.9.4-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [lvm2]
==> ERROR: file not found: `/usr/sbin/dmsetup'
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating cat initcpio image: /boot/initramfs-linux.img
==> WARNING: errors were encountered during the build. The image may not be complete.
erreur : la commande n'a pas pu être exécutée correctement
Comme bien sur lors d'une mise à jour, notre oeil aiguisé a immédiatement détecté l'erreur et nos neurones survitaminés ont immédiatement réagi : problème lors de la création de l'initramfs -> le système ne vas pas réussir à démarrer.

A l'issu de la mise à jour, il faudra simplement recréer l'initramfs :

Code : Tout sélectionner

mkinitcpio -p linux
Cette commande va alors se dérouler sans souci et on peut redémarrer sereinement :kimouss:

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 14:54
par Ypnose
Merci monsieur. :chinois: En espérant, que ce sujet évite d'éventuels problèmes.
EDIT: Une petite question pour ceux qui ont mis à jour, /bin contient t'il toujours un symlink sh vers bash? Je demande ça parce que je ne vois pas de changement dans /etc/shells sur le git (et si il n'y a plus de lien, ça ne m'arrange pas trop).

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 16:42
par vlamy
Ypnose a écrit : EDIT: Une petite question pour ceux qui ont mis à jour, /bin contient t'il toujours un symlink sh vers bash? Je demande ça parce que je ne vois pas de changement dans /etc/shells sur le git (et si il n'y a plus de lien, ça ne m'arrange pas trop).
Si ça répond a ta question, avec un système à jour j'ai :

Code : Tout sélectionner

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4  1 juin  02:10 /bin/sh -> bash
Sachant que

Code : Tout sélectionner

$ ls -l /bin
lrwxrwxrwx 1 root root 7 31 mai   20:40 /bin -> usr/bin
et que j'ai fait la MAJ de bash aujourd'hui, soit le 3 Juin.

Au passage, j'ai procédé comme préconisé dans l'annonce, c'est à dire en faisant :

Code : Tout sélectionner

# pacman -Syu --ignore filesystem,bash
# pacman -S bash
# pacman -Su
Et j'ai vu mon système déconner (mes scripts persos non packagés, avec un shebang « /bin/sh » ou « /bin/bash ») entre l'avant dernière et la dernière commande. En effet, c'est comme si « /bin/bash » n'était plus valable entre les la MAJ de « bash » et celle de « filesysytem ». Aussi je suis honnête, c'est dû au fait que j'utilise salement (i.e. via des scripts non packagés) du « #!/bin/sh » et du « #!/bin/bash » dans mon système (notamment pour mes widgets, ce qui fait que j'ai eut un retour visuel pendant la MAJ).

C'était juste pour faire le signalement au cas où je ne sois pas le seul vilain garçon qui utilise du shebang à tout va.

Mais pour finir rassurez vous, tout y compris le shebang marche très bien après la MAJ.

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 16:47
par tuxce
En même temps, c'est une idée bizarre de lancer des scripts entre pacman -S bash et pacman -Su, tu voudrais avoir des erreurs que tu ne t'y prendrais pas autrement :)

filesystem fait pointer entre autre /bin sur /usr/bin, donc avant sa mise à jour, /bin ne contient rien du tout, normal.

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 16:59
par benjarobin
@vlamy Tu peux toujours utiliser « #!/bin/sh » ou « #!/bin/bash », c'est pas un problème.

@tuxce et Je pense qu'il y a une mauvaise compréhension, il n'a rien lancé entre manuellement. De ce que j'ai compris, il possède juste un script qui lance régulièrement des commandes via bash, ce script à juste été un peu perturbé :-)

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 17:09
par vlamy
tuxce a écrit :En même temps, c'est une idée bizarre de lancer des scripts entre pacman -S bash et pacman -Su, tu voudrais avoir des erreurs que tu ne t'y prendrais pas autrement :)
Tout à fait :D
benjarobin a écrit : @vlamy Tu peux toujours utiliser « #!/bin/sh » ou « #!/bin/bash », c'est pas un problème.
Oui oui, sauf entre les deux commandes :)
benjarobin a écrit : @tuxce et Je pense qu'il y a une mauvaise compréhension, il n'a rien lancé entre manuellement. De ce que j'ai compris, il possède juste un script qui lance régulièrement des commandes via bash, ce script à juste été un peu perturbé :-)
Exactement, plus précisément : c'est dû au fait que j'utilise des widgets Awesome qui font appel à « /bin/bash ». On peut dire que ce sont des scripts qui tournent dans des crons rapides (fréquence de l'ordre de la seconde). Mais bon, je suis d'accord : ça risque de ne pas concerner grand monde. Dans le pire des cas, ce ne sont que des widgets qui plantent.

Mais quand même, j'ai toujours une petite montée d'adrénaline avant ce genre de MAJ, alors si je peux éviter la crise cardiaque à une poignée d'utilisateurs, je le fais (il s'agissait pour moi du contrôleur de volume, ce qui a eut pour effet de mettre le volume à fond) :)

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 17:14
par oktoberfest
Ypnose a écrit :Merci monsieur. :chinois: En espérant, que ce sujet évite d'éventuels problèmes.
EDIT: Une petite question pour ceux qui ont mis à jour, /bin contient t'il toujours un symlink sh vers bash? Je demande ça parce que je ne vois pas de changement dans /etc/shells sur le git (et si il n'y a plus de lien, ça ne m'arrange pas trop).
sh reste un lien vers bash. Les détracteurs du '/usr merge' (le petit nom donné à toutes ces histoires de /lib, /bin, /sbin qui pointent vers /usr/lib, /usr/bin et /usr/sbin) pourront dire que l'appel à /bin/sh est vachement lent comparé à /usr/bin/bash car le système doit suivre deux liens symboliques pour accéder à l'exécutable...

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 17:18
par vlamy
oktoberfest a écrit : sh reste un lien vers bash. Les détracteurs du '/usr merge' (le petit nom donné à toutes ces histoires de /lib, /bin, /sbin qui pointent vers /usr/lib, /usr/bin et /usr/sbin) pourront dire que l'appel à /bin/sh est vachement lent comparé à /usr/bin/bash car le système doit suivre deux liens symboliques pour accéder à l'exécutable...
Oui mais si on s'habitue à mettre du shebang en « /usr/bin/bash » dans nos scripts « upstream », les debianistes vont encore gueuler :humour:

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 17:31
par Getalo
Bonjour,
en «préparation» de la maj, j’obtiens :

Code : Tout sélectionner

$ ~ -> pacman -Qqo /bin /sbin /usr/sbin | pacman -Qm -
dpkg 1.16.10-1

et il est dit :
La liste des paquets qui ne sont pas dans un dépôt et ayant besoin d’être fixés peut être produite en utilisant:
mon problème est que je ne sais pas ce que veut dire «être fixé». Si vous pouviez éclairer ma lanterne ... je vous en serais reconnaissant . :chinois:

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 17:44
par vlamy
Getalo a écrit :Bonjour,
en «préparation» de la maj, j’obtiens :

Code : Tout sélectionner

$ ~ -> pacman -Qqo /bin /sbin /usr/sbin | pacman -Qm -
dpkg 1.16.10-1

et il est dit :
La liste des paquets qui ne sont pas dans un dépôt et ayant besoin d’être fixés peut être produite en utilisant:
mon problème est que je ne sais pas ce que veut dire «être fixé». Si vous pouviez éclairer ma lanterne ... je vous en serais reconnaissant . :chinois:
Je sais que je vais me faire engueuler, mais c'est un peu mon rôle d'utilisateur lambda de dire des conneries aussi :

Pour moi « fixer » ne veut pas dire grand chose, si ce n'est re-packager correctement (comment ça tu ne veux pas repackager dpkg?).
Une solution sale (c'est ma spécialité) consiste à désinstaller, puis ré-installer le paquet après la MAJ du système. Ça marche puisque la MAJ de « filesystem » crée un lien « /bin » vers « /usr/bin » (Archlinux c'est bien fait et c'est pour ça qu'on l'aime).

Je le dis juste pour que les gens compétents te donnent une meilleure solution. Ça m'étonnerais que tuxce approuve ma solution, et je suis sûr qu'il en a une meilleure (s'il l'a donné, je l'ai pas trouvé) :copain:

PS : Je m'excuse auprès de ceux que ma bêtise fait bondir, mais je pense qu'elle est assez représentative de la communauté d'utilisateurs, alors je ne me tais pas dans l'intérêt de la communauté.

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 17:49
par FoolEcho
@Getalo: Que tout fichier de ce paquet contenu dans /bin, /sbin et/ou /usr/sbin doit être déplacé dans /usr/bin/. Pour ça, soit tu le fais directement, manuellement, soit tu adaptes le PKGBUILD pour en tenir compte (ou tu le signales au mainteneur du paquet pour qu'il le fasse, si ce n'est déjà fait). Si tu le fais directement, ça ne sera pas «propre» et tu devras alors forcer la mise à jour de ce paquet lorsque le mainteneur aura fait le changement (ou désinstaller/installer de nouveau). Bon, après spécifiquement, as-tu besoin de dpkg ? :wink:

@vlamy: fixer est le terme. Ou réparer, corriger. Pas sûr que ça soit plus utile, hein ? :mrgreen:

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 18:07
par Getalo
Merci pour les réponses,
alors j'ai ceci :

Code : Tout sélectionner

 sudo pacman -Qo dpkg
[sudo] password for rene: 
/usr/bin/dpkg appartient à dpkg 1.16.10-1
donc apparemment j'ai tout bon, il est déjà dans /usr/bin. À vrai dire, j'ai dû l'installer comme dépendance, mais je ne me souviens plus de quel paquet. Juste je me demande si j'en ai vraiment besoin !!??

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 18:13
par viperpaulo
Perso la màj de bash a planté mais ne m'a sorti aucun message d'erreur, je n'avais plus accès à aucune console (les consoles en cours se sont plantées).
Impossible de chrooter du coup, j'ai donc utilisé pacstrap, installé filesystem, puis réinstallé bash (dans cet ordre, ça ne passait pas sinon). Tout est rentré dans l'ordre mais c'est au cas où ça arrive à quelqu'un d'autre...

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 18:15
par FoolEcho
Getalo a écrit :donc apparemment j'ai tout bon, il est déjà dans /usr/bin.
Non. Il est question de /bin, sbin/ et /usr/sbin.

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 18:22
par Getalo
Ouh la la !
Bon je vais changer de lunettes !! Je le désinstalle.
Merci vlamy et grand merci FoolEcho. :chinois:

Voilà la màj s'est bien passée ...

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 20:29
par nicollivier
Bonsoir tout le monde.

Avant de faire ma mise à jour j'ai bien lu l'annonce, mais je n'avais pas bien compris le terme "fixé".
Malheureusement je n'ai pas cherché ce post avant de faire la mise à jour, car maintenant je n'ai plus de console :-\
Les deux premières commandes se sont bien passées, pas la dernière

Code : Tout sélectionner

# pacman -Syu --ignore filesystem,bash
# pacman -S bash
# pacman -Su
Je ne comprends le message de @viperpaulo pour récupérer la console.
Est-ce quelqu'un pourrait m'aider?

Merci

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 20:52
par oktoberfest
Ce que dit @viperpaulo, c'est :
- démarrer sur un live-cd/usr de arch
- monter ta partition système (sur /mnt par exemple)
- faire un :

Code : Tout sélectionner

# pacstrap /mnt bash
# pacstrap /mnt filesystem
- démonter /mnt et rebooter sur ton disque dur.

EDIT : inversion des commandes suite à la judicieuse remarque de @tuxce

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 22:28
par nicollivier
Merci pour cette réponse.

J'ai essayé avec le live-usb arch, cependant comme il n'y a pas d'interface graphique je suis vite perdu, de plus il faut une connexion internet pour installer des mises à jour et là également via la console je ne sais pas me connecter en wifi.

Après j'ai essayé avec kubuntu, mais là c'est la commande "pacstrap" qu'il ne connait pas, ce qui est normal je pense.
Est-ce que par hasard quelqu'un connaitrait une autre méthode?

Merci

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 22:35
par hopimet
Avec le live d'Arch, ça ne marche pas si tu te connectes en filaire (plutôt qu'en wifi) ?

Sinon avec Kubuntu, effectivement ça n'ira pas...

Re: [filesystem] Mise à jour importante

Publié : lun. 03 juin 2013, 23:02
par viperpaulo
Pour la connexion wifi, il y a wifi-menu, avec un peu de chance ta carte est reconnue directement...
Sinon, ethernet / connexion usb à un smartphone / télécharger les paquets sur une clé usb et les installer sans connexion, il y a pas mal d'alternatives.