2012-09-11 11 views
133

Próbowałem zainstalować twitter altanę na moim Macu, a jakomenda altana Nie znaleziono

npm install bower -g 

Potem próbowałem bower --help, a wyjście było bower command not found. Dlaczego?

+2

Co to jest wyjście z 'npm install'? Czy to się nie udało? Czy zainstalował altanę w jakimś miejscu, a nie w "PATH"? – chesles

+0

możliwy duplikat ["polecenia nie znaleziono" po instalacji] (http://stackoverflow.com/questions/15846076/command-not-found-after-installation) –

Odpowiedz

317

Podobnie jak w tej kwestii (npm global path prefix) Wszystko co potrzebne jest, aby ustawić właściwą npm prefix.

$ npm config set prefix /usr/local 
$ npm install -g bower 

$ which bower 
>> /usr/local/bin/bower 

Następnie bower powinien znajdować się tylko w swoim $PATH.

+0

Chciałbym dodać, że nie jest to najodpowiedniejsza odpowiedź, jeśli pracujesz z wieloma projektami. Bower powinien być instalowany w 'node_modules'locally z' package.json', a nie globalnie, ponieważ różne projekty mogą używać różnych wersji (to jest cały punkt 'npm'). Prawdziwy problem polega na tym, że system nie jest w stanie znaleźć lokalnego pliku wykonywalnego bower. –

+0

@ BrunoFinger: Podczas instalowania altany do globalnego zasięgu ta odpowiedź nie rozwiązuje problemu.Jednak używanie lokalnych pakietów węzłów może być lepszym sposobem radzenia sobie z narzędziami specyficznymi dla projektu. –

51

Jestem prawie pewien, że właściwie nie zainstalujesz go poprawnie. Ponieważ staramy się go zainstalować na całym świecie, trzeba będzie uruchomić go z sudo:

sudo npm install -g bower

+0

Mój nie działał, dopóki nie dodałem -g – AliBZ

+3

To jest jak należy zainstalować altanę, w przeciwnym razie zostanie ona zainstalowana w folderze, w którym wykonano polecenie. -g oznacza globalny, a także tworzy wymagane łącza dla modułów, które mogą być wykonywane jako polecenia systemowe, altana, grunt-cli, a nawet npm są tego oczywistymi przykładami. –

+0

Nie instaluj z sudo! Po prostu użyj lekarza zaparzającego i przygotuj poprawki, które zaleci lekarz, a wtedy nie będziesz musiał używać sudo! – djangofan

3

Okazało się, że to NIE problem altan, chociaż pojawił się dla mnie z altaną.

Wydaje się, że jest to problem związany z węzłem. Jeśli plik znajduje się w ścieżce, ale ma ustawiony bit setuid/setgid, który go nie znajdzie.

Oto pliki z ustawionym bitem s: (unix "który" znajdzie go bez żadnych problemów).

ls -al/usr/local/bin -rwxrwsr-- 110 korzeń NMT 5535636 17 lipca 2012 git

Oto węzłów, które próbują:

> which.sync('git') 
Error: not found: git 

I zmień uprawnienia (chomd 755 git). Teraz węzeł - który może go znaleźć.

> which.sync('git') 
'/usr/local/bin/git' 

Mam nadzieję, że to pomoże.

1

Używam menedżera wersji węzła. Otrzymałem ten komunikat o błędzie, ponieważ przełączyłem się na inną wersję węzła. Kiedy przełączyłem się z powrotem do wersji węzła, w której zainstalowałem altanę, ten błąd zniknął. W moim przypadku komendą było nvm use stable