免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 818 | 回复: 0
打印 上一主题 下一主题

转 linux GTK install [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-11 10:55 |只看该作者 |倒序浏览

  
博客首页

注册

建议与交流

排行榜
加入友情链接


推荐

投诉
搜索:  
帮助

whyglinux
  
whyglinux.cublog.cn

管理博客

发表文章

留言

收藏夹


  • · Articles

    博客圈

    音乐

    相册

    文章


  • · C/C++


  • · Emacs


  • · Linux

    首页


    关于作者



    ||
    2008年8月
    戊子年(鼠)
    >>
    ||












    1
    建军节
    2
    初二
    3
    初三
    4
    初四
    5
    初五
    6
    初六
    7
    七夕节
    8
    父亲节
    9
    初九
    10
    初十
    11
    十一
    12
    十二
    13
    十三
    14
    十四
    15
    中元节
    16
    十六
    17
    十七
    18
    十八
    19
    十九
    20
    二十
    21
    廿一
    22
    廿二
    23
    处暑
    24
    廿四
    25
    廿五
    26
    廿六
    27
    廿七
    28
    廿八
    29
    廿九
    30
    三十
    31
    8月小






    我的分类



    我的文章分类







    C/C++








    Emacs








    Linux





    我的图片分类





    我的链接分类







    Articles





    我的音乐分类





















    在 Linux 系统上源码安装 GTK+ 2.0
    pre {        overflow-x:auto;         overflow-y:hidden;        padding-bottom:expression(this.scrollWidth > this.offsetWidth ? 16 : 0);}
    在 Linux 系统上源码安装 GTK+ 2.0
    目录


    0. 前言
    GTK+ 2.0 依赖的软件包(程序和库)比较多,版本的更新也比较频繁,所以如果想从 GTK+ 提供的源码软件包中构建一套较新或最新版本的 GTK+ 库来使用的话,通常需要首先更新或者安装一系列新版本的依赖程序或库。同时,由于软件包之间存在着依赖关系,对软件包的版本和安装顺序都有一定的要求,一般还需要对安装后的库进行一些必要的设置才能使用库。因而,可以说源码安装 GTK+ 是一项不小的工程。如果没有源码安装 GTK+ 的经验,在安装过程中很容易遇到一些问题。对于新手来说,出现了安装问题时却往往不知道如何去解决。
    本文试图对 GTK+ 的源码安装提供一套可行的解决方案,介绍一些安装和使用库方面的背景知识,对安装过程中容易出现问题的地方做了强调说明,以使安装过程能够顺利进行。这样,即使是一个从来没有安装过 GTK+ 的新手也能根据这里的说明顺利地安装上 GTK+。
    如果你发现了本篇中的错误,或者对本文有什么感想或者建议,可通过 whyglinux AT hotmail DOT com 邮箱和作者联系。
    1. 二进制安装和源码安装
    需要首先说明的的是:对于 Linux 系统、特别是较新版本的 Linux 系统来说,其发行版中已经包含了 GTK+ 和所有的支撑软件,一般来说默认安装后就可以直接使用 GTK+ 了。如果在安装的时候没有选择安装 GTK+,也可以用系统提供的安装工具将 GTK+ 添加到系统中来,或者下载已经编译好的 GTK+ 进行版本升级。
    上面的安装方式使用的是已经编译好的软件包。由于这种安装一般会自动解决各个软件包之间的依赖关系,进而安装或者更新相应的软件包,所以与源码安装方式相比,二进制包的安装节省了编译代码所需要的时间,避免了源码安装的种种繁琐易错之处,对于安装者的要求也较低,因此是安装 GTK+ 的首选方式。
    二进制安装方式简单快捷,但也有其力所不及的地方:通常一个软件的二进制包的版本更新要落后于其最新版本,有些软件也可能没有二进制包提供。这样,要使用最新的版本很可能源码安装就是唯一可以选择的方式了。有时人们也想体验或学习 GTK+ 的源码安装方式,毕竟在开源盛世的今天,对于程序员来说源码安装也是必须要过的一关。
    2. GTK+ 依赖软件包
    GTK+ 的安装需要下面程序或者库的支持(可在列出的链接中找到各个软件包的下载地址):
  • C 编译器(如 GCC。
    GCC 的网站

  • X 窗口系统库(
    网站

  • pkg-config 工具(
    网站
    )
  • GNU make 工具(
    网站
    )
  • JPEG、PNG 以及 TIFF 图形库(
    下载页面
    的 GTK+ Source 中的 dependencies 目录)
  • FreeType(
    网站

  • fontconfig 库(
    网站

  • GNU libiconv 库(当系统上没有 iconv() 函数的时候需要)(
    网站

  • GNU gettext 软件包(当系统上没有 gettext() 函数的时候需要)(
    网站

  • GLib 库(
    下载页面
    的 GLib Source)
  • ATK 库(
    下载页面
    的 GTK+ Source 中的 dependencies 目录)
  • Cairo 库(
    下载页面
    的 GTK+ Source 中的 dependencies 目录)
  • Pango 库(
    下载页面
    的 Pango Source)
  • GTK+ 库(
    下载页面
    的 GTK+ Source)
    目前(写此文时)最新的 GTK+ 是 2.10.6 版,我们就以这个版本为例介绍。当你看到这篇文章的时候,可能 GTK+ 又有了新的版本,所以要注意下载安装新版本的软件包。
    其中,以上 1~9 各项是一些比较通用的软件,和 GTK+ 的关系也没有那么紧密--它们不但被 GTK+ 使用,也被其它程序或者库使用。即使系统上没有安装 GTK+,它们也可能已经在系统中存在了。
    10~13 各项和 GTK+ 关系密切,更新也较快,通常一个 GTK+ 的版本会依赖于这些库的一些特定的版本。由于这些原因,在本文中说明 GTK+ 安装的时候认为 1~9 项已经安装好了,所以只涉及到 10~14 项的安装。也就是说,GTK+ 的安装实际上主要是 GLib、Atk、Cairo、Pango 和 Gtk+ 这五个库的安装。
    当然,在你的系统 1~9 各项中也可能存在没有安装的情况,也可能存在由于版本过低从而使 GTK+ 不能顺利安装的情况。当遇到这些情况的时候,应该参考各自的网站中的安装说明对软件进行安装或者升级。可以使用二进制包直接安装,也可以使用源码方式安装。在本文中对这些软件的安装将不再叙述。
    根据经验,只要系统中已经有了 1~9 各项,而且系统也较新的话,为了安装 GTK+ 一般没有必要把它们都升级到最新版本,除了其中的 pkg-config 工具。pkg-config 的变动较大,新版本的 GTK+ 的安装需要新版 pkg-config 的支持,否则可能会使安装过程失败。因此,要在安装 GTK+ 之前检查 pkg-config 的版本号。如果版本过低,一定要对它进行版本更新。至于 GTK+ 安装时对 pkg-config 的最低版本要求,可以在 GTK+ 下载目录的 dependencies 目录中找到对应的 pkg-config 软件包,从软件包上提供的版本信息中获得确认。
    3. 查看软件的版本号
    查看已经安装的软件的版本号的目的有二:

    • 检查软件是否存在
    • 获得软件的版本号,从中可以了解软件的新旧程度,是决定软件是否需要更新的依据

    软件包大致可分为两种类型:程序和库。类型不同,查看版本号的方式也不同。
    对于可运行的程序命令来说,查看版本号的方式是在执行命令后加上 --version 参数。例如,对于 pkg-config 来说,其过程是这样的:
    $ pkg-config --version
    注:你现在应该执行上面的命令查看 pkg-config 的版本号,并按照上面所述检查是否符合安装相应的 GTK+ 的最低版本要求。如果不符合要求,在进行下面的 GTK+ 及其依赖库的安装之前应该首先安装和更新 pkg-config。
    对于库来说,如果它支持使用 pkg-config,则可以使用 pkg-config 来查看其版本号。例如,对于 GTK+ 2.0 库来说,可以这样:
    $ pkg-config --modversion gtk+-2.0
    注:不妨执行上面的命令看看 GTK+ 库是否已经在系统存在了;如果已经存在,注意它的版本号。还可以执行下面的命令查看使用 GTK+ 库时的编译和连接选项:
    $ pkg-config --cflags --libs gtk+-2.0
    通过显示出来的信息中的 -I 后面的路径可以大体知道 GTK+ 及其依赖库的安装位置。看看它们是不是都位于 /usr 目录下。
    4. 安装规划
    4.1 系统上未安装 GTK+
    通过上面的检查,如果发现系统上没有安装 GTK+,那问题就变得简单了:直接将 GTK+ 及其依赖库安装到 /usr 目录下即可(至于如何把各个库的安装目录设置为 /usr,可参看下面有关的安装说明)。这样做的好处是:由于 /usr 是系统目录,几乎不需要对安装的库进行什么设置就能够马上使用它们。
    /usr 是一个重要的系统目录,应该尽量避免对这个目录进行写操作。因此,建议源码安装 GTK+ 不要将它安装在 /usr 等系统目录下;可另选择一其它目录(具体参见下面的相关说明)。
    4.2 系统上已安装 GTK+
    如果系统中已经安装有 GTK+,要安装新版本的 GTK+ 时需要考虑的问题就多一些了。在 Linux 系统上使用的很多软件都是在 GTK+ 库的支持下运行的(比如 GNOME 桌面)。如果相关的 GTK+ 库发生损坏,或者库的版本发生了变化,轻微的可造成某些程序不能正常运行,严重的可能会给系统运行带来障碍(比如进入不了桌面环境,等等。)
    因此,新版本的 GTK+ 的安装应该避免对原来的 GTK+ 造成影响,以保证系统的正常运行。这一点很容易做到:新版 GTK+ 的安装目录要避免和已经存在的 GTK+ 的目录一致。比如,如果旧版的 GTK+ 安装在 /usr 目录下,新版 GTK+ 在设置安装目录的时候最好就不要设置为 /usr 了。
    一些人由于不了解这些情况,或者图方便,直接就把 GTK+ 安装在 /usr 中、从而把原来的 GTK+ 库给替换了。由于 GTK+ 及其兼容库版本的变化以及可能在安装过程中产生的错误,很容易出现上面提到的问题,所以建议在安装新版 GTK+ 时,最好避开旧版 GTK+ 所在的目录。
    GTK+ 安装在什么目录中为好呢?其实,这没有什么定论,可自行设置安装的目录。不过,一般的源码软件包默认的安装目录是 /usr/local,所以可以把这个目录设置为 GTK+ 的安装目录,也可以是其它你认为合适的目录。在下面的示例安装中,我们使用的安装目录是 /opt/gtk,GTK+ 及其依赖库都将安装在这个目录下。
    将 GTK+ 及其依赖库设置安装到同一个目录下(如 /opt/gtk)、而不是每一个库占用一个不同的目录,可以给以后的库的设置带来方便。而且,在将来不再需要这个版本的 GTK+ 及其依赖库的时候可以通过删除这个目录(如 /opt/gtk)将它们简单地去除。
    和安装到 /usr 目录中不同,如果将库安装到一个非系统目录中(比如我们将要使用的 /opt/gtk 目录),只将库安装完成还是不够的,还必须要进行一些必要的设置才能使用这个新安装好的库。在下面的相关章节中讲对库的设置作具体说明。
    5. 软件下载
    按照上面“依赖软件包”一节中提供的说明和地址分别下载 GLib、Atk、Cairo、Pango、Gtk+ 这五个库。
    在各自的下载目录中,通常列出了各种版本的软件包,而且一般每个版本都有 .tar.gz 和 .tar.bz2 两种不同压缩格式。要注意根据各个软件包的版本号或者日期选择一个最新的版本下载,有的库的下载目录下面也用一个 LATEST-xxx 的文件名告诉目前的最新版本是多少。由%

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/44287/showart_1120262.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP