如何在OpenSUSE Leap 15.2上清理并重新安装NPM和NodeJS?

问题描述

以root身份,我在OpenSUSE Leap 15.2 linux服务器上的/ usr / local / bin和/ usr / local / lib中删除了一些目录,以清理一些nodejs模块。然后,我使用Zypper(nodejs)卸载了npmzypper remove nodejs npm。我在根目录的主目录中删除了“ .npm”目录。我从/为“ node_modules”做了一个find,但没有找到。之后,我安装了'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:/ #

解决方法

尝试强制重新安装节点和npm软件包。如果我没记错的话,可以通过以下方式做到这一点:

$ zypper in -f $(rpm -qa nodejs* --qf '%{NAME} ')
$ zypper in -f $(rpm -qa npm* --qf '%{NAME} ')
,

我必须执行以下操作:

rm -rf node_modules
rm -rf package_lock.json

在它们安装的所有位置(请记住:npm将它们安装在您执行npm install <module_name>的任何目录中)。 find在Linux上是一个有用的命令,用于跟踪所有这些目录。另外,我还必须从所有用户(不仅仅是根用户)中删除.npm目录。完成这些之后,然后使用zypper重新安装nodejs和npm成功。没有其他为我工作。祝你好运。