Nodejs:如何在没有网络的linux服务器上使用npm安装package

Nodejs:如何在没有网络的linux服务器上使用npm安装package

如题,服务器没有网络,需要安装postgresql的driver,这个driver需要用到node-gyp build。 现在的问题是: 1)如果是纯JS的package只要复制目录就ok了,或者npm install folder? 2)如果不是纯JS的package,就需要先安装node-gyp,这个需要怎么安装 3)安装好了node-gyp以后如何安装上述的package

2 回复

Nodejs:如何在没有网络的Linux服务器上使用npm安装package

在没有网络连接的情况下,要在Linux服务器上安装Node.js包(例如PostgreSQL的驱动程序),可以通过以下步骤来实现。这些步骤将指导你如何处理非纯JavaScript的包,特别是那些需要编译本地代码的包。

1. 准备环境

首先,在有网络的机器上准备你需要的文件:

  • 下载node-gyp及其依赖项。
  • 下载你需要的Node.js包。

假设你的目标包是pg(PostgreSQL的驱动程序)。

# 在有网络的机器上
npm install node-gyp -g
npm install pg

这将会在node_modules/pg目录中生成所需的文件。同时,node-gyp的相关文件也会被下载到全局路径下。

2. 复制必要的文件

将下载好的node_modules/pg目录和全局安装的node-gyp文件复制到你的目标Linux服务器上。

# 假设你已经通过USB或其他方式将文件拷贝到服务器上
scp -r /path/to/node_modules/pg user@your-linux-server:/home/user/
scp -r $(npm root -g)/node-gyp user@your-linux-server:/home/user/

3. 安装node-gyp的依赖项

在目标Linux服务器上,手动安装node-gyp所需的依赖项。这些通常包括pythonmake和一些C/C++编译工具。

sudo apt-get update
sudo apt-get install -y python make g++

4. 安装目标包

将之前复制的pg目录移动到你的项目目录,并设置环境变量以指向正确的node-gyp路径。

# 在目标Linux服务器上
mv /home/user/node_modules/pg /path/to/your/project/node_modules/

# 设置环境变量
export npm_config_node_gyp=/home/user/node-gyp

然后,在项目根目录运行npm命令来安装该包:

cd /path/to/your/project
npm install

这样,即使在没有网络连接的情况下,你也能够成功安装并使用pg包。

通过以上步骤,你可以有效地在没有网络的Linux服务器上安装和使用复杂的Node.js包,包括那些需要本地编译的包。


要在没有网络的Linux服务器上使用npm安装package,可以采用以下步骤:

1. 准备阶段

首先,在一个有网络连接的机器上完成以下操作:

  • 安装node-gyp及其依赖项:

    sudo npm install -g node-gyp
    sudo apt-get install -y make g++
    
  • 下载所需的package及其所有依赖项。例如,如果要下载pg(PostgreSQL driver),可以在有网络的机器上运行:

    npm install pg --production
    

    或者下载整个依赖树:

    npm install pg --production --save
    

2. 复制文件到目标服务器

将下载好的node_modules目录和package.json文件复制到目标服务器的相应位置。

3. 配置环境变量

确保目标服务器上有必要的构建工具。如果没有网络连接,可以手动安装这些工具:

sudo apt-get update
sudo apt-get install -y make g++ python3

4. 在目标服务器上安装package

在目标服务器上,执行以下命令来安装已下载的package:

cd /path/to/your/project
npm install

此时,npm会从本地的node_modules目录中读取并安装package及其依赖项。

示例代码

假设你已经在有网络的机器上运行过以下命令:

mkdir myproject
cd myproject
npm init -y
npm install pg --production

这将在当前目录下创建一个myproject文件夹,并在其中生成package.jsonnode_modules目录。

接下来,将这个文件夹中的内容复制到目标服务器上的相同位置。例如,目标服务器的路径为/home/user/myproject

最后,在目标服务器上执行:

cd /home/user/myproject
npm install

通过这种方式,你可以成功地在没有网络的Linux服务器上安装所需的Node.js package及其依赖项。

回到顶部