Bagaimana cara menurunkan versi node atau menginstal versi sebelumnya yang spesifik menggunakan homebrew?


230

Saya menggunakan minuman. Saya telah menginstal node, menggunakan minuman. Saya ingin menggunakan versi node yang lebih lama.

Online, saya menemukan instruksi seperti , misalnya :

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

Masalah yang saya miliki dengan ini adalah bahwa brewtampaknya tidak memiliki perintah tambahan versions:

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

Saya baru membuat bir. Apakah saya perlu mengaktifkan versionssub perintah itu ? Haruskah saya menggunakan sub-perintah yang berbeda? Apakah ada metode yang sama sekali berbeda yang harus saya coba?

Saya menjalankan OS X Yosemite (10.10.1); minuman 0.9.5.


Versi node.js mana yang ingin Anda instal?
bmike

Bos saya memberi tahu saya 10.32. Saya kira maksudnya 0.10.32. Saya sudah menginstal 0.12.0 sekarang.
dave4420

Pada tanggal ini pembaca harus membuka jawaban ini: stackoverflow.com/a/4158763/48136
Brice

Jawaban:


354

Hari-hari ini jika Anda ingin menginstal versi lain dari nodeAnda melakukannya dengan cara ini:

Pencarian pertama untuk paket yang Anda inginkan:

brew search node

Ini mungkin memberi Anda hasil sebagai berikut:

heroku/brew/heroku-node ✔
llnode
node@10
nodebrew
leafnode
node ✔
node@8
....

Dan kemudian instal versi yang diinginkan:

brew install node@8

Juga ingat bahwa Anda dapat menginstal lebih dari 1 paket simpul pada saat yang sama, tetapi Anda tidak dapat memilikinya tersedia pada saat yang sama. Jadi jika Anda memiliki nodepaket generik terbaru yang sudah diinstal, Anda harus memutuskan tautannya terlebih dahulu:

brew unlink node

Dan kemudian Anda dapat menautkan versi yang berbeda:

brew link node@8

Untuk beberapa versi node yang lebih lama (yang hanya tong), mungkin diperlukan untuk menautkannya dengan opsi --forcedan --overwrite:

brew link --force --overwrite node@8

10
jawaban terbaik di sini.
chovy

3
Perhatikan bahwa Anda mungkin diminta untuk "membatalkan tautan" versi node yang ada sebelum Anda berhasil menginstal salah satu versi lain yang terdaftar (sesuai instruksi di atas). Dengan "membatalkan tautan" Anda meninggalkan versi lain yang terinstal secara fisik di sistem Anda, tetapi versi yang Anda instal (setelah dihapus tautannya) akan menjadi versi "default" di sistem Anda. Misalnya, Anda mungkin harus mengetik brew unlink nodejika sudah menginstal brew install node. Maka Anda bisa melakukannya brew install homebrew/versions/node4-lts(yang seharusnya Anda lihat sebagai versi yang tercantum sesuai instruksi dalam jawaban ini).
xmnboy

1
Alih-alih homebrew/versions/node06sekarang homebrew/versions/node6-lts. Juga brew link node6-lts.
akauppi

1
Saya telah memperbarui jawaban saya untuk mencerminkan perubahan minuman terbaru. Terima kasih!
Paweł Gościcki

2
tetapi bagaimana kita bisa menginstal versi spesifik seperti node 8.2.1 menggunakan brew?
Nadav B

39

Inilah langkah demi langkah.

Untuk melihat versi simpul Anda saat ini

$ node --version

Untuk melihat versi simpul yang tersedia

$ brew search node

Untuk memutuskan tautan dari versi saat ini

$ brew unlink node

Instal versi apa pun misalnya 8

$ brew install node@8

Untuk menautkan versi yang diinstal

$ brew link node@8

Untuk melihat versi simpul Anda saat ini (lagi)

$ node --version

Apa yang saya butuhkan
Brian Colavito

Bagaimana cara mengatasi masalah ini? brew link node @ 10 Peringatan: node @ 10 hanya tong dan harus dikaitkan dengan --force Jika Anda perlu memiliki perangkat lunak ini terlebih dahulu di PATH Anda, pertimbangkan menjalankan: echo 'export PATH = "/ usr / local / opt / node @ 10 / bin: $ PATH "'>> ~ / .bash_profile
vikramvi

tidak berfungsi pada Mac OS 10.13.5, mendapatkan galat stackoverflow.com/questions/53043476/...
vikramvi

15

Pada PR ini untuk homebrew / versi dan PR ini untuk homebrew , jawaban yang melibatkan brew tap homebrew/versionsatau *-ltspaket tidak lagi berfungsi.

Jawaban yang benar adalah sekarang:

brew install node@<version>

Dimana <version>adalah 0.10, 0.12, 4, dll Sebagai contoh, untuk menginstal Node.js v6 (seperti tulisan ini, yang terbaru versi LTS):

brew install node@6

Anda mungkin perlu menjalankan brew updatesebelum perintah ini untuk memastikan bahwa formula versi baru ini tersedia. Jika Anda memiliki versi lain dari noderumus yang diinstal, Anda juga harus menjalankannya brew unlink nodeterlebih dahulu.


3
tidak bekerja dengan Mac OS 10.13.5 stackoverflow.com/questions/53043476/...
vikramvi

11

brew versionsharus diinstal di beberapa titik setelah Anda menginstal brew.

$ brew tap homebrew/boneyard

Anda kemudian dapat menggunakan brew versionsperintah seperti yang diasumsikan oleh instruksi.


4
homebrew/boneyardsudah usang dan akan diganti dengan github.com/Homebrew/homebrew-versions pada Maret 2015. Instal via brew tap homebrew/versions.
Jakub Holý

12
Dengan homebrew/versionsAnda akan mendapatkan nama paket berversi: brew search node => leafnode node node010 node04 node06 node08 nodebrew .... Jadi jangan brew install node010diikuti brew link --overwrite node010untuk menginstal versi 0.10 Node.JS.
Jakub Holý

3
Anda mungkin juga perlu melakukannya brew unlink nodesebelum Andabrew install node010
chananelb

10

FYI, jika sebelumnya Anda telah menginstal versi lama dan belum berjalan brew cleanup(yang menghapus versi lama), Anda dapat beralih dengan sesuatu sepertibrew switch node 5.7.0

Semua versi node yang diinstal dapat didaftar dengan menjalankan brew info nodeatauls -l /usr/local/Cellar/node/

Lihat lembar cheat command brew: http://ricostacruz.com/cheatsheets/homebrew.html


Bekerja pada 2017/12! Homebrew 1.4.0-17-gc912d26
Jason Harrison

5

Jika Anda membutuhkannya hanya khusus untuk Node, Anda dapat menggunakannya nvm. Sangat nyaman jika Anda sering bekerja dengan Node.


Menurut nvm docs brew dan nvm bukan kombinasi yang didukung. Saya berkomentar tentang ini di sini. github.com/angular/angular-cli/issues/... Saya tertarik mendengar cerita perang apa pun tentang ini. Karena di permukaan saya sepertinya ini berfungsi walaupun faktanya "tidak didukung"
JGFMK

3

Anda bisa melakukannya tanpa homebrew.

Anda dapat menghapus dan menginstal simpul secara manual.

Anda harus mengunduh versi yang sedang berjalan. Berikut daftarnya .

Unduh node-v {your-current-version-number} .tar.gz, ekstrak lalu pergi ke baris perintah.

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

Untuk menghapus instalannya sudo make uninstall

Kemudian unduh versi yang ingin Anda instal dan ikuti langkah-langkah yang sama di atas.

Dari posting blog ini


Beri +1 jawaban ini. FWIW, saya hanya bisa menyalin bin/folder yang tidak diarsipkan ke PATH saya agar ini berfungsi.
shicholas

Lebih baik lagi, Anda dapat mengunduh file .pkg dari sana dan klik dua kali untuk menginstalnya.
Henrik N


3

Ada banyak jawaban di sini dan tempat-tempat lain yang mengatakan untuk menggunakan versi homebrew, tetapi itu memberi Anda pilihan yang sangat terbatas untuk versi Node mana yang dapat Anda instal.

Ini jauh lebih mudah untuk menggunakan NVM dan memungkinkan Anda untuk beralih antar versi dengan sangat mudah.

homebrew install nvm

Kemudian ikuti instruksi dalam peringatan - mkdir ~/.nvmdan tambahkan dua baris ke .bash_profiledansource .bash_profile

Kemudian jalankan saja nvm install <version>untuk semua versi yang Anda butuhkan. Lalu nvm use <version>untuk beralih.


Ini bukan jawaban yang diterima, tetapi itu satu-satunya yang bekerja untuk saya. Saya berharap saya sudah mencoba yang pertama ini, karena saya akan menghemat banyak waktu.
Alex

1

Mari kita bayangkan bahwa Anda memiliki versi 0.12. *. Untuk menginstal (menurunkan versi) versi 0.10 dari simpul yang melempar minuman di OSX, Anda harus:

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

Daftar semua versi simpul ada di sini


1

Cara yang disukai di dunia NodeJS menggunakan alat n

  • Instalasi: npm install -g n
  • Instal Node 8.8.4 n 8.8.4
  • Daftar semua versi simpul yang tersedia secara lokal dan pilih satu: n

Tampaknya mirip dengan nvm, tetapi saya memiliki masalah dengan nvm, dan nbekerja di luar kotak.


0

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

Anda dapat pergi ke sini dan menginstal versi yang Anda butuhkan.

Sebelum menginstal Anda mungkin ingin menjalankan brew unlink nodememutuskan tautan versi saat ini.


1
Apa keuntungan dari melakukannya dengan cara ini, dibandingkan dengan menggunakan minuman (seperti dijelaskan beberapa jawaban lainnya) atau menghapus instalan node dan kemudian menginstalnya secara manual (seperti yang dijelaskan oleh jawaban Terente-Ionut-Alexandru)?
John N

@JohnN versi minuman sudah tidak digunakan lagi sekarang. Alternatifnya tidak mudah dimengerti. Juga, agak rumit melalui pembuatan untuk menginstal versi yang tepat.
Anant Simran Singh

@ Paweł-Gościcki jawaban (nilai tertinggi, dengan 140 suara) tampaknya sangat mudah dimengerti, dan sama sekali tidak rumit - yang sesuai dengan pengalaman saya baru-baru ini dengan minuman dan versi formula yang berbeda. Maksud saya adalah bahwa jawaban Anda tampaknya tidak menambah apa pun yang belum dikatakan dalam jawaban lain - kecuali ada alasan untuk membatalkan tautan + menginstal secara manual daripada menghapus + menginstal secara manual, seperti yang disarankan Terente?
John N

@ JohnN Ofcourse itu, mudah dimengerti. Tetapi Anda akan dibatasi oleh opsi yang memberikan pencarian. Untuk misalnya. jika Anda ingin simpul 4.4.6 persis tetapi buatan hanya akan menyediakan opsi simpul @ 4. Karenanya.
Anant Simran Singh

Ada, saya pikir, 3 jawaban yang layak untuk pertanyaan: (1) gunakan minuman, (2) gunakan nvm, dan (3) hapus instalan dan instal secara manual. Yang ingin saya lakukan adalah menjelaskan mengapa jawaban Anda menambah jawaban yang ada ini. Mengapa Anda merasa bahwa membatalkan tautan + pemasangan secara manual lebih disukai daripada jawaban yang ada? Secara khusus, mengapa Anda merasa bahwa * membatalkan tautan * + menginstal secara manual lebih baik daripada * menghapus instalasi * + menginstal secara manual, seperti yang disarankan jawaban Terente?
John N
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.