Perintah tidak ditemukan ketika menjalankan paket node.js n pada sudo

13

Saya mencoba memperbarui versi node saya ke stabil terbaru.

Menggunakan sumber daya ini saya dapat:

sudo npm install n -g

Tetapi ketika saya mencoba

sudo npm n stable

Saya mendapat:

sudo: n: command not found

Jika saya menjalankan n stable, perintahnya ada:

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
JonRed
sumber
Ide bagus, tetapi ketika saya melakukan itu mengembalikan saya 'n: perintah tidak ditemukan', meskipun saya telah menjatuhkan 'sudo'
JonRed
sudo sh -c "PATH = $ PATH; n stable" <baris baru> sh: 1: n: tidak ditemukan
JonRed
Tidak ada output sama sekali. Itu
menyedihkan
Silakan kirim keluaranls /usr/local/bin/n
Helio

Jawaban:

5

Anehnya, npminstalasi Anda memiliki awalan global dalam folder yang disebut npmdi direktori home Anda, ini berarti bahwa setiap paket yang terinstal dengan -gflag akan diinstal pada folder ini.

Anda dapat mengubah folder ini ke folder apa pun yang berada di sudojalur aman dengan mengikuti langkah-langkah ini:


Cara grafis:

  1. Buka File Manager (alias Nautilus).
  2. Arahkan ke folder rumah Anda.
  3. tekan Ctrl + Huntuk menampilkan file tersembunyi.
  4. Buka file bernama .npmrc dengan editor teks favorit Anda.
  5. Temukan baris pada file itu dengan konten ini:

    prefix=/home/<your_username>/npm
    
  6. Ganti /home/<your_username>/npmdengan jalur yang aman (seperti /usr/local/bin).
  7. Setelah diganti akan terlihat seperti ini:

    prefix=/usr/local/bin
    
  8. Simpan file.
  9. Berlari lagi sudo npm install n -g

Cara terminal:

Jalankan perintah ini:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc
Helio
sumber
Saya pikir ini berhasil! Ini juga membantu saya sekarang ketika saya memperbarui versi npm saya, tetapi tidak akan mengenalinya. Jadi, diterima, dan terima kasih!
JonRed
Tidak membantu, masih
mengeluarkan
Ini membantu saya! Saya tidak punya file ~ / .npmrc, jadi saya menambahkannya dan sekarang berfungsi dengan baik
Kirill Gusyatin
2
Hati-hati: ini akan membatalkan Opsi 2 untuk memperbaiki izin NPM
Edson Horacio Junior
23

Saya telah menemukan solusi yang bekerja untuk saya:

sudo -E env "PATH=$PATH" n stable

Ditemukan di sini: /programming//a/29400598/861615

Luckylooke
sumber
env: n: Tidak ada file atau direktori seperti itu
user3311522
1
@ user3311522 apakah Anda menggunakan: sudo npm install n -gsebelumnya sudo -E env "PATH=$PATH" n stable??
Luckylooke
2

Saya tahu ini adalah forum Ubuntu, tapi saya yakin ini akan membantu seseorang dengan masalah yang sama pada rasa RHEL yang Googled ke sini seperti yang saya lakukan. Mungkin ini juga berfungsi di Ubuntu.

Inilah pendekatannya :

ln -s /usr/local/bin/n /usr/bin/n
poshest
sumber
0

Untuk menghindari mengacaukan .npm-globalfolder seperti dicatat oleh @Edson Horacio Junior, dan berdasarkan jawaban @ pohest , berikut adalah cara saya memperbaikinya:

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

Sebagai catatan, ini mungkin tidak akan berfungsi jika Anda belum mengikuti langkah-langkah npm untuk mengubah direktori global default .

Gus
sumber
0

Saya menemukan solusi yang berhasil untuk saya. Gunakan nvmpaket untuk mengunduh simpul terbaru.

  1. Instal nvm menggunakan perintah di bawah ini

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

  1. Buat variabel lingkungan untuk menggunakan nvm
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  1. Coba nvm -vjika tidak dapat nvmdiinstal, jalankan script di bawah ini

command -v nvm

  1. Untuk menginstal simpul jalankan perintah di bawah ini

nvm install node

  1. Setelah me-restart terminal, coba periksa versi node, itu harus diperbarui

node -v

Info lebih lanjut di sini: https://github.com/nvm-sh/nvm

Jacek Góraj
sumber
0

Ini berarti Anda tidak memiliki N yang terinstal di sistem Anda, N adalah manajer versi node berbasis npm. Anda dapat menginstalnya dengan menginstal terlebih dahulu beberapa versi node dan kemudian berjalan

sudo npm install -g n

sekarang Anda dapat menginstal versi pada simpul menggunakan perintah n

sudo n stable

Di atas akan menginstal versi stabil terbaru

sudo n lates

ini akan menginstal versi terbaru

Anda juga dapat menginstal versi spesifik dengan menentukan versi seperti di bawah ini

sudo n  10.16.0
satyam chinna
sumber
-1

Saya mengalami masalah yang sama, ini adalah bagaimana Anda dapat menyelesaikannya:

  1. Dapatkan awalan konfigurasi npm
    npm config get prefix 
    // get -> ${myhome}/.npm-global
  2. Tambahkan baris berikut di .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

Referensi: GitHub - tj / n: Manajemen versi simpul

Catatan editor: Jawaban ini awalnya ditulis dalam bahasa Cina dan telah diterjemahkan dan diedit menggunakan alat online. Untuk melihat jawaban asli, lihat Revisi # 1

dingyanhe
sumber