QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4229|回复: 6

遇到那种死认一个版本号的组件该怎么处理?

[复制链接]
发表于 2014-6-22 22:35:29 | 显示全部楼层 |阅读模式
python 3.3.0 升到 3.3.2,结果重新编译的某些 python 组件死认 /usr/lib64/libpython3.3m.so.1.0
可是这个文件新包也有啊,可是还是 need /usr/lib64/libpython3.3m.so.1.0,我无语了
最后没办法,python3.3.2 打成 python3.3.0,rpm 终于认了。。。
可是再编译又不认了,最后还是一堆的 AutoReq:0
 楼主| 发表于 2014-6-22 22:42:06 | 显示全部楼层
以前有遇到过某组件死认一个文件的,后来发现是 autoreqprov 设置的原因,那个是我以前打包时没经验,正确只能设置 autoreq,因为 no prov 所以搞出麻烦来了。
不过 python3.3.0 不懂是怎么回事,原组件看上去是 se 打包的。
另外我发现 akonadi 组件还是需要安装 mysql 和 postgresql 后再编译,虽然可以不依赖,但编译其实是依赖的,否则 akonadi 运行会失败。
回复

使用道具 举报

发表于 2014-6-23 00:00:12 | 显示全部楼层
有可能是其他软件包引入的依赖导致这个软件包不认当前的 python 提供的 so 版本而只认可那个引入依赖的软件包编译时的版本。

所以我之前一直说过,发行版在发行之前,必须再做至少一次,最好是2遍以上的完全重新编译。

你smart check 一下看看吧。
回复

使用道具 举报

 楼主| 发表于 2014-6-23 00:19:25 | 显示全部楼层
原帖由 jiangtao9999 于 2014-6-23 00:00 发表
有可能是其他软件包引入的依赖导致这个软件包不认当前的 python 提供的 so 版本而只认可那个引入依赖的软件包编译时的版本。

所以我之前一直说过,发行版在发行之前,必须再做至少一次,最好是2遍以上的完全重新编译。

...

没用,恶心到底,最后用回 se 打包的那个,就算是同样的版本我编译的都不行,因为 rpm 似乎有什么定义被改变了,而且 rpm 还真只认最原始的文件。
rpm 下面 /usr/lib/rpm/redhat 已经是 /usr/lib/rpm/magic 了
回复

使用道具 举报

 楼主| 发表于 2014-6-23 00:32:28 | 显示全部楼层
那个依赖就连 Autoreq:0 都无效,不知我有没拼错了,但试了几种大小写都没成功,还好 python3 目前系统并没有大用处,其实是可以删掉 python3 支持,不过都那样了,提供一个残缺的支持。
回复

使用道具 举报

发表于 2014-6-23 13:13:08 | 显示全部楼层
前两天我就碰到一个死认旧版本的,什么软件忘了。
之后我重新编译了 gdk-pixman 再编译这个软件就好了。
回复

使用道具 举报

发表于 2014-6-24 10:49:42 | 显示全部楼层
原帖由 haulm 于 2014-6-23 00:19 发表

没用,恶心到底,最后用回 se 打包的那个,就算是同样的版本我编译的都不行,因为 rpm 似乎有什么定义被改变了,而且 rpm 还真只认最原始的文件。
rpm 下面 /usr/lib/rpm/redhat 已经是 /usr/lib/rpm/magic 了 ...

就是因为这个原因,python包带了一个过滤provides的脚本,里面写死了redhat,如果不改,就会导致python包provides不出libxx.so.*文件。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-19 19:01 , Processed in 0.101429 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表