Quelle que soit la commande que j'essaie j'obtiens le message suivant :
Code : Tout sélectionner
pacman: error while loading shared libraries: libarchive.so.1: cannot open shared object file: No such file or directory
Code : Tout sélectionner
pacman: error while loading shared libraries: libarchive.so.1: cannot open shared object file: No such file or directory
Code : Tout sélectionner
ln -s /usr/lib/libarchive.so.1 $(slocate libarchive | grep so$)
Code : Tout sélectionner
pacman-static -S libarchive
Non, si ça peut te rassurer, la doc de pacman ne mentionne pas l'existence de pacman-static. Je le connais parcequ'il est utilisé pour faire une installation en chroot, et aussi parceque je me suis retrouvé coincé un jour après une mise à jour catastrophique de glibc où seul pacman-static pouvait me sortir de làgalactose a écrit :Hey trop bien ça wain ! Merci du tuyau C'est marqué dans le man de pacman ?
Ca veut dire quoi ça ?vincentxavier a écrit :Code : Tout sélectionner
$(slocate libarchive | grep so$)
J'aime bien les devinettes quand je connais une partie de la réponse, je vais essayer de jouer.galactose a écrit :Ca veut dire quoi ça ?vincentxavier a écrit :Code : Tout sélectionner
$(slocate libarchive | grep so$)
Code : Tout sélectionner
ln -s /path/file /otherpath/
$(machin) ou `machin` exécute et renvoie la sortie de la fonction machin. La ce résultat est passé comme second argument de ln via un tube (|) qui redirige la sortie standard de la commande de droite vers l'entrée standard de la commande de gauche. 'slocate libarchive' permet de localiser tout les fichiers dont le nom contient "libarchive". Le résultat de cette commande est filtré avec grep pour ne garder que ce qui finit par .so (*.so$)mélodie a écrit :J'aime bien les devinettes quand je connais une partie de la réponse, je vais essayer de jouer.galactose a écrit :Ca veut dire quoi ça ?vincentxavier a écrit :Code : Tout sélectionner
$(slocate libarchive | grep so$)
$ veut dire 'argument'.
tout ce qui est entre les parenthèses c'est l'argument.
slocate est invoqué pour chercher sur tout le disque dur.
(vincentxavier, est-ce que ce n'est pas un peu osé ça si il y a des autres GnuLinux installés et montés ? un "find / -name 'name'" voir un "find /usr/lib -name 'name'" ne serait-il pas plus précis ?).
Le tube dit quelque chose comme : avec le ou les fichiers nommés libarchive que slocate aura affiché, grep produira/sélectionnera celui qui contient la chaîne 'so', car à gauche d'un tube '|' on affiche des données et à droite on produit... quelque chose comme ça.
Au total sa commande dit de lier symboliquement (ln -s) à l'argument '$' défini par le résultat de la commande entre parenthèses, c'est à dire, lier le fichier /usr/lib/libarchive.so.1 à n'importe quel fichier nommé libarchive et comportant la chaîne de caractères 'so'.
Alors, est-ce que j'ai gagné ?
PS: avant de lancer locate ou slocate, ça peut être utile de lancer en root updatedb.