添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

如何在离线服务器上安装npm -g

https://stackoverflow.com/questions/40976100/how-to-installl-pm2-on-offline-server

我安装了npmbox ( https://github.com/arei/npmbox )在我的离线REHL服务器上,但我仍然不知道如何用它来安装pm2或任何其他软件包。

2 个评论
@Downvoter:如果你知道,请留下解决方案?
@Soren:如何在包中包括所有的依赖性?
node.js
linux
ubuntu
redhat
pm2
Jitendra Pancholi
Jitendra Pancholi
发布于 2016-12-15
4 个回答
Soren
Soren
发布于 2022-10-19
已采纳
0 人赞同

You use npm install & pack

首先在一台在线的机器上,你安装

$ npm install pm2

然后你把它包装起来

$ npm pack pm2

这给了你一个tar文件 -- 你把这个tar文件复制到你的离线机器上并安装,就像

$ npm install pm2-2.2.1.tgz 

然而,上述方法只为特定的模块创建了依赖性的tarball,你可能仍然有需要解决的依赖性。虽然你可以简单地手动打包每一个依赖项,但有一个模块可以为你自动打包

$ npm install -g npm-bundle

然后你可以做

$ npm-bundle pm2

为个别包,或者如果你有一个package.json为你的项目

$ npm-bundle

把所有东西都打包成一个大的焦油球

非常感谢。npm install pm2-2.2.1.tgz -g 对我有用。
如何在软件包中包含所有的依赖项?
fabianlee.org/2016/10/02/… 我试过这个方法,但它也不起作用。它在寻找 registry.npmjs.org/pm2/-/pm2-2.2.2.tgz
npm-bundle对我来说是完美的......你有没有试着在bundle之前在本地安装pm2(没有-g)......添加了我上面的步骤
and npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent
mahendra rathod
mahendra rathod
发布于 2022-10-19
0 人赞同

另一种离线安装pm2的方法是。

用@soren提到的上述步骤创建tar文件。

在我的例子中,安装在执行 "npm install pm2.tar.gz "时挂起。

npm install pm2.tar.gz
[..................] - fetchMetadata: sill resolveWithNewModule pm2@5.1.2 checking installable status
[..................] - fetchMetadata: sill resolveWithNewModule pm2@5.1.2 checking installable status

为了解决这个问题,我已经添加了npm注册表,但是这did not work.

npm config set registry="http://registry.npmjs.org"

服务器进入DMZ或在一个私人子网中,它是不工作的。

Solution:-

获取node_module目录的安装路径

#npm config get prefix

Extract the tar file & Copy the pm2 directory to node_module

 #tar -zxvf pm2.tar.gz
 #cp pm2 /usr/local/lib/node_modules/npm/node_modules/ -r

cd into the /usr/bin & Crete the simlink for pm2

 # cd /usr/bin
 #ln -s /usr/local/lib/node_modules/npm/node_modules/pm2/bin/pm2 pm2

check pm2 command output & its output.

    # pm2
    usage: pm2 [options] <command>
    pm2 -h, --help             all available commands and options
    pm2 examples               display pm2 usage examples
    pm2 <command> -h           help on a specific command
    Access pm2 files in ~/.pm2
    
mahendra rathod
mahendra rathod
发布于 2022-10-19
0 人赞同

@Soren的答案对我有用。要在全球范围内安装它,你需要向它传递-g参数。

Tested it on OpenSUSE 15 Enterprise.

ip-192-168-2-36:~ # npm install pm2-5.1.2.tgz -g
npm WARN deprecated 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.
added 181 packages, and audited 182 packages in 5s
12 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities
ip-192-168-2-36:~ # pm2 -v
[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
5.1.2

如果没有-g参数,pm2命令将无法工作。

ip-192-168-2-36:~ # pm2
-bash: /usr/local/bin/pm2: No such file or directory
    
Aaquib Jawed
Aaquib Jawed
发布于 2022-10-19
0 人赞同

另一种方式。

只要在你的机器上写一个节点服务,pm2就不再需要运行你的应用程序了。

Step -1

Run the command to find the node path which node --> /opt/rh/rh-nodejs14/root/usr/bin/node

Step -2

cd /etc/systemd/system

Step -3

写一个节点的服务,如下:-

vi node.service
[Unit]
Description=Node Service for Dashboard Application
After=syslog.target
[Service]
User=root
ExecStart=/opt/rh/rh-nodejs14/root/usr/bin/node 
/home/node/deployed/backend/server.js SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

--> save it

Step -4

启动节点服务

systemctl start node.service