Ubuntu 安装Sharp/usr/include/vips/vips8:35:25:致命错误:glib object.h

Ubuntu 安装Sharp/usr/include/vips/vips8:35:25:致命错误:glib object.h,ubuntu,npm,glib,sharp,vips,Ubuntu,Npm,Glib,Sharp,Vips,我正在尝试在Ubuntu 16.04 LTS上安装sharp 我本来没有VIP,所以我安装了 sudo apt-get install libvips-dev 这修复了第一个错误,但现在我遇到了另一个错误: In file included from ../src/common.cc:25:0: /usr/include/vips/vips8:35:25: fatal error: glib-object.h: No such file or directory

我正在尝试在Ubuntu 16.04 LTS上安装sharp

我本来没有VIP,所以我安装了

    sudo apt-get install libvips-dev
这修复了第一个错误,但现在我遇到了另一个错误:

    In file included from ../src/common.cc:25:0: 
    /usr/include/vips/vips8:35:25: fatal error: glib-object.h: No such file or directory
    compilation terminated.
    sharp.target.mk:115: recipe for target 'Release/obj.target/sharp/src/common.o' failed
    make: *** [Release/obj.target/sharp/src/common.o] Error 1
    make: Leaving directory '/home/rachel/node_modules/sharp/build'
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack   at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:269:23)
    gyp ERR! stack     at emitTwo (events.js:87:13)
    gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
    gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
    gyp ERR! System Linux 4.15.0-36-generic
    gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild"
    gyp ERR! cwd /home/rachel/node_modules/sharp
    gyp ERR! node -v v4.2.6
    gyp ERR! node-gyp -v v3.0.3
    gyp ERR! not ok
所以,我找到了glib object.h所属的包,并尝试安装它,但它已经安装好了。事实上,该文件确实存在

    /usr/include/glib-2.0/glib-object.h
在浏览了很多之后,我发现了一个类似的问题,他们问标题的位置是否在pkg config--cflags vips cpp中。对于提问者来说不是,这导致了修复,但对我来说是(倒数第二)

我还没有找到任何解决方案,一旦验证文件存在,其文件夹包括在上述输出。我完全不知道下一步该怎么办,所以任何建议都将不胜感激


npm是一个全新的安装(从昨天开始),以防万一。

看起来VIP cpp在寻找GObject,而不是GLib,但pkg配置文件只要求GLib。GObject基于GLib,它们密切相关,但它们不是同一个项目

您应该以某种方式将
gobject-2.0
添加到pkg配置依赖项中。您可以在sharp build系统中执行此操作(无论它在哪里拉动
VIP cpp
软件包,都需要依赖于
gobject-2.0
)。您还可以修复
vips cpp
pkg配置文件,将
gobject-2.0
添加为依赖项,但是这是
$LIBDIR/pkg config/vips cpp.pc

你有两个问题(我认为):首先,Ubuntu 16.04附带的
nodejs
是4.x,而这在2018年4月变得不受支持——目前受支持的
nodejs
是8.x。其次,Ubuntu 16.04附带的
libvips
也很古老,不能与当前的
sharp
配合使用

幸运的是,修复方法很简单:使用
nodejs
6、8和10,
sharp
将自动为您下载
libvips
二进制文件

我使用本指南安装了
nodejs
8:

那么就:

npm install sharp
一切顺利。此处为
Dockerfile
,供参考:


Sharp应该在Ubuntu 14.04+上包含一个libvips二进制文件,请参阅。。。您只需
npm安装sharp
。我会卸载Ubuntu的libvips,然后再次尝试从npm安装sharp。谢谢大家。我最终决定升级我的操作系统,这修复了一切。我无法测试在没有升级的情况下如何修复它,但我得出的结论是,它使用的是不受支持的旧库。嗨,我是libvips维护人员。vips-cpp.pc要求使用gobject:所以我认为这应该没问题。OP运行的是旧版本的Ubuntu;也许它有一个版本的libvips来自?哦,是的,OP不是从源代码构建的,他们使用的是发行版libvips。它将是古老的。我将有一个更新的节点加入docker。我在Ubuntu18.04,node 12.x中也遇到了同样的问题,但通过从源代码构建libvips解决了这个问题。
npm install sharp