Không tìm thấy lệnh khi thực hiện gói node.js n trên sudo


13

Tôi đang cố gắng cập nhật phiên bản nút của mình lên bản ổn định mới nhất.

Sử dụng tài nguyên này tôi đã có thể:

sudo npm install n -g

Nhưng khi tôi cố gắng

sudo npm n stable

Tôi có:

sudo: n: command not found

Nếu tôi chạy n stable, lệnh có mặt:

n stable
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

     install : node-v0.12.2
       mkdir : /usr/local/n/versions/node/0.12.2
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

  Error: sudo required

Ý tưởng hay, nhưng khi tôi làm điều đó, nó sẽ trả lại cho tôi 'n: lệnh không tìm thấy', mặc dù tôi đã bỏ 'sudo'
JonRed

sudo sh -c "PATH = $ PATH; n ổn định" <dòng mới> sh: 1: n: không tìm thấy
JonRed

Không có đầu ra nào cả. Điều đó thật đáng buồn :-(
JonRed


Vui lòng gửi kết quả đầu ra củals /usr/local/bin/n
Helio

Câu trả lời:


5

Đáng ngạc nhiên, npmcài đặt của bạn có tiền tố toàn cầu trong một thư mục được gọi npmtrên thư mục chính của bạn, điều này có nghĩa là bất kỳ gói nào được cài đặt với -gcờ sẽ cài đặt trên thư mục này.

Bạn có thể thay đổi thư mục này thành bất kỳ thư mục nào trên sudođường dẫn an toàn theo các bước sau:


Cách đồ họa:

  1. Mở Trình quản lý tệp (còn gọi là Nautilus).
  2. Điều hướng đến thư mục nhà của bạn.
  3. Nhấn Ctrl+ Hđể hiển thị các tập tin ẩn.
  4. Mở một tập tin được gọi .npmrcvới trình soạn thảo văn bản yêu thích của bạn.
  5. Tìm một dòng trên tập tin đó với nội dung này:

    prefix=/home/<your_username>/npm
    
  6. Thay thế /home/<your_username>/npmbằng một đường dẫn an toàn (như /usr/local/bin).
  7. Sau khi thay thế nó sẽ trông như thế này:

    prefix=/usr/local/bin
    
  8. Lưu các tập tin.
  9. Chạy lại sudo npm install n -g

Cách thiết bị đầu cuối:

Chạy lệnh này:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc

Tôi nghĩ rằng điều này đóng đinh nó! Nó cũng giúp tôi ngay bây giờ khi tôi cập nhật phiên bản npm của mình, nhưng sẽ không nhận ra nó. Vì vậy, chấp nhận, và cảm ơn bạn!
JonRed

Không giúp đỡ, vẫn như vậy ngay bây giờ: /
Luckylooke

Điều này đã giúp tôi! Tôi không có tệp ~ / .npmrc, vì vậy tôi đã thêm nó và bây giờ nó hoạt động tốt
Kirill Gusyatin

2
Coi chừng: điều này sẽ hoàn tác Tùy chọn 2 trong việc sửa các quyền NPM
Edson Horacio Junior


2

Tôi biết đây là một diễn đàn Ubuntu, nhưng tôi chắc chắn rằng điều này sẽ giúp được ai đó có cùng vấn đề về hương vị của RHEL, người đã làm việc ở đây như tôi đã làm. Có lẽ nó cũng hoạt động trong Ubuntu.

Đây là cách tiếp cận :

ln -s /usr/local/bin/n /usr/bin/n

0

Để tránh làm hỏng .npm-globalthư mục như được ghi chú bởi @Edson Horacio Junior và dựa trên câu trả lời của @ pohest , đây là cách tôi sửa nó:

sudo ln -s /home/<username>/.npm-global/bin/n /usr/local/bin/n
sudo n --version # test it

Lưu ý, điều này có thể sẽ không hoạt động nếu bạn chưa làm theo các bước của npm để thay đổi thư mục toàn cầu mặc định .


0

Tôi tìm thấy một giải pháp làm việc cho tôi. Sử dụng nvmgói để tải xuống nút mới nhất.

  1. Cài đặt nvm bằng lệnh dưới đây

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

  1. Tạo một biến môi trường để sử dụng nvm
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  1. Hãy thử nvm -vnếu nó không thể thấy nvmđược cài đặt, hãy chạy đoạn script bên dưới

command -v nvm

  1. Để cài đặt lệnh chạy nút bên dưới

nvm install node

  1. Sau khi khởi động lại thiết bị đầu cuối, hãy thử kiểm tra phiên bản của nút, nó sẽ được cập nhật

node -v

Thêm thông tin ở đây: https://github.com/nvm-sh/nvm


0

Điều này có nghĩa là bạn chưa cài đặt N trong hệ thống của mình, N là trình quản lý phiên bản nút dựa trên npm. Bạn có thể cài đặt nó bằng cách cài đặt một số phiên bản nút đầu tiên và sau đó chạy

sudo npm install -g n

bây giờ bạn có thể cài đặt phiên bản trên nút bằng lệnh n

sudo n stable

Ở trên sẽ cài đặt verion ổn định mới nhất

sudo n lates

cái này sẽ cài đặt phiên bản lates

bạn cũng có thể cài đặt phiên bản cụ thể bằng cách chỉ định phiên bản như bên dưới

sudo n  10.16.0

-1

Tôi gặp phải vấn đề tương tự, đây là cách bạn có thể giải quyết nó:

  1. Nhận tiền tố cấu hình npm
    npm config get prefix 
    // get -> ${myhome}/.npm-global
  2. Thêm các dòng sau vào .zshrc

    # Specify `n` to put the version of `node` in the `.n` directory.
    export N_PREFIX=${myhome}/.npm-global/.n
    
    # Make `nman` command work
    export PATH=${myhome}/.npm-global/bin:$PATH
    
    # Add this line to use `node -v` command
    export PATH=${myhome}/.npm-global/.n/bin:$PATH

Tham khảo: GitHub - tj / n: Quản lý phiên bản nút

Lưu ý của biên tập viên: Câu trả lời này ban đầu được viết bằng tiếng Trung Quốc và đã được dịch và chỉnh sửa bằng các công cụ trực tuyến. Để xem câu trả lời ban đầu, hãy tham khảo Bản sửa đổi số 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.