Próbuję zainstalować node.js przez Homebrew. Niestety pojawia się ten błąd:
➜ ~ brew install node
==> Downloading http://nodejs.org/dist/v0.8.10/node-v0.8.10.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/node/0.8.10
==> make install
==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
/usr/local/share/npm/bin
Warning: Could not link node. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link node'
==> Summary
/usr/local/Cellar/node/0.8.10: 856 files, 13M, built in 103 seconds
Więc próbuję ręcznie połączyć węzeł ...
➜ ~ brew link node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...
Error: Could not symlink file: /usr/local/Cellar/node/0.8.10/lib/node_modules/npm/scripts/relocate.sh
Target /usr/local/lib/node_modules/npm/scripts/relocate.sh already exists. You may need to delete it.
To force the link and delete this file, do:
brew link -f formula_name
To list all files that would be deleted:
brew link -n formula_name
Bez powodzenia, więc próbuję na siłę połączyć węzeł ...
➜ ~ brew link -f node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...
Error: Permission denied - /usr/local/lib/dtrace/node.d
Nie jestem zaznajomiony z dtrace pod żadnym względem i boję się zepsuć uprawnienia, więc spróbowałem sudo ..
➜ ~ git:(master) sudo brew link -f node
Password:
Error: Cowardly refusing to `sudo brew link'
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.
Próbowałem odinstalować węzeł przez brew uninstall node
i ponawiać instalację bez powodzenia.
Odpowiedzi:
Pakiet homebrew dla node.js zawiera teraz ponownie npm, więc zdarzyło mi się to, gdy przegapiłem komunikat pakietu homebrew o usunięciu najpierw wersji samodzielnej.
Zakładając, że tak jak ja, już zepsułeś węzeł / npm, próbując uaktualnić, zanim się o tym
npm uninstall npm -g
dowiesz, możesz,rm -rf /usr/local/lib/node_modules/npm
a potembrew link node
. Spowoduje to usunięcie samodzielnego, samodzielnie hostowanego pakietu npm (zamiast tego, który chciałby zainstalować) i umożliwia tworzenie linków symbolicznych do dołączonego pakietu z Cellar.źródło
Używam Mac OS X Mavericks. Próbowałem zainstalować węzeł 0.10.25 i górna odpowiedź nie działa dla mnie.
natevw mówi,
rm -rf /usr/local/lib/node_modules/npm
ale jeśli uprawnienia/usr/local/lib/node_modules
wyglądają tak:wtedy brew nie będzie w stanie utworzyć swojego dowiązania symbolicznego npm w tym katalogu. Oto moje rozwiązanie:
Krok 1: Zaktualizuj Homebrew
Krok 2: Usuń węzeł / npm z każdego miejsca w systemie
Niektóre z tych poleceń nie są konieczne, w zależności od tego, jak w przeszłości instalowałeś node / npm.
Uwaga: Miałem zbłąkane pliki węzłów, które znalazłem uruchamiając
brew -v link node
(co dało mi szczegółowe wyniki błędów łączenia, na które narzekał brew). Może być konieczne:Krok 3: Otwórz nowy terminal i zainstaluj węzeł
źródło
whoami
/ usr / local Saucewystarczyłoby, jak wspomniano w rozwiązywaniu problemów z witryną parzenia
https://github.com/Homebrew/homebrew/wiki/troubleshooting
źródło
sudo chmod -R g+w /usr/local
(chociaż szczerze, oboje mnie przerażają)chgrp
polecenia.brew doctor
, ale wolęsudo su
, wykonaj polecenia, a następnie zamknij terminalPrawdopodobnie zainstalowałeś już starszą wersję node.js przy użyciu innej metody, więc musisz ręcznie usunąć pliki, które stają na drodze brew.
Zrób
brew link -n node
i ręcznie usuń te pliki i katalogi będące w konflikcie, a następnie spróbujbrew link node
ponownie.źródło
aspell
. Jak znaleźć pliki i katalogi będące w konflikcie?Jestem trochę spóźniony, to, co mi zadziałało, to:
Po tej sekwencji wszystko się udało
źródło
sudo chmod 777
To nigdy nie jest właściwe rozwiązanie, jeśli masz problemy z uprawnieniami, zbadaj ich przyczyny i ustaw minimalny poziom uprawnień wymagany do wykonania pracy. To polecenie pozwoli na modyfikację pliku przez każdego w systemie.brew link node
po raz pierwszy nie miałem problemów z trwałą trwałością .Spróbuj tego. Dostałem z innego odniesienia i pracował dla mnie.
źródło
brew postinstall node
był biletbrew link --overwrite node
a ostateczna komenda, to wszystko wydaje się do pracy. Ostatnie sugerowane polecenie nie działa z powodu `` sudo. Zamiast tego użyjbrew postinstall node
Miałem ten sam problem po przeniesieniu wszystkich aplikacji ze starego komputera Mac na nowy.
Rozwiązanie znalazłem uruchamiając
brew doctor
:Po biegu
brew prune
Homebrew wreszcie wraca na właściwe tory :)źródło
Mój problem miał nieco inne rozwiązanie. Katalog, w którym brew chciał utworzyć dowiązania symboliczne, nie był własnością bieżącego użytkownika.
ls -la /usr/local/bin/lib/node | grep node
wydany:U mnie naprawiło to:
ps.
$(users)
zostanie rozszerzony na twoją nazwę użytkownika, zrobiłem trochę co w mojej mocy, aby pomóc leniwym kopiarkom;)źródło
thx @suweller.
Naprawiłem problem:
Miałem ten sam problem co Sueller:
więc naprawiłem ten problem przez:
po naprawieniu tego problemu otrzymałem kolejny:
Więc usunąłem node.d przez:
dostałem inny błąd uprawnień:
i naprawiłem to:
i wreszcie wszystko działało:
źródło
Większość problemów z instalacją brew w węźle jest spowodowana błędami uprawnień lub wcześniejszą instalacją węzła, a następnie próbą zainstalowania go przez brew. Rozwiązanie, które w końcu zadziałało, to:
OSTRZEŻENIE: Spowoduje to odinstalowanie nodejs (wiele wersji) z ostrożnością:
Usuń węzeł za pomocą naparu:
zaparz węzeł deinstalacyjny
również siłą:
brew odinstaluj węzeł --force
Aby użyć skryptu Źródło: Usuń węzeł :
curl -O https://raw.githubusercontent.com/DomT4/scripts/master/OSX_Node_Removal/terminatenode.sh
Następnie:
Następnie:
Następnie wykonaj następujące polecenie:
chown $ USER / usr / local
Następnie wykonaj aktualizację naparu (rób to, aż wszystkie rzeczy zostaną zaktualizowane):
napar aktualizacja
Wyczyść napar i ponownie uruchom aktualizację (może być zbędna) i uruchom lekarza, aby upewnić się, że wszystko jest na swoim miejscu:
czyszczenie naparu; napar aktualizacja; zaparzać lekarza
I na koniec zainstaluj węzeł przez brew (verbose):
brew install -v node
źródło
ostateczna odpowiedź: zmień właściciela tego katalogu na kimkolwiek jesteś
co jest również zalecane przez napar, jeśli prowadzisz warzelnię
źródło
Otrzymałem błąd podczas instalacji, która nie mogła połączyć węzła i / usr / local / include nie jest zapisywalna
Poniższe rozwiązanie zadziałało dla mnie: - Najpierw utwórz folder dołączania, pamiętaj, że wymaga to uprawnień sudo
źródło
Udało mi się również zepsuć mój NPM i zainstalować pakiety między tymi wersjami Homebrew i bez względu na to, ile razy odłączałem / łączyłem i odinstalowałem / zainstalowałem węzeł, nadal nie działał.
Okazuje się, że musisz usunąć NPM ze ścieżki, inaczej Homebrew go nie zainstaluje: https://github.com/mxcl/homebrew/blob/master/Library/Formula/node.rb#L117
Mam nadzieję, że pomoże to komuś z tym samym problemem i zaoszczędzi tej godziny, którą musiałem poświęcić na szukanie problemu ...
źródło
przez Finder, Usuń ten plik:
w terminalu:
następnie:
źródło
brew link --overwrite --dry-run node
, widzę błądNo such keg: /usr/local/Cellar/node
. czego mi brakuje?Wypróbowałem wszystkie metody i żadna z nich nie działa. Najłatwiej jest przeinstalować węzeł z https://nodejs.org/en/download/
Po prostu pobierz
pkg
i zainstaluj go. Teraz mam pracęnpm
inode
znowu.źródło
Nie wiem, czy to dobry pomysł, czy nie: po wypróbowaniu wszystkich innych rozwiązań bez powodzenia zmieniłem nazwę / usr / local / lib / dtrace, połączony węzeł i ponownie zmieniłem nazwę katalogu. Następnie węzeł działał zgodnie z oczekiwaniami.
źródło
Przez jakiś czas z tym walczyłem. (dla mnie "npm uninstall npm -g" nic nie dało)
Próbowałem wielu rzeczy:
Nadal miałem pewne problemy i otrzymywałem błędy, gdy próbowałem połączyć pliki węzłów
Wreszcie spróbowałem
Wyglądało na to, że to naprawiło. (nadpisuje wszystkie kolidujące pliki, a także łączy węzeł i npm)
Mam nadzieję że to pomoże
źródło
Całkowicie odinstalowałem napar i zacząłem od nowa, tylko po to, aby ponownie znaleźć ten sam problem.
Wydaje się, że Brew działa poprzez dowiązanie symboliczne do wymaganych plików binarnych w systemie, gdzie inne metody instalacji zwykle kopiowałyby pliki.
Znalazłem tutaj istniejący zestaw bibliotek węzłów:
/usr/local/include/node
Po pewnym drapaniu się po głowie przypomniałem sobie, jak zainstalowałem node w tej starej wersji i nie było to przez brew.
Ręcznie usunąłem cały ten folder i pomyślnie połączyłem npm.
To wyjaśniałoby, dlaczego użycie funkcji deinstalacji naparu lub nawet odinstalowania samego naparu nie przyniosło żadnego efektu.
Najwyżej sklasyfikowana odpowiedź przedstawia to bardzo prosto, ale pomyślałem, że dodam moje spostrzeżenia dotyczące tego, dlaczego jest to konieczne.
Domyślam się, że kilka problemów z innymi pakietami warzenia może być spowodowanych przez stare, nieparzone wystąpienia pakietów, które przeszkadzają.
źródło
Niszczyło mi głowę w węźle dowiązania symbolicznego… i wydawało się, że nic nie działa… ale w końcu zadziałało ustawienie odpowiednich uprawnień. To „sudo chown -R $ (whoami) / usr / local” wykonało pracę za mnie.
źródło
Naprawiłem to w El Capitan za pomocą następującego polecenia. Szczerze mówiąc, nie mam pojęcia, co to robi, ale pomyślałem, że podzielę się, ponieważ rozwiązało mój problem.
źródło
Musisz ręcznie usunąć pakiet npm.
pierwszy węzeł odłączenia:
brew link -n node
usuń folder npm:
rm -R /usr/local/Cellar/node/0.8.10/lib/node_modules/npm
połącz ponownie:
brew link node
będzie miękki link do nowej lokalizacji npm
źródło