J'ai supprimé un lien symbolique critique - libc.so.6
. J'ai le fichier vers lequel il doit pointer, mais les commandes de base telles que ln
ou wget
ne fonctionneront plus en raison du lien manquant. Cependant, echo
ou d'autres fonctions intégrées de Bash fonctionnent.
Je cherche un moyen de recréer ce lien symbolique.
linux
centos6
symbolic-link
Sebas
la source
la source
echo
.cat
est désactivé ... en fait, tout était.cat
c'est un programme externe. La page de manuel Bash Builtin Commands contient des détails sur ce qui pourrait être disponible.Réponses:
vous pouvez utiliser ldconfig, il recrée le lien symbolique:
venez de le tester, comme vous le voyez.
la source
/lib/libc-2.12.so
dans l'exemple ci-dessus en/lib/foobar
. Eh bien, merde, pas plusmv
. Mais illdconfig -l /lib/foobar
est même assez intelligent pour/lib/libc.so.6
indiquer le fichier mal nommé . (Les arguments sont obligatoires, la valeur par défautldconfig
ignore les noms de fichiers qui ne commencent pas par "lib" et contiennent ".so".) À quel moment vous pouvezmv
le récupérer (oucp -p
si vous êtes paranoïaque / intelligent), puis exécutez àldconfig
nouveau pour nettoyer .CentOS 6 est généralement livré avec
busybox
un ensemble d'outils Unix liés statiquement, installé dans/sbin
. Vous pouvez l'exécuter comme ceci:la source
Définissez LD_PRELOAD pour précharger la bibliothèque appropriée. Je l'ai essayé avec libpthread et cela semble fonctionner:
la source
sln
sert exactement ce but: réparer les liens symboliques lorsque vous ne pouvez pas utiliser ln normal parce que vous avez cassé un lien symbolique essentiel. Pour citer sa page de manuel:la source
Vous pouvez définir une
LD_LIBRARY_PATH
variable pour inclure le répertoire où réellibc.so.6
est:Exécutez-le également
ldconfig
pour recréer les liens. Cela devrait faire fonctionner les commandes afin que vous puissiez ensuite utiliser lesln
commandes pour réparer votre système.Une autre façon serait de démarrer via LiveCD et de lier le fichier là-bas.
la source
Utilisez scp ou sftp pour copier une version liée statiquement de ln. Assurez-vous qu'il est exécutable. Ensuite, utilisez-le pour corriger le fichier.
la source