- Вопрос или проблема
- Ответ или решение
- Устранение проблемы с NVM, которая не может найти установленный Node в Linux Mint 17
- 1. Изучение контекста проблемы
- 2. Анализ переменной окружения $NVM_DIR
- 3. Проверка файловой структуры
- 4. Переустановка Node.js
- 5. Дополнительные настройки для редакторов и IDE
- Заключение
Вопрос или проблема
Я успешно установил NVM и Node, следуя официальным инструкциям. Мой файл .bashrc
содержит
[ -s "/home/user/.nvm/nvm.sh" ] && . "/home/user/.nvm/nvm.sh"
Через некоторое время, возможно, день, я заметил, что Node больше нет. Поэтому я попробовал:
$ nvm use 0.10
N/A версия еще не установлена
Это странно, я знаю, что установил его с помощью nvm install 0.10
, использовал его для запуска скрипта и нашел его здесь:
$ ls .nvm/v0.10.29/
bin ChangeLog include lib LICENSE README.md share
Так что всё выглядит правильно, но NVM просто не работает:
$ nvm install 0.10
mkdir: не удалось создать директорию ‘/etc/mdm/bin’: Доступ запрещён
Скачивание бинарного файла не удалось, пытаюсь загрузить из исходников.
Дополнительные параметры при компиляции:
mkdir: не удалось создать директорию ‘/etc/mdm/src’: Доступ запрещён
nvm: установка v0.10.29 не удалась!
$ nvm deactivate
Не удалось найти /etc/mdm/*/bin в $PATH
Не удалось найти /etc/mdm/*/share/man в $MANPATH
Не удалось найти /etc/mdm/*/lib/node_modules в $NODE_PATH
Вывод показывает, что nvm пытается использовать директорию /etc/mdm/*, и это не имеет смысла. MDM — это менеджер дисплеев в Linux Mint. Есть идеи?
ОБНОВЛЕНИЕ:
только что проверил, похоже, что $NVM_DIR установлено на /etc/mdm. Возможно, поэтому всё идет не так, но не знаю, когда это было установлено или почему.
ОБНОВЛЕНИЕ 2(ИСПРАВЛЕНИЕ):
export NVM_DIR=/home/user/.nvm
это исправит эту проблему.
Из Настройки -> Настройки пакетов -> NodeJs -> Пользовательская настройка
Добавить:
{
// сохраните перед выполнением команд
"save_first": true,
// если присутствует, используйте эту команду вместо обычной "node"
// например, "/usr/bin/node" или "C:\bin\node.exe"
"node_command": "/usr/local/bin/node",
// То же самое для команды NPM
"npm_command": "/usr/local/bin/npm",
// как переменная окружения 'NODE_PATH' для выполнения node
"node_path": false,
"expert_mode": false,
"ouput_to_new_tab": false
}
Ответ или решение
Устранение проблемы с NVM, которая не может найти установленный Node в Linux Mint 17
Ошибка, с которой вы столкнулись, касается работы NVM (Node Version Manager) в вашей системе. Несмотря на то, что на первый взгляд все установлено корректно, решение проблемы требует несколько шагов для диагностики и исправления. Рассмотрим эту проблему более детально.
1. Изучение контекста проблемы
Ваша ~/.bashrc
файл содержит правильные строки для инициализации NVM:
[ -s "/home/user/.nvm/nvm.sh" ] && . "/home/user/.nvm/nvm.sh"
Однако позже вы столкнулись с ошибками, указывающими на то, что переменная окружения $NVM_DIR
была неправильно установлена на /etc/mdm
, что является директорией вашего дисплейного менеджера. Это вызывало проблемы с доступом к установленным версиям Node.js.
2. Анализ переменной окружения $NVM_DIR
Прежде всего, стоит проверить, как у вас установлена переменная окружения $NVM_DIR
. Вы можете сделать это, выполнив следующую команду в терминале:
echo $NVM_DIR
Если вы видите, что значение не соответствует ожидаемому "/home/user/.nvm"
, вам нужна следующая команда, которая вернет переменную в нужное значение:
export NVM_DIR=/home/user/.nvm
Эта команда установит правильный путь, позволяя NVM находить установленный Node.js. Чтобы избежать внесения этих изменений каждый раз при запуске терминала, добавьте строку для установки переменной $NVM_DIR
в ваш файл ~/.bashrc
:
export NVM_DIR="/home/user/.nvm"
Не забудьте применить изменения с помощью:
source ~/.bashrc
3. Проверка файловой структуры
Убедитесь, что структура папок и файлов в директории .nvm
не нарушена. Для этого выполните:
ls -la ~/.nvm
Это поможет вам увидеть, есть ли там необходимые подкаталоги и установленные версии Node.js.
4. Переустановка Node.js
Если проблема не решается, попробуйте переустановить нужную версию Node.js. Убедитесь, что вы используете правильную версию NVM:
nvm install 0.10
Если возникают ошибки доступа, убедитесь, что вы используете терминал с правами, необходимыми для выполнения этих команд.
5. Дополнительные настройки для редакторов и IDE
По вашему описанию, также рекомендуется внести изменения в настройки редакторов, таких как Visual Studio Code. В настройках добавьте следующие параметры для корректного определения путей:
{
// сохранить перед выполнением команд
"save_first": true,
// используемая команда вместо простой "node"
"node_command": "/usr/local/bin/node",
// аналогично для команды NPM
"npm_command": "/usr/local/bin/npm",
// не устанавливать переменную окружения NODE_PATH
"node_path": false,
"expert_mode": false,
"output_to_new_tab": false
}
Заключение
Проблема с NVM, которая не может найти установленный Node, часто связана с неправильной настройкой окружения. Следуя приведенным выше шагам, вы сможете установить $NVM_DIR
на правильное значение и восстановить доступ к установленным версиям Node.js. Надеюсь, это решение поможет вам в вашей работе с NVM и Node.js.