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

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

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

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
13
задан 13 April 2015 в 12:17

8 ответов

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

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

<час>

Графический путь:

  1. Открывают File Manager (иначе Наутилус).
  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
8
ответ дан 13 April 2015 в 22:17

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

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

Найденный им здесь: https://stackoverflow.com/a/29400598/861615

22
ответ дан 13 April 2015 в 22:17

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

Это - подход :

ln -s /usr/local/bin/n /usr/bin/n
2
ответ дан 13 April 2015 в 22:17

Я нашел решение, которое работало на меня. Используйте nvm пакет для загрузки последнего узла.

  1. Установка nvm использующий ниже команды

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

  1. Создает переменную среды для использования Попытки nvm
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  1. nvm -v, если она не видит nvm установленный, запускает скрипт ниже

command -v nvm

  1. Для установки команды выполнения узла ниже

nvm install node

  1. После перезапуска терминала, попытайтесь проверить версию узла, она должна быть обновлена

node -v

[еще 1124] информация здесь: https://github.com/nvm-sh/nvm

0
ответ дан 3 August 2019 в 19:28

Чтобы постараться не портить с .npm-global, папка как отметила @Edson Юниором Horacio, и на основе @pohest ответ , вот то, как я зафиксировал его:

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

Как примечание, это, вероятно, не будет работать, если Вы не выполнили шаги npm для изменение глобального каталога по умолчанию .

0
ответ дан 3 August 2019 в 19:28

Это означает, что у Вас нет N установленным в Вас, система, N является находящимся в npm менеджером по версии узла. Можно установить его путем установки сначала некоторой версии узла и затем выполнения

sudo npm install -g n

теперь можно установить версию на узле с помощью n команду

sudo n stable

Вышеупомянутое установит последний стабильный вирион

sudo n lates

это установит последнюю версию

можно также установить определенную версию путем определения версии как ниже

sudo n  10.16.0
0
ответ дан 23 November 2019 в 03:14

Я встретился с той же проблемой, это - то, как можно решить ее:

  1. Получите префикс конфигурации npm
    npm config get prefix 
    // get -> ${myhome}/.npm-global
    
  2. Включите следующие строки .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
    

Ссылка: GitHub - tj/n: управление Версией узла

Примечание редактора: Этот ответ был первоначально записан на китайском языке и был переведен и отредактировал сетевые инструменты использования. Для наблюдения исходного ответа отошлите Пересмотр № 1

-1
ответ дан 23 November 2019 в 03:14

Ни один из приведенных выше ответов не помог мне. Однако это произошло:

sudo /usr/local/bin/bin/n stable
0
ответ дан 11 February 2020 в 22:07

Другие вопросы по тегам:

Похожие вопросы: