我有一台红帽服务器(服务器 1),无法访问互联网。我还有另一台红帽服务器(服务器 2),它可以访问互联网,并且也可以访问服务器 1。
我需要在服务器 1 上安装程序。在本例中,它是关于一个名为 pm2 的节点模块。我不知道如何做到这一点。我应该在服务器2上安装该模块,然后将其上传到服务器1吗?或者一般来说:在这种情况下应采取什么方法?
答案1
将软件包(应以 .rpm 结尾)下载到服务器 2,然后将文件 scp 到服务器 1 并rpm -Uvh package.rpm
以 root 身份运行。
答案2
node
模块不一定以 rpm 形式打包。它可以并且确实从网络读取(绕过 rpm 系统)。你会使用node
包管理器(npm
)安装到一个 tarball 中,您可以将其复制到非联网计算机上,并且解压那里。
这网页为pm2
表示它将通过 进行安装(使用网络)npm
,例如
npm install pm2 -g
您可以npm pack
从那时开始制作一个 tarball。答案由楚图尔兹尔在node.js:在 Linux 上安装 tar.gz解释得很好:决定将其放在目标机器上的何处并在那里解压。
进一步阅读:
此命令安装一个包及其依赖的任何包。如果包有收缩文件,依赖项的安装将由该文件驱动。看npm 收缩包装。
npm issues #1349 - 如何离线安装具有所有依赖项的软件包?,有评论(和阐述):
bundledDependencies
列出您的中的依赖项package.json
,然后运行npm pack
创建一个 tarball。将其转移到另一台机器上,然后 npm install<tarball>
,或者直接手动将其打开。