2015-01-19 21 views
7

Tôi đang cố gắng thiết lập Node.js và NPM trên máy tính Ubuntu 14.04 nhưng đang gặp một số sự cố. Trong lần thử đầu tiên của tôi, tôi đã bị lỗi EACCES khi cố gắng cài đặt gói (đôi khi ngay cả với sudo), vì vậy tôi đã gỡ cài đặt hoàn toàn nút và npm. Bây giờ tôi đang cố gắng tìm ra cách để cài đặt chúng theo cách không yêu cầu tôi chạy mọi thứ sudo và sẽ không cho tôi lỗi EACCES.Làm cách nào để cài đặt Node và NPM nên tôi không phải sử dụng sudo?

Tôi không muốn sử dụng NVM, và khác hơn là tôi đã tìm thấy một loạt các câu trả lời một phần nằm rải rác, một số trong đó mâu thuẫn nhau, hoặc chỉ sử dụng cú pháp hơi khác nhau.

Tôi thực sự đánh giá cao một số trợ giúp về vấn đề này. Tôi vừa mới chuyển sang Linux từ Windows và đang cố gắng thiết lập để tôi có thể bắt đầu làm việc trở lại.

Trả lời

18

Vấn đề mà ném một EACCES thường là một vấn đề quyền trên hai thư mục:

Có thể có một vấn đề quyền trên thư mục ~/.npm của bạn.

Đường dẫn đầy đủ tới thư mục '~/.npm' của bạn là '/Users/YOUR_USERNAME/.npm'; nó lưu trữ các chức năng npm khác nhau. Cách dễ nhất để vào thư mục gốc của bạn trên hệ thống dựa trên Unix (tôi cũng tin vào linux) là gõ 'cd'.

Cũng có thể có sự cố về quyền đối với/usr/local/lib/node_modules của bạn.

Đây là nơi npm cố lưu trữ các mô-đun được cài đặt trên toàn cầu của bạn. Đây là phiên bản cấp hệ thống của thư mục 'node_modules' bạn tìm thấy về cơ bản bất kỳ dự án node.js nào bạn thực hiện và cài đặt với các phụ thuộc. Tôi thực sự đã thực hiện một gói nút sẽ giải quyết vấn đề này trên một mac, mặc dù tôi không chắc chắn về Linux (vì các đường dẫn đến '.npm' và 'node_modules' có thể khác nhau trên linux), bạn có thể cung cấp cho nó bắn? Về cơ bản nó khẳng định bạn là chủ sở hữu của những thư mục đó.

Dưới đây là các trang github:

https://github.com/yvanscher/fixmynode (chỉ ghi chú nhanh gói này có thể là lỗi thời vì một build vấn đề lạ với sự phụ thuộc osenv)

Nếu bạn cài đặt lại nút bạn có thể thử thay đổi các điều khoản cho mình với các lệnh này (mà nên làm việc trong Linux):

sudo chown -R $(whoami) ~/.npm

sudo chown -R $(whoami)/usr/Loca l/lib/node_modules

LƯU Ý: Tôi không chắc chắn 100% rằng các đường dẫn '/ usr/local/lib/node_modules' và '~/.npm' là chính xác cho cài đặt Node/npm dựa trên Linux . Bạn có thể đăng thông báo lỗi đầy đủ bạn nhận được trong thiết bị đầu cuối?

+2

Cảm ơn, tôi đã phải chạy 'chown' trên'/usr/local/lib/node_modules', '~/.npm' và'/usr/lib/node_modules'. Tôi vẫn phải sử dụng 'sudo' cho bất kỳ hành động toàn cầu nào, điều đó là tốt, nhưng ngoài việc đó mọi thứ dường như chạy trơn tru. –

Các vấn đề liên quan