当我尝试在nodejs服务器上安装时间时,我得到以下错误:

time@0.8.4 install /var/www/track/node_modules/time
node-gyp rebuild
gyp ERR! build error
gyp ERR! stack Error: not found: make
gyp ERR! stack     at F (/usr/lib/nodejs/npm/node_modules/which/which.js:43:28)
gyp ERR! stack     at E (/usr/lib/nodejs/npm/node_modules/which/which.js:46:29)
gyp ERR! stack     at /usr/lib/nodejs/npm/node_modules/which/which.js:57:16
gyp ERR! stack     at Object.oncomplete (fs.js:297:15)
gyp ERR! System Linux 3.2.0-31-virtual
gyp ERR! command "node" "/usr/lib/nodejs/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/www/track/node_modules/time
gyp ERR! node -v v0.8.15
gyp ERR! node-gyp -v v0.7.1
gyp ERR! not ok
npm ERR! time@0.8.4 install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the time@0.8.4 install script.
npm ERR! This is most likely a problem with the time package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls time
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.2.0-31-virtual
npm ERR! command "nodejs" "/usr/bin/npm" "install" "time"
npm ERR! cwd /var/www/track
npm ERR! node -v v0.8.15
npm ERR! npm -v 1.1.66
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /var/www/track/npm-debug.log
npm ERR! not ok code 0

当前回答

高山:

apk --no-cache add build-base

如果gyp也渴望python,请添加以下内容:

export PYTHONUNBUFFERED=1
apk add --update --no-cache python3 \
    && ln -sf python3 /usr/bin/python \
    && python3 -m ensurepip \
    && pip3 install --no-cache --upgrade pip setuptools

(也许这有点过头了,但在我们的例子中,它做到了)

在Dockerfile中,用RUN前缀apk,用ENV替换export,如下所示:

RUN apk --no-cache add build-base

and

ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3 \
    && ln -sf python3 /usr/bin/python \
    && python3 -m ensurepip \
    && pip3 install --no-cache --upgrade pip setuptools

build-base包描述在这里:https://pkgs.alpinelinux.org/package/v3.17/main/x86/build-base,基本上没有自己的内容,但依赖于binutils, fortify-headers, g++, gcc, libc-dev和make。

其他回答

我在使用Docker时遇到了同样的问题,无论是在CENTOS 7还是RHEL 7的基本映像上……做以下几点:

RUN yum install -y make gcc*

对我来说简直完美!

注意:不是安装gcc*中列出的所有69个包,你可以只安装你需要的安装nodejs,如下所示

dnf install -y gcc-c++ make 

你使用的是哪种操作系统?

如果是Ubuntu,你需要安装build-essential包:

$ sudo apt-get install build-essential

然后尝试重新安装该包。

高山:

apk --no-cache add build-base

如果gyp也渴望python,请添加以下内容:

export PYTHONUNBUFFERED=1
apk add --update --no-cache python3 \
    && ln -sf python3 /usr/bin/python \
    && python3 -m ensurepip \
    && pip3 install --no-cache --upgrade pip setuptools

(也许这有点过头了,但在我们的例子中,它做到了)

在Dockerfile中,用RUN前缀apk,用ENV替换export,如下所示:

RUN apk --no-cache add build-base

and

ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3 \
    && ln -sf python3 /usr/bin/python \
    && python3 -m ensurepip \
    && pip3 install --no-cache --upgrade pip setuptools

build-base包描述在这里:https://pkgs.alpinelinux.org/package/v3.17/main/x86/build-base,基本上没有自己的内容,但依赖于binutils, fortify-headers, g++, gcc, libc-dev和make。

如果你正在使用Windows和npm,通过cmd(管理员)安装它:

NPM install -global -production windows-build-tools

对于Manjaro/Arch Linux,您需要安装make和gcc

sudo pacman -S make gcc