Cách đề xuất để cài đặt brew, node.js, io.js, nvm, npm trên OS X là gì?


175

Tôi đang cố gắng sử dụng homebrew càng nhiều càng tốt. Cách đề xuất để cài đặt sau đây trên OS X là gì?

và hy vọng hỗ trợ phát triển cho:


9
Cần lưu ý rằng mặc dù bạn yêu cầu sử dụng homebrew. Không nên sử dụng homebrew để cài đặt nvm Từ github.com/creationix/nvm "Không hỗ trợ cài đặt homebrew. . "
Eric

Câu trả lời:


267
  1. Sử dụng homebrewcài đặt nvm:

    brew update
    brew install nvm
    source $(brew --prefix nvm)/nvm.sh

    Thêm lệnh cuối cùng đến .profile, .bashrchoặc .zshrctập tin để không chạy nó một lần nữa trên tất cả các thiết bị đầu cuối bắt đầu. Vì vậy, ví dụ để thêm nó vào .profilechạy:

    echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile

    Nếu bạn gặp sự cố với cài đặt nvmbằng cách sử dụng, brewbạn có thể cài đặt thủ công (xem tại đây )

  2. Sử dụng nvmcài đặt nodehoặc iojs(bạn có thể cài đặt bất kỳ phiên bản nào bạn muốn):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmđang vận chuyển với node(hoặc iojs), vì vậy nó sẽ có sẵn sau khi cài đặt node(hoặc iojs). Bạn có thể muốn nâng cấp nó lên phiên bản mới nhất:

    $ npm install -g npm@latest

    CẬP NHẬT Phiên bản trước là npm update -g npm. Cảm ơn @Metallica đã chỉ ra cách chính xác (nhìn vào phần bình luận dưới đây).

  4. Sử dụng npmcài đặt ionic:

    npm install -g ionic
  5. Điều gì về ngCordova: bạn có thể cài đặt nó bằng cách sử dụng npmhoặc bower. Tôi không biết biến thể nào phù hợp hơn với bạn, nó phụ thuộc vào trình quản lý gói bạn muốn sử dụng cho phía khách hàng. Vì vậy, tôi sẽ mô tả cả hai:

    1. Sử dụngnpm : Chuyển đến thư mục dự án của bạn và cài đặt ng-cordovatrong đó:

      npm install --save ng-cordova
    2. Sử dụngbower : Cài đặt bower:

       npm install -g bower

      Và sau đó vào thư mục dự án của bạn và cài đặt ngCordovavào đó:

       bower install --save ngCordova

PS

  1. Một số lệnh có thể yêu cầu đặc quyền siêu người dùng
  2. Biến thể ngắn của npm install some_modulenpm i some_module

10
Nếu bạn tự cập nhật npm, KHÔNG sử dụng lệnh cập nhật npm. Cách cập nhật được đề xuất để cập nhật npm là: npm install -g npm@latest(từ brew info nodetại đây )
Javad Sadeqzadeh 22/03/2015

10
Từ cài đặt brew nvm hiện tại: "Xin lưu ý rằng thượng nguồn đã yêu cầu chúng tôi thực hiện quản lý rõ ràng nvm thông qua Homebrew không được họ hỗ trợ ..." -> Vì vậy, có lẽ câu trả lời đúng là không sử dụng brew cho nvm / node.js / io .js.
s.Daniel

7
Tôi đã nhận được thông báo lỗi "nvm không tương thích với tùy chọn" tiền tố "cấu hình npm. theo trang web này ( github.com/creationix/nvm/issues/855#su-109279804 ), NVM không tương thích với Homebrew. Tôi "brew đã gỡ cài đặt nvm" và cài đặt nvm thông qua lệnh CURL và bây giờ thông báo lỗi đã biến mất.
YeeHaw1234

4
Tôi đã sử dụng nvm qua brew trong một thời gian nhưng cũng nhận được thông báo "ngược dòng ... rõ ràng ... không được hỗ trợ". Các tài liệu NVM nói rõ ràng "Không hỗ trợ cài đặt homebrew. Nếu bạn gặp vấn đề với nvm cài đặt homebrew, vui lòng gỡ cài đặt nó và cài đặt bằng hướng dẫn bên dưới, trước khi gửi vấn đề." Vì vậy, đây có lẽ không nên là câu trả lời được chấp nhận nữa. Tôi chỉ bắt đầu sử dụng n mà hoạt động.
whatsthatitspat

3
Phiên bản NVM hiện tại (v0.33.2) KHÔNG hỗ trợ cài đặt homebrew: Xem: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro

45

Cập nhật 2019: Sử dụng NVM để cài đặt nút, không phải Homebrew

Trong hầu hết các câu trả lời, cách khuyến nghị để cài đặt nvm là sử dụng Homebrew

Đừng làm thế

Tại trang Github cho nvm, nó được gọi rõ ràng:

Cài đặt homebrew không được hỗ trợ. Nếu bạn gặp vấn đề với nvm được cài đặt homebrew, vui lòng ủ gỡ cài đặt nó và cài đặt nó theo hướng dẫn bên dưới, trước khi gửi vấn đề.

Sử dụng phương pháp sau thay thế

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Tập lệnh sao chép kho lưu trữ nvm thành ~ / .nvm và thêm dòng nguồn vào hồ sơ của bạn (~ / .bash_profile, ~ / .zshrc, ~ / .profile hoặc ~ / .bashrc).

Và sau đó sử dụng nvm để cài đặt nút. Ví dụ để cài đặt phiên bản LTS mới nhất, hãy làm:

nvm install v8.11.1

Sạch sẽ và rắc rối miễn phí. Nó cũng sẽ đánh dấu đây là phiên bản nút mặc định của bạn, vì vậy bạn nên đặt tất cả


2
Tôi nghĩ bạn cũng có thể nvm install --ltsnhận được LTS mới nhất
skube

1
Cảm ơn bạn đã mang cái này lên, tôi đã đi xuống một cái hố thỏ khủng khiếp với nvm và homebrew và vừa mới xuất hiện ...
cssidy

Câu trả lời tốt! Sau khi đọc rất nhiều (cài đặt nút có thể là mỏ khai thác), tôi chỉ cần gỡ nút đã gỡ cài đặt, dọn sạch mọi thứ và sử dụng nvm để cài đặt nút trên Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt

13

Tôi đang sử dụng n (quản lý phiên bản nút)

Bạn có thể cài đặt nó theo hai cách

brew install n

hoặc là

npm install -g n

Bạn có thể chuyển đổi giữa các phiên bản khác nhau của nút và io. Đây là một ví dụ từ env hiện tại của tôi khi tôi gọi n mà không có params:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 

2
Bạn có thể thêm cách thứ ba để cài đặt không gây đau đớn và để lại tiện ích gỡ cài đặt tiện dụng nếu bạn cần - github.com/mkuity0/n-install Phương pháp này được đề xuất trong n docs tại github.com/tj/n
whatsthatitspat

1
Cũng nên đề cập rằng nếu bạn dự định chạy đồng thời các phiên bản nút khác nhau cho các dự án khác nhau (như trong 2 cửa sổ đầu cuối khác nhau) thì nvm là lựa chọn tốt hơn, vì nó chỉ chuyển các đường dẫn đến nút trong mỗi phiên.
Nilloc

10

Tôi đến siêu muộn nhưng tôi không thích những câu trả lời khác

Cài đặt Homebrew

Cho bia chạy

"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Cài đặt nút & npm

Bạn KHÔNG NÊN sử dụng brewđể cài đặt nútnpm .

Tôi đã thấy một vài nơi gợi ý rằng bạn nên sử dụng Homebrew để cài đặt Node (như câu trả lời của alexpods và trong bài đăng trên blog của Team Treehouse này ) nhưng cài đặt theo cách này bạn sẽ dễ gặp phải các vấn đề hơn npmbrewcả hai đều là người quản lý gói và bạn nên có một trình quản lý gói quản lý một trình quản lý gói khác dẫn đến các vấn đề, như lỗi này không chính thức về các vấn đề npm Lỗi: Từ chối xóa: / usr / local / bin / npm hoặc điều này mô-đun NPM không thể gỡ bỏ cài đặt trên OSX

Bạn có thể đọc thêm về chủ đề trong bài đăng của DanHerbert Sửa npm Trên Mac OS X cho Người dùng Homebrew , nơi anh ta tiếp tục nói

Ngoài ra, sử dụng cài đặt Homebrew của npm sẽ yêu cầu bạn sử dụng sudo khi cài đặt các gói toàn cầu. Vì một trong những ý tưởng cốt lõi đằng sau Homebrew là các ứng dụng có thể được cài đặt mà không cho chúng quyền truy cập root, đây là một ý tưởng tồi.

Cho mọi thứ khác

Tôi sẽ sử dụng npm; nhưng bạn thực sự chỉ nên làm theo hướng dẫn cài đặt cho từng mô-đun theo hướng dẫn trên trang web vì chúng sẽ nhận thức rõ hơn về bất kỳ vấn đề hoặc lỗi nào chúng có hơn bất kỳ ai khác


Vì vậy, bạn đề nghị chỉ cần cài đặt nó từ tải về của họ?
Shawn Mclean

6

Nếu trước đây bạn đã cài đặt nút bằng brew, thì bạn sẽ có một loạt các tệp bổ sung mà bạn nên dọn sạch trước khi cài đặt nút "đúng cách". Thêm vào đó, tôi đã phải thêm một vài cài đặt vào tập lệnh khởi động của mình để mọi thứ hoạt động trơn tru.

Tôi đã viết một kịch bản để làm cho điều này dễ dàng.

# filename:  install-nvm-npm-node
# author:    Lex Sheehan
# purpose:   To cleanly install NVM, NODE and NPM
# dependencies:  brew

NOW=$(date +%x\ %H:%M:%S)
CR=$'\n'
REV=$(tput rev)
OFF=$(tput sgr0)
BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW
MY_NAME=$(basename $0)
NODE_VER_TO_INSTALL=$1
if [ "$NODE_VER_TO_INSTALL" == "" ]; then
    NODE_VER_TO_INSTALL=v0.12.2
fi
if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then
    echo """$CR""Usage:   $ $MY_NAME <NODE_VERSION_TO_INSALL>"
    echo "Example: $ $MY_NAME v0.12.1"
    echo "Example: $ $MY_NAME $CR"
    exit 1
fi
echo """$CR""First, run:  $ brew update"
echo "Likely, you'll need to do what it suggests."
echo "Likely, you'll need to run: $ brew update$CR"
echo "To install latest node version, run the following command to get the latest version:  $ nvm ls-remote"
echo "... and pass the version number you want as the only param to $MY_NAME. $CR"
echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR"
echo "Press CTL+C to exit --or-- Enter to continue..."
read x

echo """$REV""Uninstalling nvm...$CR$OFF"
# Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups)
if [ ! -d "$BACKUP_DIR" ]; then 
    echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR"
    mkdir -p $BACKUP_DIR
fi 
set -x
mv $HOME/.nvm   $BACKUP_DIR  2>/dev/null
mv $HOME/.npm   $BACKUP_DIR  2>/dev/null
mv $HOME/.bower $BACKUP_DIR  2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Uninstalling node...$CR$OFF"
echo "Enter your password to remove user some node-related /usr/local directories"
set -x
sudo rm -rf /usr/local/lib/node_modules
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/include/node_modules
rm /usr/local/bin/npm
rm /usr/local/lib/dtrace/node.d
rm -rf $HOME/.node
rm -rf $HOME/.node-gyp
rm /opt/local/bin/node
rm /opt/local/include/node
rm -rf /opt/local/lib/node_modules
rm -rf /usr/local/Cellar/nvm
brew uninstall node 2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Installing nvm...$CR$OFF"

echo "++brew install nvm"
brew install nvm 
echo '$(brew --prefix nvm)/nvm.sh'
source $(brew --prefix nvm)/nvm.sh

echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF"
echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR"
NVM_DIR="$(brew --prefix nvm)"

echo """$CR""Using nvm install node...$CR"
echo "++ nvm install $NODE_VER_TO_INSTALL"
nvm install $NODE_VER_TO_INSTALL
NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin"
echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF"
echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin"

echo """$CR""Upgrading npm...$CR"
echo '++ install -g npm@latest'
npm install -g npm@latest
{ set +x; } &>/dev/null
echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF"
echo """$CR""prefix=$HOME/.node$CR"
echo "Now, all is likley well if you can run the following without errors:  npm install -g grunt-cli$CR"
echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR"

Tôi đã viết một bài báo ngắn ở đây rằng chi tiết tại sao đây là "đúng cách".

Nếu bạn cần cài đặt iojs, hãy sử dụng nvm như thế này:

nvm install iojs-v1.7.1

Để cài đặt brew, chỉ cần xem trang chủ của nó .

Xem alexpods trả lời cho phần còn lại.


5
Thật tuyệt vời khi thấy rằng tất cả các trình quản lý gói và trình quản lý phiên bản này thực sự giúp loại bỏ các tập lệnh, bản hack và cách giải quyết tùy chỉnh để làm cho techstack xyz hoạt động. tuyệt vời.
Michael Trouw

Làm việc cho tôi mặc dù tôi đã bắt đầu với npm và pha cả hai bị hỏng
Chris F Carroll

5

Bạn nên cài đặt node.js bằng nvm, vì theo cách đó bạn không phải cung cấp đặc quyền siêu người dùng khi cài đặt các gói toàn cầu (bạn chỉ cần thực hiện "npm install -g packagename" mà không cần thêm 'sudo').

Bia là tuyệt vời cho những thứ khác, tuy nhiên. Tôi có xu hướng thiên về Bower bất cứ khi nào tôi có tùy chọn cài đặt một cái gì đó với Bower.


Cài đặt nút bằng nvm bây giờ là cách tiếp cận ưa thích của tôi. Vì lý do rõ ràng là có thể có nhiều phiên bản nút trên máy của tôi và tôi cũng không phải thực thi npm bằng sudo. Tôi đã viết một bài đăng trên blog garywoodfine.com/install-nodejs-nvm-osx giải thích cách cài đặt
Gary Woodfine

4

Tôi đồng ý với noa - nếu bạn cần có nhiều phiên bản node, io.jsthì brew không phải là giải pháp thích hợp.

Bạn có thể giúp hỗ trợ thử nghiệm beta io.jstrong nvm: https://github.com/creationix/nvm/pull/616

Nếu bạn chỉ muốn io.jsvà không chuyển đổi phiên bản, thì bạn có thể cài đặt phân phối nhị phân io.jstừ https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; bao gồm npmvà bạn sẽ không cầnnvm nếu bạn không chuyển đổi phiên bản.

Nhớ cập nhật npmsau khi cài đặt:sudo npm install -g npm@latest


3

Đây là những gì tôi làm:

curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35
. ~/.nvm/nvm.sh && nvm alias default 0.10.35

Không có Homebrew cho cái này.

nvmsẽ sớm hỗ trợ io.js, nhưng không phải vào thời điểm đăng bài: https://github.com/creationix/nvm/issues/590

Sau đó cài đặt mọi thứ khác, mỗi dự án, với một package.jsonnpm install.


0

Để cài đặt với zsh và Homebrew:

brew install nvm

Sau đó, thêm phần sau vào ~ / .zshrc hoặc tệp cấu hình shell mong muốn của bạn:

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

Sau đó cài đặt một phiên bản nút và sử dụng nó.

nvm install 7.10.1
nvm use 7.10.1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.