Команда не найдена при выполнении пакета node.js n на sudo

10

Я пытаюсь обновить мою версию узла до последней стабильной версии.

Используя этот ресурс , я смог:

sudo npm install n -g

Но когда я пытаюсь

sudo npm n stable

Я получаю:

sudo: n: command not found

Если я запустил n stable , команда присутствует:

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 13.04.2015 в 08:07
источник

3 ответа

5

Удивительно, что ваша установка npm имеет глобальный префикс в папке с именем npm в вашем домашнем каталоге, это означает, что любой пакет, установленный с флагом -g , будет установлен в этой папке.

Вы можете изменить эту папку в любой папке, которая находится на безопасном пути sudo , следующим образом:

Графический способ:

  1. Откройте диспетчер файлов (a.k.a Nautilus).
  2. Перейдите в домашнюю папку.
  3. Нажмите Ctrl + H , чтобы отобразить скрытые файлы.
  4. Откройте файл с именем .npmrc с вашим любимым текстовым редактором.
  5. Найдите строку в этом файле с этим контентом:

    prefix=/home/<your_username>/npm
    
  6. Замените /home/<your_username>/npm безопасным путем (например, /usr/local/bin ).
  7. После замены он будет выглядеть следующим образом:

    prefix=/usr/local/bin
    
  8. Сохраните файл.
  9. Запустить еще раз sudo npm install n -g

Терминальный путь:

Запустите эту команду:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc
    
ответ дан Helio 14.04.2015 в 19:12
источник
17

Я нашел решение, которое сработало для меня:

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

Найденный здесь: Ссылка

    
ответ дан Luckylooke 06.07.2015 в 15:00
1

Я знаю, что это форум Ubuntu, но я уверен, что это поможет кому-то с той же проблемой на вкусах RHEL, которые Googled здесь, как я. Возможно, он также работает в Ubuntu.

Это подход :

ln -s /usr/local/bin/n /usr/bin/n
    
ответ дан poshest 05.08.2017 в 19:52