Я сделал это вручную. Зачем возиться с установщиками, которые ломаются или не помещают вещи туда, куда я хочу? При установке *node.js на Amazon Web Services возникали такие проблемы, что ручная установка была простым способом получить желаемый результат.
Я хочу ГЛОБАЛЬНУЮ установку node
и npm
на AWS. Под этим я подразумеваю, что install следует помещать в такое место, как /usr/bin
, чтобы все пользователи имели доступ. Удивительно, но AWS явно не поддерживает эту идею. AWS рекомендует использовать nvm
, менеджер версий узлов, но он всегда устанавливается в каталог пользователя, а не в каталог системного уровня. После разочарования, когда решения rpm (упомянутые в другом месте) не сработали, я, наконец, решил просто выполнить установку вручную.
В браузере перейдите на страницу загрузки nodejs.org:
https://nodejs.org/en/download/
Найдите ссылку, которая говорит:
All download options
Нажмите на это; он переходит на индексную страницу с URL-адресом, например:
https://nodejs.org/dist/v14.16.1/
Там я искал имя, в названии которого были linux и x86. Я записал это или выбрал и скопировал, чтобы получить правильное написание. В моем случае это было:
node-v14.16.1-linux-x64.tar.gz
Объединив две части, я получил следующий URL:
https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.gz
Так вот что нужно скачать с помощью curl
.
У меня есть временный каталог, удобно расположенный в моем домашнем каталоге.
cd ~/temp
Загрузка была выполнена с помощью curl. Обратите внимание, что параметр -o
использовался для присвоения выходному файлу имени по моему выбору. Конечно, я решил дать ему то же имя, что и файл веб-сайта.
curl -o node-v14.16.1-linux-x64.tar.gz https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.gz
Разархивируйте загруженный файл.
tar xf node-v14.16.1-linux-x64.tar.gz
Удобно, он создает свой собственный каталог. Иди туда.
cd node-v14.16.1-linux-x64 || exit 1;
Обратите внимание, что доставка состоит из относительно небольшого количества файлов и каталогов (поскольку node_modules рассматривается как единое целое).
В моем случае у меня все еще была установлена старая и плохая реализация, поэтому были использованы следующие команды, чтобы отодвинуть в сторону любой мусор, который мог оказаться на пути. Некоторые команды завершались ошибкой, потому что старого мусора не существовало. Ничего страшного, ошибка при переходе на -OLD
просто означает, что перемещать нечего; и это хорошо.
Примечание. Я поместил все эти команды mv
(перемещение) в файл сценария, сделал его исполняемым и запустил как sudo
. Альтернативой является запуск каждой строки отдельно как sudo
.
mv /usr/bin/node /usr/bin/node-OLD
mv /usr/bin/npm /usr/bin/npm-OLD
mv /usr/bin/npx /usr/bin/npx-OLD
mv /usr/include/node /usr/include/node-OLD
mv /usr/lib/node_modules /usr/lib/node_modules-OLD
mv /usr/share/doc/node /usr/share/doc/node-OLD
mv /usr/share/man/man1/node.1 /usr/share/man/man1/node.1-OLD
mv /usr/share/systemtap/tapset/node.stp /usr/share/systemtap/tapset/node.stp-OLD
Вот фактическая установка. Помните, что это происходит в незаархивированном каталоге, в моем случае node-v14.16.1-linux-x64.
mv bin/node /usr/bin
mv bin/npm /usr/bin
mv bin/npx /usr/bin
mv include/node /usr/include
mv lib/node_modules /usr/lib
mv share/doc/node /usr/share/doc
mv share/man/man1/node.1 /usr/share/man/man1
mv share/systemtap/tapset/node.stp /usr/share/systemtap/tapset/
Вот и все, готово.
person
IAM_AL_X
schedule
08.05.2021