首页 > 学院 > 开发设计 > 正文

CentOS7.0源代码安装GTK+3.22.7

2019-11-14 10:28:46
字体:
来源:转载
供稿:网友

首先:C代码的源码安装必须要安装gcc的编译器,CentOS7.0装好之后默认是不安装gcc编译器的。

            安装gcc:rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm    

            安装上g++:rpm -ivh gcc-c++-4.8.5-4.el7.x86_64.rpm

下面介绍安装GTK+要用到的rpm包、源码压缩包、yum安装命令、./configure(配置)时用到的参数以及安装了那些东西,安装位置:

           1、rpm包在CentOS光盘的Packages文件夹中又几乎全部的rpm包,上面安装编译器的包就是从Packages文件夹中找到的,基本不用另

                 外下载。查找某个rpm包命令:ls -l | grep [xxxx]

           2、源代码压缩包在GTK+官网上需要Glib2.50,ATK2.22,Gdk-Pixbuf2.36,GObject-Introspection1.50,Pango1.40,GTK+3.22

                 六个源代码压缩包,实际安装过程中由于依赖关系存在还可能需要其他的源代码包,等用到再作说明。GTK+官网所需源码包截

                 图(GTK+的官网没事多看看):

             

            3、yum命令安装,既然Packages里面有几乎全部的rpm包干嘛还使用yum命令?实际安装包过程中,包的依赖包太多,依赖包又需要

                  大量其他的依赖包,容易搞混,使用一个yum命令轻松搞定。

            4、源码安装库或者程序是./configure这一步一般不用给出参数,大不了给出--PRefix=/opt/gtk+参数更改默认的安装位置,安装

                  gtk+的过程中还会用到其他的参数用到时候再做说明。

            5、安装位置:在gtk+的安装过程中,所有源码安装的文件都默认安装在/usr/local下的bin,include,lib,share。bin下是二进制的可执行

                  命令,include下是C语言的头文件,就是.h文件,lib里面就是一些库文件,share就是一些说明文档、帮助文档,就是是用man命

                  令是出来的帮助。

在安装GTK+之前先介绍GTK+所需要的每一个依赖包或者库的作用,下面这张图很详细说明了GTK+的构成:

             

             1)Glib:The GLib library provides core non-graphical(绘画的) functionality(功能) such as high level data types, Unicode 

                               manipulation(操作、控制), and an object and type system to C programs(GTK+官网对Glib库的介绍)。其实就

                               是linux平台下常用的C语言函数库,提供了C语言的常用数据结构的定义、相关的处理函数,有趣而实用的宏,可

                               以值的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。

             2)ATK:ATK is the accessibility(易接近、可达的) Toolkit(工具包). It provides a set of generic(一般的) interfaces allowing 

                              accessibility technologies such as screen readers to interact (互动)with a graphical user interface(GTK+官网对ATK

                              库的介绍)。

             3)Cairo:在GTK+的官网中并没有提到需要它,实际肯定需要。是一个跨平台的开放源代码的矢量图形函数库,可以提供高质量的显

                                 示和打印输出。主战场在Linux的Gnome桌面环境领域。

            4)Gdk-Pixbuf:provides facilities(能力,场,设备) for loading images in a variety of file formats(GTK+官网对Gdk-Pixbuf的介

                                          绍)。做界面开发吗,专门处理图片的。

            5)Gobject-Introspection:is a framework for making introspection(自我反省; 内省) data available to language 

                                                             bindings(GTK+官网对GIOde介绍)。上图中GIO,用于产生与解析 C 程序库 API 元信

                                                             息,以便于动态语言(或托管语言)绑定基于 C + GObject 的程序库。

           6)Pango:is a library for internationalized text handling(GTK+官网对Pango的介绍)。国际化的文本处理库,说白了处理文字

                                 的。

第一步:glib-2.50.2安装:

            1)zlib-devel,光盘镜像中有 [root@CentOS Packages]# rpm -ivh zlib-devel-1.2.7-15.el7.x86_64.rpm

            2)libffi-devel,光盘镜像中有 [root@CentOS Packages]# rpm -ivh libffi-devel-3.0.13-16.el7.x86_64.rpm

            3)libmount-devel,镜像中也含有该包,不过有依赖关系,依赖关系并不多,可以尝试一个个手动装上去,为了方便使用yum命

                  令 [root@CentOS Packages]# yum install libmount-devel

            4)pcre库光盘中没有需要到官网http://www.pcre.org/下载源代码包。具体分4步进行:

                 1、配置./configure --enable-utf-8 --enable-unicode-properties   其中给出的配置参数是防止在glib在make是出现The system-

                       supplied PCRE does not support unicode properties or UTF-8的错误。

                 2、构建make

                 3、安装make install(气质就是把这些二进制命令、头文件、库文件、帮助文档拷贝到安装目录对应的文件夹下) 注意使用root权

                       限。

                 4、配置PKG_CONFIG_PATH环境变量    安装库文件时都会在安装目录的lib/pkgconfig目录下生成.pc文件,这个.pc文件记录着库的

                       名称、版本、安装路径等信息(有兴趣的话可以找到文件打开看看)。配置PKG_CONFIG_PATH变量就是告诉pkg-config程序除了

                       在系统默认路径下搜索.pc文件,还要到用户配置的目录下搜索.pc文件。后面还会有一个LB_LIBRARY_PATH变量,用到时再作

                       说明。配置如下:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

            5)1至4步只是把要安装glib的准备工作做完,正式开始源码安装glib,也是分4步:

                 1、./configure  想要改变安装路径的话就加--prefix=参数,本次安装过程中不需要。

                 2、make

                 3、make install  在该文件夹下没有吸入权限的话,使用root权限

                 4、配置环境变量  此时不仅要配PKG_CONFIG_PATH,还有LD_LIBRARY_PATH,该变量的作用是在编译期间或者程序运行期间所需

                       要的动态库路径,配置如下:                

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATHexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

                       如果没有配置LD_LIBRARY_PATH变量,发现在后续的gtk+安装中会出现’pkg-config --modversion glib-2.0‘ returned 

                       2.50.2,but GLIB(2.42.2) was found!的问题,并提示移除老版本的glib。在网上也有人遇到这样的问题并且给出了删除

                      老版本glib的方法,but经过本人认真分析、仔细检查在/usr下的bin、include、lib、share目录并没有任何glib命名或开

                      头的任何文件或者文件夹,估计glib2.42.2根本没有安装(至少没有装在/usr这个目录下)。后来也是在网上查到配置LD

                      _LIBRARY_PATH这个变量可以解决在后续安装中出现的这个问题。

第二步:atk-2.22.0安装,在前面的基础上进行配置、构建、安装,不会出现任何问题。

            1)./configure 不用给出配置参数,除非你要改变安装路径

            2)make

            3)make install

第三步:安装cairo开发包,关于cairo有2个开发包要装。1、cairo-devel 2、cairo-gobject-devel

            1)cairo-devel包光盘中有,但是依赖关系真的很多,好吧!所以使用yum安装

                  [root@CentOS Packages]# yum install cairo-devel

            2)cairo-gobject-devel包光盘中有,直接安装

                  [root@CentOS Packages]# rpm -ivh cairo-gobject-devel-1.14.2-1.el7.x86_64.rpm

第四步:gdk-pixbuf-2.36.4安装

             1)需要3个依赖包libtiff-devel,libjpeg-turbo-devel,libpng,libpng-devel。镜像中都有,直接安装

[root@CentOS Packages]# rpm -ivh libtiff-devel-4.0.3-14.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm[root@CentOS Packages]# rpm -e --nodeps libpng-2:1.5.13-7.el7_2.x86_64.rpm [root@CentOS Packages]# rpm -ivh libpng-1.5.13-5.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh libpng-devel-1.5.13-5.el7.x86_64.rpm

                   其中第3行卸载的较新版的libpng,第4行安装了低版本的libpng,主要是为了配对对应的-devel开发包;注意第3步的--nodepes

                   不顾及依赖关系的卸载包不要随便使用,仅在这里本人试过几次没什么大问题,若是其他包的卸载就不一定了,我就遇到过,比

                   如终端打不开,--nodepes用的时候要慎重。

            2)固定的3步:配置、构建、安装;至于PKG_CONFIG_PATH、LD_LIBRARY_PATH环境变量前面已经配过,在同一个终端下不用再

                  配。

                 1、./configure

                 2、make

                 3、make install

第五步:gobject-introspection-1.50安装,鉴于CentOS7.0中gobject-introspection-1.42包已经被安装,只要把光盘中对应的-devel包装

               上就行了,不安装1.50版本的也行。gobject-introspection-devel有依赖关系,按顺序安装。

            1)依赖包顺序是m4、perl-Data-Dumper、autoconf、perl-Thread-Queue、perl-Test-Harness、automake、libtool;

                  python-tempita、pyOpenSSL、python-paste、python-beaker、python-markupsafe、python-mako(这些包镜像中都有)

[root@CentOS Packages]# rpm -ivh m4-1.4.16-10.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh  perl-Data-Dumper-2.145-3.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh  autoconf-2.69-11.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh perl-Thread-Queue-3.02-2.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh perl-Test-Harness-3.28-3.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh automake-1.13.4-3.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh libtool-2.4.2-20.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh python-tempita-0.5.1-6.el7.noarch.rpm[root@CentOS Packages]rpm -ivh pyOpenSSL-0.13.1-3.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh python-paste-1.7.5.1-9.20111221hg1498.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh python-beaker-1.5.4-10.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh python-markupsafe-0.11-10.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh python-mako-0.8.1-2.el7.noarch.rpm

          2)镜像中有gobject-introspection-devel-1.42.0-1.el7.x86_64.rpm,直接安装

[root@CentOS Packages]# rpm -ivh gobject-introspection-devel-1.42.0-1.el7.x86_64.rpm

第六步:pango-1.40.3安装  先说明镜像中含有pango和pango-devel的1.40.3版本,但是gtk+3.22.7需要1.37.3以上的版本,只能源码安装了。

            1)安装依赖包libicu-devel、harfbuzz-devel、libxft-deve

[root@CentOS Packages]# rpm -ivh libicu-devel-50.1.2-15.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh harfbuzz-devel-0.9.36-1.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh libXft-devel-2.3.2-2.el7.x86_64.rpm

          2)传统的3步搞定,./configure、make、makeinstall,环境变量在前面已经配过,同个终端下不用再配。

                配置完成后出现会下面内容,输出$?值为0即配置正确。

                

第七步:gtk+-3.22.7安装,在配置过程中通过错误提示安装对应的rpm包。

            1)配置错误XIput2 extension not found    安装libXi-devel包

                  配置错误No package ’epoxy‘ found    使用yum安装libepoxy-devel包(镜像中没有该包)

                  配置错误No package ’atk-bridge-2.0‘ found  这个atk-bridge和第二步安装的atk不是一回事,依次安装dbus-devel,

                  at-spi2-core-devel。命令如下:

[root@CentOS Packages]# rpm -ivh libXi-devel-1.7.4-2.el7.x86_64.rpm[root@CentOS Packages]# yum install libepoxy-devel[root@CentOS Packages]# rpm -ivh dbus-devel-1.6.12-13.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh at-spi2-atk-devel-2.8.1-4.el7.x86_64.rpm

           2)经典的3步:配置、构建、安装。其中为例在make时不出现Couldn't find include 'GdkPixbuf-2.0.gir'问题,使用./configure --

                 enable-introspection=no

           3)查看gtk+的版本:

                 

终于装完了,大年初三那天晚上装完后,内心的小激动一晚上没有睡着觉微笑


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表