Sự cố khi cài đặt node.js với homebrew


75

Tôi đang cố gắng cài đặt Node.js bằng Homebrew (trước đây tôi đã cài đặt nó mà không sử dụng brew và tôi đã thử xóa tất cả các tệp đó). Tôi đã xem các câu hỏi trước đây hỏi những điều tương tự, nhưng tôi không thể làm cho chúng hoạt động. Đầu tiên, tôi đã thử brew link nodenó đã cho tôi:

myusername@c126h060:~$ brew link node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Và sau đó khi tôi chạy, brew link --overwrite nodetôi nhận được như sau:

myusername@c126h060:~$ brew link --overwrite node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
/usr/local/share/systemtap/tapset is not writable.

Ngoài ra, khi tôi cố gắng sử dụng brew link -n nodeđể tìm tệp để xóa theo cách thủ công, tôi đã xóa một số tệp trong số đó, nhưng tôi vẫn còn lại các tệp sau mà tôi không thể xóa:

myusername@c126h060:~$ brew link -n node
Would link:
/usr/local/etc/bash_completion.d/npm
/usr/local/bin/node
/usr/local/include/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d

Khi tôi cố gắng xóa, tôi nhận được những điều sau (điều tương tự cho tất cả các tệp này):

myusername@c126h060:~$ rm /usr/local/etc/bash_completion.d/npm
rm: /usr/local/etc/bash_completion.d/npm: No such file or directory

Tôi nên làm gì?

Câu trả lời:


146

Có thể là bạn không thực sự sở hữu thư mục sơ đồ hệ thống của mình. Điều hướng đến /usr/local/sharevà chạy lệnh này để biến bạn thành chủ sở hữu:

chown -R <yourusername>:<yourgroupname> systemtap

Khi tôi khắc phục sự cố tương tự này sớm hơn ngày hôm nay, tôi cũng phải truy cập /usr/localvà làm điều tương tự đối với thư mục lib.


8
đừng quên về "sudo". sudo chown -R <yourusername>: <yourgroupname>
systemtap

2
Tôi nhận được bản đồ hệ thống: "Không có tệp hoặc thư mục nào như vậy". Tôi đang sử dụng macOS sierra.
lmc

3
hmm, đưa ra đường dẫn đầy đủ, / usr / local / share / systemtap / làm việc
LMC

2
ai đó có thể đưa ra một ví dụ về dòng chow mà không có trình giữ chỗ không? Tôi không muốn nhập những thứ sai. cảm ơn trước
Vash

1
sudo chown -R victor:admin systemtaphoàn hảo làm việc cho tôi !! Đã nâng cấp thành công nút của tôi lên v14.8.0 :)
Victor

22

Hoặc, cách khác, xác minh quyền sở hữu và quyền trên bản đồ hệ thống

$ ls -al /usr/local/share/systemtap/
drwxr-xr-x   3 root  wheel  102 Oct 23 18:06 .
drwxrwxr-x  15 root  wheel  510 Oct 24 20:24 ..
drwxr-xr-x   2 root  wheel   68 Oct 24 20:17 tapset

sau đó thêm chính bạn vào nhóm chủ sở hữu (trong trường hợp này là bánh xe)

sudo dscl . append /Groups/wheel GroupMembership <username>

sau đó thay đổi quyền trên tapset để cho phép chỉnh sửa nhóm

sudo chmod -R 775 /usr/local/share/systemtap/tapset/

18

Điều gì đã làm việc cho tôi:

  1. cd /usr/local/share
  2. sudo chown -R <user>:<group> systemtap(Đã làm cả 1 & 2 /usr/local)

Các bước trên không thành công. Đã đi đến câu trả lời tiếp theo. Đã thử;

ls -al /usr/local/share/systemtap/ dẫn đến lỗi 'Không tìm thấy'.

Sau đó: brew link nodeđang ném một lỗi. Tôi cũng vậy:

  1. sudo rm -rf /usr/local/lib/node_modules
  2. brew postinstall node -v
  3. Và cuối cùng brew link node
  4. node -v :)

Vì vậy, về cơ bản tôi đã xóa tất cả các node_modules/thư mục và làm lại mọi thứ.


18

lấy tên người dùng của bạn,

và nhận các nhóm của bạn: (có thể là nhiều hơn một, thường là 'quản trị viên')

whoami
groups

sau đó, đối với exapmle:

sudo chown -R chrislee:admin /usr/local/share/systemtap/

7
arun:~$ brew link node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

Chạy các lệnh dưới đây

brew postinstall node -v
brew link node 

1

Công thức sau đây phù hợp với tôi:

  1. Thêm tên người dùng của bạn để thêm bánh xe nhóm sudo dscl . append /Groups/wheel GroupMembership username
  2. sudo chmod -R 775 /usr/local/share/systemtap/tapset/
  3. sudo rm -rf /usr/local/lib/node_modules
  4. brew cleanup
  5. brew link node
  6. brew uninstall --force node
  7. brew install node

Sau đó kiểm tra phiên bản với node -vnpm -v.


2
Chào mừng đến với SO! Hãy ghi nhớ các nguyên tắc tại stackoverflow.com/help/how-to-answer và chỉnh sửa bài đăng của bạn cho phù hợp, ví dụ: bằng cách thêm giải thích tại sao giải pháp của bạn hoạt động.
B - rian

0

chỉ cần thêm sudo vào đầu lệnh npm install expo-cli --global

thích sudo npm install expo-cli --globalvà nhấn enter.

hy vọng nó sẽ giúp bạn.

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.