W jaki sposób podczas rozwiązywania dowiązania symbolicznego „rozwiązywać zbyt wiele poziomów dowiązań symbolicznych”?

15

Próbuję utworzyć symboliczny link na Ubuntu 10.04 ((Lucid Lynx)), który mówi:

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

A kiedy to robię /usr/bin$ ls php*, dostaję:

php  php5  php-config  php-config5  phpize  phpize5

Próbowałem go wcześniej utworzyć i nie jestem pewien, czy uruchomię nieprawidłowe polecenie ...

użytkownik35538
źródło
spróbuj podać pełną ścieżkę phpunit
Heisenbug

Odpowiedzi:

30

Pamiętaj, że za pomocą ln -s target /path/symlinkThe targetbędą interpretowane jako względny do pathkatalogu (gdzie dowiązanie będzie należał). Twoje polecenie utworzy dowiązanie symboliczne, które wskazuje na siebie. Dlatego pętla wyszukiwania ścieżki pojawiałaby się przy każdym dostępie do dowiązania symbolicznego.

W twoim przypadku może /usr/bin/phpunitjuż istnieje i sam się zapętla. Najpierw usuń i zmień polecenie na:

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

(Użycie bezwzględnego celu jest prawdopodobnie najlepsze tutaj)

Stéphane Gimenez
źródło