博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下软件的彻底更新
阅读量:6720 次
发布时间:2019-06-25

本文共 2321 字,大约阅读时间需要 7 分钟。

 很多情况下,当我们重新安装某一更新软件后发现软件的版本没有变化。这是为什么呢???我遇到的问题。。。。。。。。。。。。。

 

编译gtk时,出现错误:

  Requested 'glib-2.0 >= 2.19.7' but version of GLib is 2.12.3

Requested 'atk >= 1.13.0' but version of Atk is 1.12.2

Requested 'pango >= 1.20' but version of Pango is 1.14.9

Requested 'cairo >= 1.6' but version of cairo is 1.2.4

查看atk版本为:atk-1.12.2-1.fc6atk-devel-1.12.2-1.fc6

下载atk tar包,安装完成后(按道理说再编译gtk时,至少不会出现Requested 'atk >= 1.13.0' but version of Atk is 1.12.2)错误。但是事实并非如此,还是如上图所示。

疑问:我不是安装了atk最新版本吗?为什么还是出现错误呢?????

这个问题在我刚接触linux时,就遇到过。但是后来google,看书,都没有看到过解决方法。也就不了了之。直到遇到群里的“随风而逝”。这里很感谢“随风而逝”,他帮助了我很多。每次都是不厌其烦的帮我远程解决问题。衷心地向你说声谢谢。

因为虽然我安装了atk tar包,但是由于原来的rpm包(我的系统是RHEL5.5)无法直接删除(因为包依赖关系很强),所以只能采取“替换”的方法:

由此可知:当某个软件版本不够新时,有两种方法:

  1)、如果依赖关系没有或者很少,可以直接删除,然后重新下一个最新版本安装。这种方法很简单。

  2)、如果依赖关系很强,直接删除是很不明智的做法。可以采用“替换”。下面就具体说下“替换”的思路。

 

1、  首先查看软件版本信息:rpm –qa |grep atk

    atk-1.12.2-1.fc6

atk-devel-1.12.2-1.fc6

2、  查看软件信息:rpm –ql atk-1.12.2-1.fc6

       /usr/lib/libatk-1.0.so.0

/usr/lib/libatk-1.0.so.0.1212.0

               rpm –ql atk-devel-1.12.2-1.fc6(这里我犯了个错误,忘记查看它的信息了,导致后来没有成功)

/usr/include/atk-1.0/atk/atk-enum-types.h

/usr/include/atk-1.0/atk/atk.h

/usr/include/atk-1.0/atk/atkaction.h

/usr/include/atk-1.0/atk/atkcomponent.h

………………..省略很多

/usr/lib/libatk-1.0.so

/usr/lib/pkgconfig/atk.pc

   以上是重要部分

3、就是atk真正重要的部分就是以上的。就是我们编程中的源程序。到源码包中找到类似于libatk-*so.*的东西(要用find,结果是libatk-1.0.so.0.3209.1),否则很难找,因为在一个隐藏目录下(.libs

 

4、我们先看/usr/lib/libatk-1.0.so.0     /usr/lib/libatk-1.0.so.0.1212.0这两个。ls –l下,发现libatk-1.0.so.0是链接文件。

libatk-1.0.so -> libatk-1.0.so.0.1212.0

libatk-1.0.so.0 -> libatk-1.0.so.0.1212.0

先删除掉两个链接文件。然后将源码包中找到的libatk-1.0.so.0.3209.1拷贝到/usr/lib.

  ln –s libatk-1.0.so.0.3209.1 libatk-1.0.so

  ln –s libatk-1.0.so.0.3209.1 libatk-1.0.so.0

OK,第一个包atk-1.12.2-1.fc6解决。

 

5、再看第二个包,重要的就是头文件(*.h)/ /usr/lib/libatk-1.0.so/usr/lib/pkgconfig/atk.pc这三个。类似的方法,先将源码中atk目录下,所有的*.h全部考到/usr/include/atk-1.0/atk/下。然后看/usr/lib/libatk-1.0.so,也是链接,同上,ln –s下。最后一个就是atk.pc了,cp下就行了。

 

6、到此,再编译下gtk 。如下:

Requested 'glib-2.0 >= 2.19.7' but version of GLib is 2.12.3

Requested 'pango >= 1.20' but version of Pango is 1.14.9

Requested 'cairo >= 1.6' but version of cairo is 1.2.4

 

 atk的版本已经更新为最新的了。大功告成!!!!!!!!!!

 

结束语:

剩下的三个还没弄,原理都是一样。上面的解决方法是一种思路,而不是特定的应用。理解了思路,剩下的就是举一反三了。

PS:随风而逝告诉我说glib比较复杂,在做这个之前,都要备份下。切记切记!!!!

本文转自 taojin1240 51CTO博客,原文链接:http://blog.51cto.com/taotao1240/455338,如需转载请自行联系原作者
你可能感兴趣的文章
nginx 访问默认index.html首页跳转指定页面
查看>>
NFS在CentOS6.2下的安装与配置
查看>>
MySQLCluster部署配置文档
查看>>
第十四讲 while网络刷博器爬虫
查看>>
电子邮件系统组成的5部分
查看>>
ReadWriteLock用法
查看>>
JavaScript调试技巧之console.log()详解
查看>>
RHEL7.x解决SSH登录慢
查看>>
linux下如何删除大量小文件
查看>>
对于背板带宽和包转发率的解释
查看>>
Linux各类压宿包的解压方法
查看>>
MySQL操作-管理命令
查看>>
安装oracle数据库时的报错处理[INS-35172]
查看>>
MAC外接显示器死机问题
查看>>
SCCM2012功能测试(完整版)
查看>>
[职业生涯] 运维工程师的职责和前景
查看>>
我的友情链接
查看>>
微信登陆,支付防坑指南
查看>>
如何给PDF删除空白页面?来看看这种方法
查看>>
Java学习(一)
查看>>