CentOS搭建GTK

1. GTK+的安装

如果系统中已经安装有 GTK+,要安装新版本的 GTK+ 时,最好使用新的安装目录/opt/gtk,GTK+ 及其依赖库都将安装在这个目录下。

原因为:在 Linux 系统上使用的很多软件都是在 GTK+ 库的支持下运行的(比如 GNOME桌面)。如果相关的 GTK+ 库发生损坏,或者库的版本发生了变化,轻微的可造成某些程序不能正常运行,严重的可能会给系统运行带来障碍(比如进入不了桌面环境,等等。)因此,新版本的 GTK+ 的安装应该避免对原来的 GTK+ 造成影响,以保证系统的正常运行。

1.1 配置重要的环境变量

$ export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
$ export LD_LIBRARY_PATH=/opt/gtk/lib64:/opt/gtk/lib:$LD_LIBRARY_PATH

一些程序的运行需要依赖于此环境变量,可以将其加入.bashrc配置文件中。

1.2 按顺序下载源码包并安装

最好各个选择稳定版本,参考:http://www.gtk.org/download/linux.php

根据依赖关系的要求,库的安装大致按照这样的先后顺序进行:libffi(3.0.13)GLib(2.34.3)Atk(2.6.0)、[optional: poppler]、[optional:libspectre,需要libgs(ghostscript)]、cairo(1.10.2)Pango(1.32.6)TIFF librarygdk-pixbuf(2.26.5)Gtk+(3.6.0)

其中TIFF library可以使用‘yum install libtiff*’进行安装。

安装Pango的时候,提示错误:
configure: error: *** Could not enable any backends.
*** Must have at least one backend to build Pango.
此时,需要安装:
HarfBuzz(old-master),需要安装老版本的。
fontconfig(2.10.93),需要安装最新版的。
FreeType(2.4.9)

在安装gtk+-3.6 configure的时候,提示错误:
configure: error: Package requirements (atk atk-bridge-2.0) were not met
则需要安装 at-spi2-core-2.6.3at-spi2-atk-2.6.2

花费了近一晚上,终于搞定了,真是不简单啊…
其实,可以按如下顺序安装:

libxml2-2.9.1   ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz
DocBook-utils-0.6.14    ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz
libxslt-1.1.28  ftp://xmlsoft.org/libxslt/libxslt-1.1.28.tar.gz
SGMLSpm-1.1     http://search.cpan.org/CPAN/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz
libffi-3.0.13   ftp://sourceware.org/pub/libffi/libffi-3.0.13.tar.gz
xcb-proto-1.8   http://xcb.freedesktop.org/dist/xcb-proto-1.8.tar.bz2
FreeType-2.4.12 ftp://mirror.ovh.net/gentoo-distfiles/distfiles/freetype-2.4.12.tar.bz2
expat-2.1.0     http://downloads.sourceforge.net/expat/expat-2.1.0.tar.gz
libXau-1.0.8    ftp://ftp.x.org/pub/individual/lib/libXau-1.0.8.tar.bz2
libXdmcp-1.1.1  ftp://ftp.x.org/pub/individual/lib/libXdmcp-1.1.1.tar.bz2
Fontconfig-2.10.2       http://fontconfig.org/release/fontconfig-2.10.2.tar.bz2
GLib-2.34.3     ftp://ftp.gnome.org/pub/gnome/sources/glib/2.34/glib-2.34.3.tar.xz
Pixman-0.30.0   http://cairographics.org/releases/pixman-0.30.0.tar.gz
libxcb-1.9.1    http://xcb.freedesktop.org/dist/libxcb-1.9.1.tar.bz2
libpng-1.6.2    http://downloads.sourceforge.net/libpng/libpng-1.6.2.tar.xz
Cairo-1.12.14   http://cairographics.org/releases/cairo-1.12.14.tar.xz
Graphite2       http://projects.palaso.org/attachments/download/384/graphite2-1.2.3.tgz
ASM-2.10.07     http://www.nasm.us/pub/nasm/releasebuilds/2.10.07/nasm-2.10.07.tar.xz
D-Bus-1.6.10    http://dbus.freedesktop.org/releases/dbus/dbus-1.6.10.tar.gz
ICU-51.2        http://download.icu-project.org/files/icu4c/51.2/icu4c-51_2-src.tgz
Intltool-0.50.2 http://launchpad.net/intltool/trunk/0.50.2/+download/intltool-0.50.2.tar.gz
gobject-introspection-1.34.2    ftp://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.34/gobject-introspection-1.34.2.tar.xz
GTK-Doc-1.18    ftp://ftp.gnome.org/pub/gnome/sources/gtk-doc/1.18/gtk-doc-1.18.tar.xz
libjpeg-turbo-1.3.0     http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.0.tar.gz
LibTIFF-4.0.3   ftp://ftp.remotesensing.org/libtiff/tiff-4.0.3.tar.gz
at-spi2-core-2.6.3      ftp://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.6/at-spi2-core-2.6.3.tar.xz
Harfbuzz-0.9.18 http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.18.tar.bz2
ATK-2.6.0       ftp://ftp.gnome.org/pub/gnome/sources/atk/2.6/atk-2.6.0.tar.xz
at-spi2-atk-2.6.2       ftp://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/2.6/at-spi2-atk-2.6.2.tar.xz
gdk-pixbuf-2.26.5       ftp://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.5.tar.xz
Pango-1.32.5    ftp://ftp.gnome.org/pub/gnome/sources/pango/1.32/pango-1.32.5.tar.xz
GTK+-3.6.4              ftp://ftp.gnome.org/pub/gnome/sources/gtk+/3.6/gtk+-3.6.4.tar.xz

以上安装中需要注意的是:1. 在安装DocBook-utils-0.6.14的时候,configure后需要接参数–disable-docs,否则fontconfig的安装会报错。 2. 若提示错误:glib-compile-schemas: command not found,则表示在root用户中没有该命令,于是make install不成功,需要使root用户的$PATH中含有/opt/gtk/bin目录。

匿名进行回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据