Lors de la création d'un lien symbolique, comment résoudre les «trop de niveaux de liens symboliques»?

15

J'essaie de créer un lien symbolique sur Ubuntu 10.04 ((Lucid Lynx)), il dit:

me@laptop:~/PHPUnit$ ls
assertions.php      LICENSE      PHPUnit           README.markdown
build.xml           package.xml  phpunit.bat       Tests
ChangeLog.markdown  phpunit      phpunit.xml.dist
me@laptop:~/PHPUnit$ ln -s phpunit /usr/bin/phpunit
ln: accessing `/usr/bin/phpunit': Too many levels of symbolic links

Et quand je le fais, /usr/bin$ ls php*je reçois juste:

php  php5  php-config  php-config5  phpize  phpize5

J'ai essayé de le créer avant, et je ne sais pas si j'exécute une mauvaise commande ...

user35538
la source
essayez de spécifier le chemin complet de phpunit
Heisenbug

Réponses:

30

Attention, en utilisant ln -s target /path/symlink, le targetsera interprété comme relatif au pathrépertoire (où le lien symbolique appartiendra). Votre commande créerait un lien symbolique qui pointe vers lui-même. Par conséquent, une boucle de recherche de chemin se produirait à chaque accès au lien symbolique.

Dans votre cas, il /usr/bin/phpunitexiste peut-être déjà et est en boucle automatique. Supprimez-le d'abord et changez votre commande en:

me@laptop:~/PHPUnit$ ln -s ~/PHPUnit/phpunit /usr/bin/phpunit

(L'utilisation d'un objectif absolu est probablement la meilleure ici)

Stéphane Gimenez
la source