#node.js #linux #npm #opensuse #zypper
#node.js #linux #npm #opensuse #zypper
Вопрос:
Как root, я удалил некоторые каталоги в /usr / local / bin и / usr / local / lib на моем сервере openSUSE Leap 15.2 Linux, чтобы очистить некоторые модули nodejs. Затем я деинсталлировал nodejs
и npm
с помощью Zypper ( zypper remove nodejs npm
). Я удалил каталог ‘.npm’ в домашней папке root. Я сделал find
для ‘node_modules’ из / и не нашел ни одного. После этого я установил ‘nodejs’ и ‘npm’ ( zypper install nodejs npm
), который сообщил, что успешно установил их. Но когда я делаю ‘npm -v’, происходит сбой с /usr/local/bin/npm: No such file or directory
. Я несколько раз пытался удалить / переустановить эти пакеты, но npm продолжает выходить из строя с этой ошибкой. У меня есть вывод ниже. Любая помощь приветствуется.
The following 2 recommended packages were automatically selected:
nodejs12-devel npm12
4 new packages to install.
Overall download size: 11.1 MiB. Already cached: 0 B. After the operation, additional 48.0 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package nodejs-common-2.0-lp152.3.2.noarch (1/4), 8.1 KiB ( 230 B unpacked)
Retrieving: nodejs-common-2.0-lp152.3.2.noarch.rpm ...............................................................................................[done (5.2 KiB/s)]
Retrieving package nodejs12-12.18.2-lp152.3.3.1.x86_64 (2/4), 7.3 MiB ( 27.9 MiB unpacked)
Retrieving: nodejs12-12.18.2-lp152.3.3.1.x86_64.rpm ..............................................................................................[done (6.2 MiB/s)]
Retrieving package nodejs12-devel-12.18.2-lp152.3.3.1.x86_64 (3/4), 170.5 KiB (802.1 KiB unpacked)
Retrieving: nodejs12-devel-12.18.2-lp152.3.3.1.x86_64.rpm ........................................................................................[done (2.4 KiB/s)]
Retrieving package npm12-12.18.2-lp152.3.3.1.x86_64 (4/4), 3.6 MiB ( 19.3 MiB unpacked)
Retrieving: npm12-12.18.2-lp152.3.3.1.x86_64.rpm .............................................................................................................[done]
Checking for file conflicts: .................................................................................................................................[done]
(1/4) Installing: nodejs-common-2.0-lp152.3.2.noarch .........................................................................................................[done]
(2/4) Installing: nodejs12-12.18.2-lp152.3.3.1.x86_64 ........................................................................................................[done]
Additional rpm output:
update-alternatives: using /usr/bin/node12 to provide /usr/bin/node-default (node-default) in auto mode
(3/4) Installing: nodejs12-devel-12.18.2-lp152.3.3.1.x86_64 ..................................................................................................[done]
(4/4) Installing: npm12-12.18.2-lp152.3.3.1.x86_64 ...........................................................................................................[done]
Additional rpm output:
update-alternatives: using /usr/bin/npm12 to provide /usr/bin/npm-default (npm-default) in auto mode
update-alternatives: using /usr/bin/npx12 to provide /usr/bin/npx-default (npx-default) in auto mode
host1:/ # which npm
/usr/bin/npm
host1:/ # npm -v
-bash: /usr/local/bin/npm: No such file or directory
host1:/ # which node
/usr/bin/node
host1:/ # node -v
v12.18.2
host1:/ #
Комментарии:
1. Я бы установил node с помощью менеджера версий. Это означает, что вы можете устанавливать несколько версий параллельно и легко переключаться между ними. Это также устраняет некоторые ошибки разрешений, с которыми вы можете столкнуться. Дайте мне знать, если это то, что вы бы рассмотрели, и я опубликую ответ с описанием того, как это сделать.
Ответ №1:
попробуйте принудительно переустановить пакеты node и npm. если я не ошибаюсь, вы можете сделать это с помощью:
$ zypper in -f $(rpm -qa nodejs* --qf '%{NAME} ')
$ zypper in -f $(rpm -qa npm* --qf '%{NAME} ')
Ответ №2:
Я должен был сделать следующее:
rm -rf node_modules
rm -rf package_lock.json
во всех местах, где они были установлены (помните: npm устанавливает их в любой каталог, где вы выполняли npm install <module_name>
). find
это полезная команда в Linux для отслеживания всех этих каталогов. Кроме того, мне пришлось удалить .npm
каталоги всех пользователей (не только root). После выполнения этих действий и последующей переустановки nodejs и npm с помощью zypper
прошла успешно. У меня больше ничего не работало. Удачи.