GTK+2.4.X编译方法(for MDK 9.1/10.0)
时间:2004-12-16
来源:互联网
摘要 :介绍有关MDK 9.1/10.0 下编译GTK+2.4.x的方法,并参考了MDK相关源码包的依赖,自制了相关的RPM包和SRPM包。
注意 :本文禁止用于商业用途,并且完全“No warrant”!!!写本文纯属个人兴趣。如有不幸,实属无辜!请做好备份系统的安全措施!
关键词:gtk+2.4.x; 安装顺序; 简单美化
参考连接:
作者: csyfek 发布时间: 2004-12-16
释疑:本文的操作并不表明 Mandrake 9.2 不可以进行,只是我并无这个版本试验。见谅!
一、tar 源码包的安装方法
序:--工欲善其事,必先利其器。--
1、从网上得到以下必须组成的包: pkgconfig(0.15),glib(2.4.x),atk(1.6 or 1.7),freetype(2.1.4--2.1.9),fontconfig(2.2.1--2.2.3),xft(2.1.2--2.1.6),pango(1.4.1 or 1.6.0),libpng(1.2.5--1.2.7),tiff(3.6.1),jpegsrc.v6b,gtk+(2.4.x)
2、在你安装以前,温馨提示:请备份好你计算机原有的 /usr/lib/gtk-2.0/ 目录下的所有东西,还有 /etc/gtk-2.0 和 /etc/gtk 和 /etc/pango 和 /etc/fonts 目录下的全部配置文件!
3、请勿删除原有的gtk+版本的所有包!
第一回:--好的开始是成功的一半。--
***以下操作均为root用户进行,安装之前请把相应的包解压,最好先建立一目录,例如:gtk2.4,把所有的包都放到该目录下,方便以后翻查***
1、安装pkgconfig
./configure --prefix=/usr
make
make install
(下面一步向系统表明PKG_CONFIG_PATH变量)
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/X11R6/lib/pkgconfig
(完成上一步,或许你不想一次就把下面的所有东西都编译完,那么你可以在你的root目录下的.bashrc文件中加入上面命令,那么下一次只要以root登陆,就可以自动读取上面设好的变量了!)
(转到/usr/X11R6/lib下看看有无pkgconfig目录,没有?建一个呗!)
/sbin/ldconfig
2、安装glib
./configure --prefix=/usr
make
make install
/sbin/ldconfig
3、安装atk
./configure --prefix=/usr
make
make install
/sbin/ldconfig
***至此,初步准备工作完成。***
作者: csyfek 发布时间: 2004-12-16
***下面将安装和字体有密切相关的包***
1、安装freetype
./configure --prefix=/usr
make
make install
/sbin/ldconfig
2、安装fontconfig
./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man
make
(编译时如果在编译docs的部分时候出错的话,请在 ./configure 一步中加入“--disable-docs”参数。)
make install
/sbin/ldconfig
3、安装xft
插语:在
在 2.1.4 版本中的 freetype.h ,文件开始的部分如下:
#define __FREETYPE_H__
#error "`ft2build' hasn't been include yet!"
.........
#endif
为此,在 1.33 版的 xft 已经把这个问题修正了,详情请看:http://cvsweb.xfree86.org/cvsweb/xc/...1=1.32&r2=1.33。
所以,倘若你使用的 libXft 是1.32版本的话,建议你使用新版本或者按上面的帖子修改相应部分。
***切记,下载1.33版的libXft之后,我们来继续编译***
./configure --prefix=/usr/X11R6
(注意上面的prefix不要打错了。)
make
make install
/sbin/ldconfig
4、安装pango
插语:无论pango的版本是 1.4.1 or 1.6.0 它们的模块标识都是 1.4.0 ,这一点你可以自己试验一下。
***安装***
./configure --prefix=/usr --sysconfdir=/etc
make
make install
/sbin/ldconfig
***至此,容易出现问题的几步都告一段落了。。。先泡一杯茶吧。 ***
作者: csyfek 发布时间: 2004-12-16
1、安装libpng
插语:编译libpng时应选择适合你的操作平台的makefile文件,并且表明你的zlib的库和头文件的位置。这个操作可以通过修改makefile文件中变量值来实现。
***安装步骤如下***
(假设你已经进入了你的libpng解压目录,要做的是把scripts目录下的为linux平台所写的makefile文件makefile.linux拷贝到它的上层目录中,并重命名为makefile,为编译做准备。即如下(1)中的步骤。)
(1) cp scripts/makefile.linux ../makefile
(2) 现在你可以在你的解压目录中打开你刚刚得到的makefile文件,并找到如下的几行分别修改:
prefix=/usr/local ---> prefix=/usr (把安装路径从/usr/local改为/usr)
#Where the zlib library and include files are located.
#.....
#.....
(看到没有“#”号打头的ZLIBLIB和ZLIBINC两行吗?)
ZLIBLIB=../zlib ---> ZLIBLIB=/usr/lib
ZLIBINC=../zlib ---> ZLIBINC=/usr/include
(分别把zlib的库文件和头文件指到你系统相应的库文件和头文件路径,因为你的zlib的文件就在那里。)
(4) make install
(5) /sbin/ldconfig
2、安装jpeg.v6b
插语:与上面的参考链接的帖子相反,应该先安装jpeg.v6b。这是因为tiff的编译需要使用jpeg.v6b的库。
***安装步骤如下***
./configure --enable-static --enable-shared --prefix=/usr
make
make install
/sbin/ldconfig
3、安装tiff
./configure --prefix=/usr --noninteractive --mandir=/usr/share/man
make
make install
/sbin/ldconfig
***至此,只剩下最后一个gtk+2.4.x了。***
作者: csyfek 发布时间: 2004-12-18
1、安装gtk+2.4.x
./configure --prefix=/usr --sysconfdir=/etc
make
make install
/sbin/ldconfig
2、在 X 中试一下运行需要使用gtk+2.4.x的程序,最好是在 X 的终端下运行(例如在konsole下敲入stardict并运行)。你将会看到该程序运行的相关信息。实验表明,程序运行中无甚异常,但会有一些运行中出现错误的提示。其中你很可能会遇到error:GTK engines....。这个“gtk engines”就是提示你的gtk+2.4.x还没有安装“gtk engines”库。那它究竟在哪里呢?
3、查看你的“/usr/lib/gtk-2.0/”目录,看到你原来的2.2版本的gtk+文件夹和新装上的2.4版本的文件夹吗?进入2.2版本的目录,看到有一个名为engines 的文件夹吗?呵呵~~你再看一下2.4版本的目录下面,它有么??? 那你应该明白怎样做吧。。。复制一个不就完了?!
***这个方法虽然我屡试不爽,不过毕竟是不同版本的gtk+的。所以这也是我后面接着要写的“从SRPM包安装gtk+2.4.x的原因之一。***
作者: csyfek 发布时间: 2004-12-18
第五回:--有那么一点用处,就有那么一点意义。--
插语:前面已经介绍了使用源代码包编译的过程,但若每一次都如此重复,未免太麻烦了。能不能把它们做成属于适合自己机子的包,以后需要时就可以使用呢?当然能了! 请接着往下看。
1、准备知识
(1) RPM 包的依赖性是一个非常棘手的问题,我们要做适合自己使用的包,那就要知道一点 RPM 包安装的顺序,否则将会出现一些意想不到的事情! 那么如何知道我们打好的包安装的先后呢?有一个非常便利的方法!就是使用 urpmi 工具。(还不知道urpmi命令的使用方法?快看看fundawang老大写的“打破Debian神话之一:urpmi系列工具”吧!)一般说来,urpmi可以知道各个包之间的安装的先后关系。而我们还可以巧妙地利用 rpm -qR 命令来知道卸载的先后关系,然后,把它逆转过来,同样可以了解安装的先后。不过 rpm -qR 只提供一个大概的信息,具体安装应以 urpmi 为准。
(2) 编写 spec 文件。由于 Mandrake 提供很多源代码RPM包(*.src.rpm),里面就包含必需的spec文件,所以这一步我们可以省很多功夫,只需要我们按照自己的要求改变其中的内容。如何获得其中的spec文件呢?可使用下面的命令:
#rpm --rebuild *.src.rpm
(上面一步不是熟悉的编译RPM包的命令吗?!)
#当看到开始解开压缩包(屏幕上显示:tar -xv- )的动作时,请停止编译过程。(可使用同时按ctrl和c键。)
#cd /usr/src/RPM/SPECS/
#ls
***此时,你也许会看到那些spec文件。对,我们就是要对他们做些修改。(具体的修改内容涉及spec文件的编写,有兴趣的兄弟请参考哈密瓜老大的“RPM SPEC文件编写通用规范”和probing老大的“精通RPM之--制作篇”二贴。先在此对哈兄和probing兄表示感谢! )
2、编译*.src.rpm
#rpm --rebuild name.src.rpm (name 是你要编译的SRPM包的名字)
(如上面的编译过程没有出现错误的话,继续下一步。)
#cd /usr/src/RPM/RPMS/i586/
(上面的路径是针对 Mandrake 默认设置来说的,由于 Mandrake 使用i586优化,所以要转到i586目录。此时,你应该看到你自己编译成功的 name.i586.rpm 包。)
#rpm -ivh --force name.i586.rpm
(之所以使用 -i 参数,是因为避免安装 gtk+2.4.x 而删除原来的 gtk+2.2 版本的某些库文件和头文件。)
***至此,我们大略知道了安装自己制作的RPM包而需要做的操作。下面我们将看看应该依什么顺序来编译和制作这些必需的包。***
作者: csyfek 发布时间: 2004-12-21
***由于网络问题,耽误了一天的时间,请大家包涵!最后一个部分来到了自己动手编译RPM包的时候了。编译的操作方法,上一回已经讲及。这里主要是安排安装的顺序。***
插语:在安装以下所有包之前,请确认你已经安装了gtk-doc这个包,因为下面的若干包在编译时候,都需要此包。若无此包的话,请务必从网络上下载,并安装之。请预先在你的机子环境变量中设置好PKG_CONFIG_PATH变量的值,设置方法和使用tar包安装的开始设置一样。在你安装好每一个编译好的RPM包之后,请执行/sbin/ldconfig命令。安装的顺序,下面已经详细写明,其中有的包可能出现冲突情况,请使用rpm -ivh --force --nodeps name.i586.rpm命令来安装。只要按照下面的顺序,操作应是无任何问题的。
***下面开始了喔!***
1、重建并安装pkgconfig包
***将得到的RPM包按以下顺序安装***
pkgconfig
2、重建并安装glib2.0包
***将得到的RPM包按以下顺序安装***
libglib2.0_0,glib-gettextize,libglib2.0_0-devel
3、重建并安装atk1.0包
***将得到的RPM包按以下顺序安装***
libatk1.0_0,libatk1.0_0-devel
4、重建并安装freetype包
***将得到的RPM包按以下顺序安装***
freetype,freetype-devel,freetype-tools
5、重建并安装freetype2包
***将得到的RPM包按以下顺序安装***
libfreetype6,libfreetype6-devel,libfreetype6-static-devel
######################################################################################
6、重建并安装fontconfig包
***将得到的RPM包按以下顺序安装***
libfontconfig1,fontconfig,libfontconfig1-devel
***这里我提供了两个SRPM包,一个是原来Mandrake的SRPM包,另一个包包含wood兄提供的fonts.conf文件。若你想只使用这个fonts.conf文件,可以到网站单独下载。(详见帖子“只要几秒钟,让你的是文字体不再发虚”,感谢wood兄!),我修改了原来的spec文件而打成的SRPM包(fontconfig-2.2.1-7.sc.mdk10.src.rpm)。使用该fonts.conf文件是一个又简单又容易显效的美化方法。而且安装此包只替换你原来的fonts.conf文件(放心,你的原fonts.conf文件将以fonts.conf.save文件保存于原目录下。想要回原来的?改回名字就就可以拉! )
7、重建并安装libXft包
***将得到的RPM包按以下顺序安装***
libXft,libXft-devel
######################################################################################
注:fontconfig和libXft这两个包,再我后来的试验中,可以不用安装。也就是说,您可以使用原来系统自带的版本编译后续的包。但是,你应确保libfontconfig1-devel和libXft-devel的包已经安装上。
8、重建并安装pango包
***将得到的RPM包按以下顺序安装***
libpango1.0_0,libpango1.0_0-modules,pango,libpango1.0_0-devel,libpango1.0_0-static-devel
9、重建并安装libpng包
***将得到的RPM包按以下顺序安装***
libpng3,libpng3-devel,libpng3-static-devel
10、重建并安装libjpeg-6b包
***将得到的RPM包按以下顺序安装***
libjpeg62,libjpeg62-devel,libjpeg-progs,libjpeg-static-devel
11、重建并安装libtiff包
***将得到的RPM包按以下顺序安装***
libtiff3,libtiff3-devel,libtiff-progs,libtiff3-static-devel
12、重建并安装gtk+2.0包
***将得到的RPM包按以下顺序安装***
libgdk_pixbuf2.0_0,gtk+2.0,libgtk+2.0_0,libgtk+-x11-2.0_0,libgdk_pixbuf2.0_0-devel,libgtk+2.0_0-devel,libgtk+2.0_0-static-devel
13、重建并安装gtk-engines2包
***将得到的RPM包按以下顺序安装***
gtk-engines2
(安装好上面的包后,你将会看到省去了使用tar包安装时候要复制engines目录的烦恼。。。)
***完成之后,就请你仔细看看gtk+2.4.x的新面孔吧! :rolleyes:***
结语
使用制作好的SRPM包的确可以免去很多重复安装步骤的烦恼,但也增添了安装时候带来的依赖顺序问题,而且使用tar包总是可以得到最新的信息。这两个方面的各有利弊,我们懂多一点,迷茫便少一点,Linux也便靠近我们一点。
(完)
作者: csyfek 发布时间: 2004-12-23
---------------------------------
由于网站的缘故,所有的包都已经不再提供下载了,请见到此贴的兄弟需要的话再发邮件给我或者跟贴吧。不好意思了。。。

作者: csyfek 发布时间: 2004-12-28
我按照你的方法,在安装glib2.4.8 make时,出现了下面的错误:
Making all in po
make[2]: Entering directory `/home/mwsxh/gtk/glib-2.4.8/po'
make[2]: *** 没有规则可以创建“POTFILES”需要的目标“POTFILES.in”。 停止。
make[2]: Leaving directory `/home/mwsxh/gtk/glib-2.4.8/po'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/home/mwsxh/gtk/glib-2.4.8'
make: *** [all] 错误 2
希望你能看到这个并帮我一把
非常感谢
QQ:8110098
作者: mwsxh 发布时间: 2005-02-27
作者: csyfek 发布时间: 2005-02-28
是不是也按照同样的方法?
3x
作者: linnux 发布时间: 2005-02-28
按照你的方法我来作的
下的glib2.4.4
编译之后安装atk1.6.0
结果却说:
checking for GLIB - version >= 2.0.0...
*** 'pkg-config --modversion glib-2.0' returned 2.4.4, but GLIB (2.4.6)
*** was found! If pkg-config was correct, then it is best
*** to remove the old version of GLib. You may also be able to fix the error
*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing
*** /etc/ld.so.conf. Make sure you have run ldconfig if that is
*** required on your system.
我是新手 刚刚开始用linux 装的mdk10.1
请问这个问题该怎么解决呢?
作者: linnux 发布时间: 2005-02-28
一句话,Mandrake10.1版本已经可以很好地满足你的要求了。
作者: csyfek 发布时间: 2005-02-28
事实证明果然很盲啊:)
不好意思
我想法去卸载吧
没有了解那么多
当时就是按照你的攻略直接搞的:)
作者: linnux 发布时间: 2005-03-01
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28