Zainstalowałem node js i npm przez apt-get install i wszystkie zależności, a następnie zainstalowałem browserify
npm install browserify -g
przechodzi przez proces i wygląda na to, że został poprawnie zainstalowany, ale kiedy próbuję zrobić prosty pakiet zgodnie z tym przewodnikiem
Wyskakuje mi błąd:
/ usr / bin / env: node: Nie ma takiego pliku lub katalogu
javascript
node.js
browserify
Eduardo Dennis
źródło
źródło
Odpowiedzi:
Niektóre dystrybucje Linuksa instalują nodejs nie jako plik wykonywalny „węzła”, ale jako plik wykonywalny „nodejs”.
W tym przypadku musisz ręcznie połączyć z „węzłem”, ponieważ wiele pakietów jest programowanych po pliku binarnym „węzeł”. Coś podobnego występuje również w przypadku „python2” niepowiązanego z „pythonem”.
W takim przypadku możesz zrobić proste łącze symboliczne. W przypadku dystrybucji Linuksa, które instalują pliki binarne,
/usr/bin
możesz to zrobićźródło
/usb/sbin/node
jest to węzeł ax24 (niezwiązany z nodejs). Tylko symboliczne powiązanie aby/usr/bin/node
nie zadziała, ponieważ/usr/sbin/node
jest na pierwszym miejscu w$PATH
update-alternatives
. zobacz moją odpowiedź tutaj stackoverflow.com/a/24592328/454615update-alternatives
. istnieje w takich właśnie sytuacjach.Nowa odpowiedź:
Stara odpowiedź:
Wszelkie rozmowy o tworzeniu dowiązań symbolicznych lub instalowaniu jakiegoś innego pakietu węzłów są fałszywe i nie do przyjęcia.
Prawidłowym sposobem rozwiązania tego problemu jest:
update-alternatives
aby wskazać, za który plik binarny nodejs jest odpowiedzialny#!/usr/bin/env node
Tak jak to:
sudo apt-get install nodejs sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100
Teraz staje się to trwałe w przypadku aktualizacji pakietów, aktualizacji dystrybucji i tak dalej.
źródło
Biegnij
apt-get install nodejs-legacy
.Niektóre dystrybucje Linuksa zmieniły nazwę binarną node.js, czyniąc ją niekompatybilną z wieloma pakietami node.js. Pakiet
nodejs-legacy
zawiera łącze symboliczne, aby rozwiązać ten problem.źródło
/usb/sbin/node
jest to węzeł ax24 (niezwiązany z nodejs). Tylko symboliczne powiązanie aby/usr/bin/node
nie zadziała, ponieważ/usr/sbin/node
jest na pierwszym miejscu w$PATH
Możesz także zainstalować Nodejs za pomocą NVM lub Nodejs Version Manager . Korzystanie z menedżera wersji ma wiele zalet . Jednym z nich jest to, że nie musisz się martwić tym problemem.
Instrukcje:
Po zainstalowaniu wstępnie wymaganych pakietów możesz ściągnąć skrypt instalacyjny nvm ze strony projektu GitHub. Numer wersji może być inny, ale generalnie można ją pobrać i zainstalować przy użyciu następującej składni:
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
Spowoduje to pobranie skryptu i uruchomienie go. Zainstaluje oprogramowanie w podkatalogu twojego katalogu domowego pod adresem
~/.nvm
. Doda również niezbędne wiersze do~/.profile
pliku, aby użyć pliku.Aby uzyskać dostęp do funkcji nvm, musisz się wylogować i zalogować ponownie lub możesz pobrać plik ~ / .profile, aby Twoja bieżąca sesja wiedziała o zmianach:
Po zainstalowaniu nvm możesz zainstalować izolowane wersje Node.js.
Aby dowiedzieć się, jakie wersje Node.js są dostępne do instalacji, możesz wpisać:
nvm ls-remote . . . v0.11.10 v0.11.11 v0.11.12 v0.11.13 v0.11.14
Jak widać, najnowsza wersja w momencie pisania tego tekstu to v0.11.14. Możesz to zainstalować wpisując:
nvm install 0.11.14
Zazwyczaj nvm przełączy się na najnowszą zainstalowaną wersję. Możesz wyraźnie powiedzieć nvm, aby używał wersji, którą właśnie pobraliśmy, wpisując:
nvm use 0.11.14
Gdy instalujesz Node.js przy użyciu nvm, plik wykonywalny nosi nazwę node. Możesz zobaczyć wersję aktualnie używaną przez powłokę, wpisując:
Kompletny samouczek można znaleźć tutaj
źródło
Tworzy to łącze symboliczne
/usr/bin/node -> nodejs
.Źródło: https://lists.debian.org/debian-devel-announce/2012/07/msg00002.html
źródło
Wydaje mi się, że ten sam problem, kiedy buduję atom w Linuksie.
Napraw moje pytanie. Mam nadzieję, że jest dla ciebie pomocne.
źródło
Jeśli nie chcesz korzystać z linku symbolicznego, możesz to zrobić. działa w ubuntu
#!/usr/local/bin/node --harmony
Znacznik harmonii jest przeznaczony dla nowej harmonii ECMAscript
źródło
uruchom polecenie,
which node
wynik będzie coś/home/moh/.nvm/versions/node/v8.9.4/bin/node
Skopiuj ścieżkę, którą masz powyżej, a następnie uruchom polecenie w kroku 3.
ln -s /home/moh/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node
źródło
Musisz nazywać „nodejs”, a nie „node”. Aby to sprawdzić, wpisz
node -v
w powłoce: jeśli nic nie zostanie znalezione, spróbujnodejs -v
. Jeśli wyświetla numer wersji, to polecenie, którego powinieneś użyć, to,nodejs
a nienode
. Dlatego musisz zmienić wywołanie browserify w swoim skrypcie znode
nanodejs
(jak pokazano poniżej): replace#!/usr/bin/env node
z
#!/usr/bin/env nodejs
Być może będziesz musiał otworzyć skrypt jako superużytkownik.
źródło