在 CentOS 5 上安装 harfbuzz 1.0.1
installing harfbuzz 1.0.1 on CentOS 5
我正在尝试在没有 sudo 访问权限的 CentOS 5 机器上安装 harfbuzz-1.0.1,因此需要安装到非标准位置。我已经下载并解压了源代码,并在我的 $PKG_CONFIG_PATH
中添加了我认为是相关的依赖项。这些软件包包括:
- freetype2
- icu-uc
检查“$PKG_CONFIG_PATH”是否正确:
$pkg-config --modversion freetype2
9.22.3
$pkg-config --modversion icu-uc
55.1
在解压的源目录中,我运行:
$ ./configure --prefix=/some/custom/path
# produces lots of output, but summary here
Build configuration:
Unicode callbacks (you want at least one):
Glib: true
ICU: true
UCDN: false
Font callbacks (the more the better):
FreeType: false
Tools used for command-line utilities:
Cairo: true
Fontconfig: true
Additional shapers (the more the better):
Graphite2: false
Platform shapers (not normally needed):
CoreText: false
Uniscribe: false
Other features:
Documentation: no
GObject bindings: false
Introspection: false
但是,make
失败并出现以下错误:
In file included from hb-glib.cc:31:0:
hb-glib.h:50:22: error: 'GBytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.h:50:30: error: 'gbytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.cc:389:22: error: redefinition of 'hb_blob_t* hb_glib_blob_create'
hb_glib_blob_create (GBytes *gbytes)
^
In file included from hb-glib.cc:31:0:
hb-glib.h:50:1: error: 'hb_blob_t* hb_glib_blob_create' previously defined here
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.cc:389:22: error: 'GBytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes)
^
hb-glib.cc:389:30: error: 'gbytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes)
^
make[4]: *** [libharfbuzz_la-hb-glib.lo] Error 1
我无法从 config.log
文件中确定任何内容,但我又不确定要寻找什么。我猜想也许某处存在未满足的依赖关系,但此时我有点不知所措。任何帮助将不胜感激,如果需要,我很乐意提供更多信息。非常感谢。
如果有帮助,请点击这里 the full config.log。
在 glib 2.32 中添加了 glib GBytes
type。
glib 的版本是 CentOS 5 是 2.12,很多旧。
harfbuzz 配置设置应该检查 glib 的兼容版本,而不是在失败之前进行编译。这是他们的 "bug"。
您可以使用旧版本的 harfbuzz,它可以使用 CentOS 5 附带的 glib 版本,或者您也可以构建 "install" 您自己的 glib 副本。
我正在尝试在没有 sudo 访问权限的 CentOS 5 机器上安装 harfbuzz-1.0.1,因此需要安装到非标准位置。我已经下载并解压了源代码,并在我的 $PKG_CONFIG_PATH
中添加了我认为是相关的依赖项。这些软件包包括:
- freetype2
- icu-uc
检查“$PKG_CONFIG_PATH”是否正确:
$pkg-config --modversion freetype2
9.22.3
$pkg-config --modversion icu-uc
55.1
在解压的源目录中,我运行:
$ ./configure --prefix=/some/custom/path
# produces lots of output, but summary here
Build configuration:
Unicode callbacks (you want at least one):
Glib: true
ICU: true
UCDN: false
Font callbacks (the more the better):
FreeType: false
Tools used for command-line utilities:
Cairo: true
Fontconfig: true
Additional shapers (the more the better):
Graphite2: false
Platform shapers (not normally needed):
CoreText: false
Uniscribe: false
Other features:
Documentation: no
GObject bindings: false
Introspection: false
但是,make
失败并出现以下错误:
In file included from hb-glib.cc:31:0:
hb-glib.h:50:22: error: 'GBytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.h:50:30: error: 'gbytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.cc:389:22: error: redefinition of 'hb_blob_t* hb_glib_blob_create'
hb_glib_blob_create (GBytes *gbytes)
^
In file included from hb-glib.cc:31:0:
hb-glib.h:50:1: error: 'hb_blob_t* hb_glib_blob_create' previously defined here
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.cc:389:22: error: 'GBytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes)
^
hb-glib.cc:389:30: error: 'gbytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes)
^
make[4]: *** [libharfbuzz_la-hb-glib.lo] Error 1
我无法从 config.log
文件中确定任何内容,但我又不确定要寻找什么。我猜想也许某处存在未满足的依赖关系,但此时我有点不知所措。任何帮助将不胜感激,如果需要,我很乐意提供更多信息。非常感谢。
如果有帮助,请点击这里 the full config.log。
在 glib 2.32 中添加了 glib GBytes
type。
glib 的版本是 CentOS 5 是 2.12,很多旧。
harfbuzz 配置设置应该检查 glib 的兼容版本,而不是在失败之前进行编译。这是他们的 "bug"。
您可以使用旧版本的 harfbuzz,它可以使用 CentOS 5 附带的 glib 版本,或者您也可以构建 "install" 您自己的 glib 副本。