Linux использует nvm для установки узла
Linux использует nvm для установки узла

до,Написал статью(https://cloud.tencent.com/developer/article/2186375),Но прошло много времени,Кроме того, некоторые материалы могли измениться.,Поэтому я решил написать это еще раз

Загрузите и установите

nvm из Официальный адрес склада:https://github.com/nvm-sh/nvm

В наличии прямо со склада Releases Скачивайте соответствующую версию, но мне лень. Чтобы было удобно обновляться и скачивать, я предпочитаю использовать ее напрямую. git Клонировать репозиторий

Я хочу установить его в корневой каталог системы, чтобы все пользователи могли его использовать.

Язык кода:javascript
копировать
cd /  # переключиться в корневой каталог

Клонируйте код (поскольку текущая учетная запись не имеет разрешения на непосредственное управление каталогом, используйте sudo для повышения привилегий)

Язык кода:javascript
копировать
ubuntu@VM-0-12-ubuntu:/$ sudo git clone https://github.com/nvm-sh/nvm.git
Cloning into 'nvm'...
remote: Enumerating objects: 9094, done.
remote: Counting objects: 100% (9094/9094), done.
remote: Compressing objects: 100% (3216/3216), done.
remote: Total 9094 (delta 5825), reused 8980 (delta 5774), pack-reused 0
Receiving objects: 100% (9094/9094), 3.36 MiB | 27.71 MiB/s, done.
Resolving deltas: 100% (5825/5825), done.
ubuntu@VM-0-12-ubuntu:/$ 

Переименовать папку спрятать его удалить его из nvm Изменить на .nvm

Язык кода:javascript
копировать
sudo mv ./nvm/ ./.nvm

Исправлять .nvm Разрешения для папки, чтобы все пользователи могли читать, писать и выполнять

Язык кода:javascript
копировать
sudo chmod 777 -R ./.nvm/

Теперь, когда nvm успешно установлен, следующим шагом будет настройка переменных среды.

Настройте глобальные переменные для всех пользователей

Если вы хотите, чтобы он был доступен всем пользователям, вам необходимо /etc/bash.bashrc Настройка глобального Bash Конфигурационный файл

Язык кода:javascript
копировать
sudo vim /etc/bash.bashrc

Добавьте в конец файла

Язык кода:javascript
копировать
export NVM_DIR="/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Обратите внимание на переменную в первой строке nvm Путь, моя установка здесь находится в в корневом каталоге .nvm папка, если у вас есть nvm-0.39.1 Такая папка с другими именами (например, вручную из Release скачал) Или есть вложенные папки, тогда пожалуйста Исправьте для себя просто поставьте nvm Местоположение загрузки

Перезагрузите весь файл конфигурации.

Язык кода:javascript
копировать
source /etc/bash.bashrc

Настройка глобальных переменных для отдельных пользователей

Если вы не хотите, чтобы все пользователи могли использовать его, а только отдельные пользователи, или вы установили его в каталог пользователя как независимое от пользователя программное обеспечение, то шаги такие же, как и при настройке глобальных переменных.

Редактировать домашний каталог пользователя .bashrc Файл (создайте, если он не существует)

Язык кода:javascript
копировать
vim ~/.bashrc

Аналогично в конце файла добавьте

Язык кода:javascript
копировать
export NVM_DIR="/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Обратите внимание на переменную в первой строке nvm Путь, моя установка здесь находится в в корневом каталоге .nvm папка, если у вас есть nvm-0.39.1 Такая папка с другими именами (например, вручную из Release скачал) Или есть вложенные папки, тогда пожалуйста Исправьте для себя просто поставьте nvm Местоположение загрузки

перезагрузитьиспользоватьсемьяиз Конфигурационный файл

Язык кода:javascript
копировать
source ~/.bashrc

Установите узел с помощью nvm

В качестве примера я устанавливаю версию 18.x.

Язык кода:javascript
копировать
ubuntu@VM-0-12-ubuntu:/$ nvm install 18
Downloading and installing node v18.17.1...
Downloading https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.xz...
################################################################################################################################ 100.0%Computing checksum with sha256sum
Checksums matched!
Now using node v18.17.1 (npm v9.6.7)
Creating default alias: default -> 18 (-> v18.17.1)
ubuntu@VM-0-12-ubuntu:/$ nvm use 18
Now using node v18.17.1 (npm v9.6.7)
ubuntu@VM-0-12-ubuntu:/$ 
Посмотреть установленную версию
Язык кода:javascript
копировать
nvm ls
Установить узел
Язык кода:javascript
копировать
nvm install <version>

Пример (установка узла версии 16.14.0)

Язык кода:javascript
копировать
nvm install 16.14.0

Если домашний сервер работает медленно, вы можете заменить его источником Taobao.

Язык кода:javascript
копировать
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
Версия узла переключения
Язык кода:javascript
копировать
nvm use <version>

Пример (переход на версию узла 1919.810)

Язык кода:javascript
копировать
nvm use 1919.810

некоторые незначительные проблемы

По сравнению с npm Я предпочитаю использовать yarn Но из-за обычной установки yarn из bin Файл отсутствует в переменных среды, что приводит к yarn При установке из пакета невозможно включить глобальную команду use. Поэтому нам нужно добавить его вручную

Установить пряжу

Язык кода:javascript
копировать
ubuntu@VM-0-12-ubuntu:/$ npm install yarn -g

added 1 package in 895ms

Используйте пряжу для установки глобальных пакетов (здесь в качестве примера используется pm2)

Язык кода:javascript
копировать
ubuntu@VM-0-12-ubuntu:/$ yarn global add pm2
yarn global v1.22.19
[1/4] Resolving packages...
warning pm2 > @pm2/io > @opencensus/propagation-b3 > uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
warning pm2 > @pm2/io > @opencensus/core > uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
warning pm2 > @pm2/io > @opencensus/propagation-b3 > @opencensus/core > uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "pm2@5.3.0" with binaries:
      - pm2
      - pm2-dev
      - pm2-docker
      - pm2-runtime
Done in 12.36s.
ubuntu@VM-0-12-ubuntu:/$ 

Используйте pm2

Язык кода:javascript
копировать
ubuntu@VM-0-12-ubuntu:/$ pm2
Command 'pm2' not found, did you mean:
  command 'pmi' from deb powermanagement-interface (0.3.21)
  command 'wm2' from deb wm2 (4+svn20090216-4build1)
  command 'pm' from deb powerman (2.3.5-1build2)
  command 'tpm2' from deb tpm2-tools (5.2-1build1)
  command 'gm2' from deb gm2 (4:11.2.0-1ubuntu1)
  command 'pmg' from deb python3-pymatgen (2022.0.17+dfsg1-1build1)
  command 'pms' from deb pms (0.42-1build4)
  command 'pmw' from deb pmw (1:4.50-1)
  command 'pom2' from deb libpod-pom-perl (2.01-3)
  command 'pmc' from deb linuxptp (3.1.1-3)
Try: sudo apt install <deb name>
ubuntu@VM-0-12-ubuntu:/$ 

Команда не найдена, нам нужно добавить переменные среды

yarn Каталог программного обеспечения находится в папке из домашнего каталога текущей учетной записи. Следуйте инструкциям выше, чтобы добавить его. bashrc Конфигурационный в файле (Исправлять в соответствии с реальной ситуацией)

Язык кода:javascript
копировать
export PATH=$PATH:/home/ubuntu/.yarn/bin

После добавления обновите файл конфигурации, и он будет работать нормально.

Решение проблем с качеством соединения в особых сетевых средах

источник изменения npm

Язык кода:javascript
копировать
npm config get registry // Посмотреть текущий адрес источника
npm config set registry https://registry.npm.taobao.org // Источник Таобао
npm config set registry https://registry.npmmirror.com // Источник Таобао (новое доменное имя)
npm config set registry https://mirrors.huaweicloud.com/repository/npm // Источник Huawei

npm установить прокси

Язык кода:javascript
копировать
npm config set proxy=http://127.0.0.1:11451
npm config set https-proxy=https://127.0.0.1:11451

npm config delete proxy 
npm config delete https-proxy

источник изменения пряжи

Язык кода:javascript
копировать
yarn config get registry  // Посмотреть текущий адрес источника
yarn config set registry https://registry.npm.taobao.org  // Источник Таобао
yarn config set registry https://registry.npmmirror.com // Источник Таобао (новое доменное имя)
yarn config set registry https://mirrors.huaweicloud.com/repository/npm  // Источник Huawei

набор пряжи прокси

Язык кода:javascript
копировать
yarn config set proxy http://127.0.0.1:11451
yarn config set https-proxy https://127.0.0.1:11451

yarn config delete proxy  
yarn config delete https-proxy

источник изменения nvm

Язык кода:javascript
копировать
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/ // Источник Таобао
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода