正在离线安装 node-gyp
Installing node-gyp offline
node-gyp
有数百万个关于离线安装问题的线程,但是,none 的解决方案对我有用。
我实际上正在尝试安装 node-sass-chokidar
,这取决于 node-sass
,因此取决于此包。我正在研究 Ubuntu 16.04.
由于电脑不在线,没法放完整日志,总之:
...
gyp info using node@8.9.4 | linux | x64
...
gyp verb get node dir no --target version specified, falling back to hot node version: 8.9.4
...
gyp verb install version is no good; reinstalling
gyp verb ensuring nodedir is created /home/user/.node-gyp/8.9.4
gyp http GET https://node.js.org/download/release/v.8.9.4/node-v8.9.4-headers.tar.gz
...
gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy...
...
我已经手动下载了以上headers个文件,但我似乎无法使用它们。
我尝试提取 headers,然后提取 yarn add node-sass-chokidar --nodedir /path/to/headers
,但没有成功。
我还尝试了 headers 的确切路径(它们嵌套在 include/node/...
.
内的下载目录中
我尝试的另一件事是将 headers 放在 $HOME/.node-gyp/8.9.4
中,但也失败了。
我想知道我是否需要为 --nodedir
路径下载整个 node
源代码,但是,我认为为未成年人做这样的事情是不合理的 sass构建器库...感觉很疯狂。
我究竟做错了什么?无论我做什么,图书馆都会尝试访问互联网,但无法使用我下载的 headers。
可悲的是,我错过了 installVersion
文件,该文件不存在于 headers 下载中。
一旦我将 headers 提取到 ~/.node-gyp
并添加了一个包含 9
的 installVersion
文件,安装就成功了。
由于防火墙限制,我在尝试设置无法访问互联网的 Ubuntu 服务器时遇到了同样的问题。 node-gyp
出于某种原因试图在其本地缓存下寻找 node-headers,如果没有互联网访问,它会自动失败。这是我所做的:
为 node-gyp 设置节点 headers:
- 获取节点 headers 文件:
curl -O https://nodejs.org/dist/v14.17.3/node-v14.17.3-headers.tar.gz
(确保您拥有合适的正确节点版本,并且您需要一台联网的机器)
- 将headertarball复制到离线机器(方法可能因您的情况而异,例如winscp到vm)
- 创建库查找的 node-gyp 文件夹(如果尚不存在):
mkdir -p ~/.cache/node-gyp/14.17.3
(陷阱:在某些版本中 node-gyp文件夹在 ~/.node-gyp
) 下
- tar 文件到 node-gyp 文件夹 :
tar -xf node-v14.17.3-headers.tar.gz --directory ~/.cache/.node-gyp/6.10.1/ --strip-components 1
(确保你在这里有正确的版本)
- 手动创建
installVersion
:echo 9 >~/.node-gyp/6.10.1/installVersion
(如果您可以上网,通常会自动创建)
node-gyp
有数百万个关于离线安装问题的线程,但是,none 的解决方案对我有用。
我实际上正在尝试安装 node-sass-chokidar
,这取决于 node-sass
,因此取决于此包。我正在研究 Ubuntu 16.04.
由于电脑不在线,没法放完整日志,总之:
...
gyp info using node@8.9.4 | linux | x64
...
gyp verb get node dir no --target version specified, falling back to hot node version: 8.9.4
...
gyp verb install version is no good; reinstalling
gyp verb ensuring nodedir is created /home/user/.node-gyp/8.9.4
gyp http GET https://node.js.org/download/release/v.8.9.4/node-v8.9.4-headers.tar.gz
...
gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy...
...
我已经手动下载了以上headers个文件,但我似乎无法使用它们。
我尝试提取 headers,然后提取 yarn add node-sass-chokidar --nodedir /path/to/headers
,但没有成功。
我还尝试了 headers 的确切路径(它们嵌套在 include/node/...
.
内的下载目录中
我尝试的另一件事是将 headers 放在 $HOME/.node-gyp/8.9.4
中,但也失败了。
我想知道我是否需要为 --nodedir
路径下载整个 node
源代码,但是,我认为为未成年人做这样的事情是不合理的 sass构建器库...感觉很疯狂。
我究竟做错了什么?无论我做什么,图书馆都会尝试访问互联网,但无法使用我下载的 headers。
可悲的是,我错过了 installVersion
文件,该文件不存在于 headers 下载中。
一旦我将 headers 提取到 ~/.node-gyp
并添加了一个包含 9
的 installVersion
文件,安装就成功了。
由于防火墙限制,我在尝试设置无法访问互联网的 Ubuntu 服务器时遇到了同样的问题。 node-gyp
出于某种原因试图在其本地缓存下寻找 node-headers,如果没有互联网访问,它会自动失败。这是我所做的:
为 node-gyp 设置节点 headers:
- 获取节点 headers 文件:
curl -O https://nodejs.org/dist/v14.17.3/node-v14.17.3-headers.tar.gz
(确保您拥有合适的正确节点版本,并且您需要一台联网的机器) - 将headertarball复制到离线机器(方法可能因您的情况而异,例如winscp到vm)
- 创建库查找的 node-gyp 文件夹(如果尚不存在):
mkdir -p ~/.cache/node-gyp/14.17.3
(陷阱:在某些版本中 node-gyp文件夹在~/.node-gyp
) 下
- tar 文件到 node-gyp 文件夹 :
tar -xf node-v14.17.3-headers.tar.gz --directory ~/.cache/.node-gyp/6.10.1/ --strip-components 1
(确保你在这里有正确的版本) - 手动创建
installVersion
:echo 9 >~/.node-gyp/6.10.1/installVersion
(如果您可以上网,通常会自动创建)