Jak mogę obniżyć wersję węzła lub zainstalować określoną poprzednią wersję za pomocą homebrew?

Używam brew. Mam zainstalowanego nodea, używam brew. Chcę użyć wcześniejszej wersji node.

Online , Znajduję instrukcje takie jak , na przykład :

cd /usr/local/Library/Formula brew remove node --force brew versions node git checkout 83988e4 /usr/local/Library/Formula/node.rb brew install node 

Problem, który mam z tym jest taki, że brew nie wydaje się mieć versions podkomenda:

$ brew versions node Error: Unknown command: versions $ brew --version 0.9.5 

Jestem nowy w przygotowaniu. Czy muszę w jakiś sposób włączyć komendę versions? Zamiast tego używam innej komendy? Czy jest zupełnie inna metoda, którą powinienem wypróbować?

Używam systemu OS X Yosemite (10.10.1); brew 0.9.5.

Komentarze

  • Którą wersję node.js chcesz zainstalować?
  • Mój szef mówi mi 10,32. Myślę, że ma na myśli 0,10,32. Mam teraz zainstalowaną wersję 0.12.0.
  • W tej chwili czytelnik powinien przejść do tej odpowiedzi: stackoverflow.com/a/4158763/48136

Odpowiedź

Obecnie, jeśli chcesz zainstalować inną wersję node robisz to w ten sposób:

Najpierw wyszukaj żądany pakiet:

brew search node 

To może dać ci obserwuj wyniki:

heroku/brew/heroku-node ✔ llnode [email protected] nodebrew leafnode node ✔ [email protected] .... 

A następnie zainstaluj żądaną wersję:

brew install [email protected] 

Pamiętaj też że możesz zainstalować więcej niż 1 pakiet węzłów w tym samym czasie, ale nie możesz mieć ich dostępnych w tym samym czasie. Więc jeśli masz już zainstalowany najnowszy / ogólny pakiet node, musisz go najpierw odłączyć:

brew unlink node 

I wtedy możesz połączyć inną wersję:

brew link [email protected] 

W przypadku niektórych starszych wersji węzłów (które są dostępne tylko w beczkach) może być wymagane połączenie ich z --force i --overwrite opcje:

brew link --force --overwrite [email protected] 

Komentarze

  • najlepsza odpowiedź tutaj.
  • Pamiętaj, że może zostać wyświetlony monit o ” odłączenie ” istniejąca wersja węzła, zanim będzie można pomyślnie zainstalować jedną z pozostałych wymienionych wersji (zgodnie z instrukcjami powyżej). ” odłączając „, pozostawiasz drugą wersję fizycznie zainstalowaną w systemie, ale ta, którą zainstalujesz (po odłączeniu), stanie się ” domyślna ” wersja w Twoim systemie. Na przykład może być konieczne wpisanie brew unlink node, jeśli zainstalowano brew install node. Następnie możesz wykonać brew install homebrew/versions/node4-lts (co powinieneś zobaczyć jako wersję wymienioną zgodnie z instrukcjami w tej odpowiedzi).
  • Zamiast homebrew/versions/node06 it ' s teraz homebrew/versions/node6-lts. Zrób także brew link node6-lts.
  • Zaktualizowałem ' swoją odpowiedź, aby odzwierciedlić najnowsze zmiany dotyczące naparu. Dzięki!
  • ale jak możemy zainstalować konkretną wersję, taką jak węzeł 8.2.1, używając brew?

Answer

Oto krok po kroku.

Aby zobaczyć aktualną wersję węzła

$ node --version 

Aby zobaczyć dostępne wersje węzłów

$ brew search node 

Aby odłączyć od bieżącej wersji

$ brew unlink node 

Zainstaluj dowolną wersję, np. 8

$ brew install [email protected] 

Aby połączyć zainstalowaną wersję

$ brew link [email protected] 

Aby zobaczyć bieżącą wersję węzła (ponownie)

$ node --version 

Komentarze

  • Tylko to, czego potrzebowałem
  • Jak rozwiązać ten problem? brew węzeł łącza @ 10 Ostrzeżenie: węzeł @ 10 jest tylko beczką i musi być połączony z –force Jeśli potrzebujesz aby mieć to oprogramowanie jako pierwsze w PATH, zamiast tego rozważ uruchomienie: echo ' export PATH = ” / usr / local / opt / node @ 10 / bin: $ PATH ' > > ~ / .bash_profile
  • nie ' t działa w systemie Mac OS 10.13.5, pojawia się błąd stackoverflow.com/questions/53043476/…
  • jak mogę zainstalować konkretną wersję węzła, mam zainstalowaną wersję węzła ” 10.17.0 ” za pomocą polecenia brew install node @ 10, ale muszę zainstalować ” 10.15.3 „.

Odpowiedź

Od tego PR na homebrew / wersje i ten PR do homebrew , odpowiedzi dotyczą brew tap homebrew/versions lub już nie działają.

Prawidłowa odpowiedź to teraz:

brew install [email protected]<version> 

Gdzie <version> to 0.10, 0.12, 4 itd. Na przykład, aby zainstalować Node.js v6 (od tego piśmie, najnowsza wersja LTS):

brew install [email protected] 

Może być konieczne uruchomienie brew update przed tymi poleceniami, aby upewnij się, że te nowe wersjonowane formuły są dostępne. Jeśli masz zainstalowaną inną wersję formuły node, musisz także najpierw uruchomić brew unlink node.

Komentarze

Answer

brew versions musi zostać zainstalowany w pewnym momencie po zainstalowaniu brew.

$ brew tap homebrew/boneyard 

Następnie możesz użyć polecenia brew versions zgodnie z instrukcjami.

Komentarze

  • homebrew/boneyard jest nieaktualny i zostanie zastąpiony przez github.com/Homebrew/homebrew-versions jako z marca 2015 r. Zainstaluj przez brew tap homebrew/versions.
  • Za pomocą homebrew/versions otrzymasz wersjonowaną nazwę pakietu: brew search node => leafnode node node010 node04 node06 node08 nodebrew .... Zrób więc

, a następniebrew link --overwrite node010, aby zainstalować wersję 0.10 Node.JS.

  • Może być również konieczne brew unlink node przed brew install node010
  • Odpowiedz

    Do Twojej wiadomości, jeśli poprzednio masz zainstalowaną starą wersję i nie „t uruchomiłeś brew cleanup (co usuwa starsze wersje), możesz przełączyć się na coś takiego jak brew switch node 5.7.0

    Wszystkie zainstalowane wersje węzła można wyświetlić, uruchamiając brew info node lub ls -l /usr/local/Cellar/node/

    Zobacz ściągawkę polecenia parzenia: http://ricostacruz.com/cheatsheets/homebrew.html

    Komentarze

    • Działa od 2017/12! Homebrew 1.4.0-17-gc912d26

    Odpowiedź

    Jest wiele odpowiedzi tutaj i w innych miejscach, powiedzmy, żeby używać wersji homebrew, ale daje to bardzo ograniczone opcje dla której wersji Node możesz zainstalować.

    Jest dużo łatwiejsze w użyciu NVM i pozwala ci bardzo łatwo przełączać się między wersjami.

    homebrew install nvm 

    Następnie postępuj zgodnie z instrukcjami zawartymi w zastrzeżeniach – mkdir ~/.nvm i dodaj dwie linie do swojego .bash_profile i source .bash_profile

    Następnie po prostu uruchom nvm install <version> dla wszystkich potrzebnych wersji. Następnie nvm use <version> do przełączenia.

    Komentarze

    • To nie jest akceptowana odpowiedź, ale jedyna taki, który działał dla mnie. Żałuję, że nie wypróbowałem tego jako pierwszego, ponieważ zaoszczędziłbym dużo czasu.

    Odpowiedź

    Jeśli potrzebujesz go specjalnie dla Node, możesz użyć nvm . Jest to bardzo wygodne, jeśli dużo pracujesz z Node.

    Komentarze

    • Według dokumentacji nvm brew i nvm nie są obsługiwanymi połączeniami. Skomentowałem to tutaj. github.com/angular/angular-cli/issues/… I ' Chciałbym wysłuchać historii wojennych na ten temat. Ponieważ pozornie wydaje mi się, że to działa, mimo że ' s ” nie jest obsługiwane ”

    Odpowiedz

    Preferowanym sposobem w świecie NodeJS jest użycie narzędzia n

    • Instalacja: npm install -g n
    • Zainstaluj węzeł 8.8.4 n 8.8.4
    • Wyświetl listę wszystkich dostępnych lokalnie wersji węzłów i wybierz jedną: n

    Wygląda na podobny do nvm, ale miałem problemy z nvm i n działało po wyjęciu z pudełka.

    Odpowiedź

    Możesz to zrobić bez homebrew.

    Możesz odinstalować, a następnie zainstalować węzeł ręcznie.

    Musisz pobrać aktualnie działającą wersję. Oto lista .

    Pobierz plik node-v {numer-twojej-aktualnej-wersji} .tar.gz, rozpakuj go i następnie przejdź do wiersza poleceń.

    cd node-v{your-current-version-number} ./configure make sudo make install 

    Aby go odinstalować sudo make uninstall

    Następnie pobierz wersję, którą chcesz zainstalować i wykonaj te same kroki powyżej.

    Z tego posta na blogu

    Komentarze

    • Daj +1 tej odpowiedzi.FWIW, udało mi się po prostu skopiować nieobrobiony folder bin/ do mojej PATH, aby to działało.
    • Co więcej, możesz pobrać stamtąd plik .pkg i kliknij go dwukrotnie, aby zainstalować.

    Odpowiedź

    Jeśli napotkałeś problemy z homebrew, aby zainstalować dowolną wersję węzeł, możesz po prostu pobrać plik .pkg dla OSX z https://nodejs.org/dist/[VERSION_YOU_NEED] . Pomaga mi to tylko w ponownej instalacji węzła

    Odpowiedź

    Pozwól, aby obraz miał wersję 0.12. *. Aby zainstalować ( downgrade) wersja 0.10 węzła wyrzuca napar w OSX, musisz:

    $ sudo brew tap homebrew-versions $ brew unlink node $ brew install https://raw.githubusercontent.com/Homebrew/homebrew-versions/master/node010.rb $ node -v 

    Lista wszystkich wersji węzłów to tutaj

    Odpowiedź

    https://nodejs.org/en/blog/release/

    Możesz przejść tutaj i zainstalować potrzebną wersję.

    Przed instalacją możesz uruchomić brew unlink node, aby odłączyć bieżącą wersję.

    Komentarze

    • Jaka byłaby korzyść z zrobienia tego w ten sposób, w przeciwieństwie do używając brew (jak opisuje kilka innych odpowiedzi) lub odinstalowując węzeł, a następnie ręcznie instalując go (jak opisano w odpowiedzi @ Terente-Ionut-Alexandru ')?
    • @ Wersje piwne JohnN są obecnie przestarzałe. Ich alternatywy nie są łatwe do zrozumienia. Poza tym jest to trochę omplex through brew, aby zainstalować dokładną wersję.
    • Odpowiedź @ Paweł-Gościcki ' (najwyżej oceniona, 140 głosów) wydaje się bardzo łatwa do zrozumienia i wcale nie jest skomplikowany – co pasuje do moich ostatnich doświadczeń z naparem i różnymi wersjami receptur. Chodzi mi o to, że Twoja odpowiedź nie ' wydaje się dodawać do czegokolwiek, co nie ' nie zostało już powiedziane w innych odpowiedziach – chyba że ' jest powodem do odłączenia + ręcznej instalacji zamiast odinstalowania + ręcznej instalacji, jak sugerował Terente?
    • @JohnN To oczywiście jest łatwe do zrozumienia. Ale będziesz ograniczony opcjami, które daje wyszukiwarka naparów. Np. jeśli chcesz dokładnie węzeł 4.4.6, ale napar zapewni tylko opcję node @ 4. Stąd.
    • Są, jak sądzę, 3 przyzwoite odpowiedzi na pytanie: (1) użyj brew, (2) użyj nvm oraz (3) odinstaluj i zainstaluj ręcznie. ' Próbuję cię do tego skłonić, to wyjaśnienie, dlaczego Twoja odpowiedź dodaje się do istniejących odpowiedzi. Dlaczego uważasz, że odłączenie + ręczna instalacja jest lepsze od istniejących odpowiedzi? W szczególności, dlaczego uważasz, że * odłączenie * + ręczna instalacja jest lepsze niż * odinstalowanie * + ręczna instalacja, jak sugeruje odpowiedź Terente '?

    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *