QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3195|回复: 4

nss打包有点问题?

[复制链接]
发表于 2010-5-30 13:57:15 | 显示全部楼层 |阅读模式
也是跟踪很久的一个问题了。

用python rpm写的安装rpm包的脚本,用于测试MI上的问题

  1. pkg_install(/tmp/update/tmp_rpm/package/glitz-glx-devel-0.5.6-3mgc25.i686.rpm, /tmp/update/tmp_rpm/package/glib-1.2.10-24mgc25.i686.rpm)

  2. error: unpacking of archive failed on file /usr/include/glitz-glx.h;4c0265f1: cpio: Digest mismatch
复制代码
大概出现这些错误,应该是因为文件效验不正确出现的问题
在网上搜索的rpm的效验方式是md5或者是
  1. [sunshine@MagicLinux ~]$ rpm -qf /usr/bin/md5sum
  2. coreutils-7.0-7mgc25.i686
  3. [sunshine@MagicLinux ~]$ rpm -qf /usr/bin/shasum
  4. perl-Digest-SHA-5.45-58mgc25.i686
复制代码
通过跟踪发现问题,在加载两个库文件的时候出现问题
  1. 889 open("/lib/libsoftokn3.so", O_RDONLY)   = -1 ENOENT (No such file or directory)
  2. 890 readlink("/lib/libnss3.so", 0x80db570, 1023) = -1 EINVAL (Invalid argument)
复制代码
这两个文件都是
  1. [sunshine@MagicLinux ~]$ rpm -qf /lib/libnss3.so
  2. nss-3.12.4-1mgc25.i686
复制代码
忘记说了,那个测试程序在MagicLinux机器上运行完全正常。这也说明这个问题隐藏的很深。
/lib/libsoftokn3.so
/lib/libnss3.so
在本机跟踪程序运行过程,发现这两个文件加载了,但是加载的确是其他路径的文件
  1. 1062 open("/usr/lib/xulrunner-1.9.2/libsoftokn3.so", O_RDONLY) = 3
  2. 814 open("/usr/lib/xulrunner-1.9.2/libnss3.so", O_RDONLY) = 5
复制代码

/usr/lib/xulrunner-1.9.2/libsoftokn3.so
/usr/lib/xulrunner-1.9.2/libnss3.so
这两个文件所在包为
  1. [sunshine@MagicLinux ~]$ rpm -qf /usr/lib/xulrunner-1.9.2/libnss3.so
  2. xulrunner-1.9.2.3-1.mgc25.i686
复制代码
这里明显不对,我整个程序没有涉及到mozilla,但是却使用它的库文件。
xulrunner应该是

"XULRunner是一个Mozilla runtime package,可以用于启动XUL+XPCOM的应用程序。它提供安装、升级、卸载这些程序的机制。"
——翻译自Mozilla开发者中心的介绍


而程序加载了这个库是因为
  1. [sunshine@MagicLinux ~]$ cat /etc/ld.so.conf.d/xulrunner-32.conf
  2. /usr/lib/xulrunner-1.9.2
复制代码
在原来的MI中,没有xulrunner相关库,说明原来用的就是nss包中的两个库文件。

ps:rpm的文件效验方式是用的nss算法吧?

不知道上面陈述的清不清楚,请sejishikong 等各位看看吧?
而且nss运行时应该需要sqlite,但是运行时没有加载....


附测试程序以再现程序
[sunshine@MagicLinux tmp_rpm]$ ls
package  sys_root  test_rpm.py

package中放着所需要安装的rpm包
test_rpm.py中的
top_dir = '/tmp/update/tmp_rpm'
修改为测试程序的所在目录

list = ['glib-1.2.10-24mgc25.i686.rpm',
57 'glib2-2.22.5-1mgc25.i686.rpm',
58 'glib2-devel-2.22.5-1mgc25.i686.rpm',]
list列表是需要安装的rpm包名。

创建必要的文件结构
mkdir -p sys_root/var/lib/rpm

然后运行test_rpm.py

[ 本帖最后由 zy_sunshine 于 2010-5-30 20:10 编辑 ]
 楼主| 发表于 2010-5-30 14:04:55 | 显示全部楼层
这句话被过滤了,为啥? 见附件filter.txt.tar.gz

[ 本帖最后由 zy_sunshine 于 2010-5-30 14:17 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2010-6-5 06:40:47 | 显示全部楼层
看了半天没看懂兄台想说的问题

#ls -l /usr/lib/xulrunner-1.9.2/libnss3.so
-rwxr-xr-x 1 root root 862380 05-13 11:26 /usr/lib/xulrunner-1.9.2/libnss3.so
]# ls -l /lib/libnss3.so
-rwxr-xr-x 1 root root 1205164 2009-10-28 /lib/libnss3.so

这两文件根本就不一样,程序调用应该不至于会去使用/usr/lib/xulrunner-1.9.2/libnss3.so,除非在某个开机就运行的shell有特别指定。
回复

使用道具 举报

发表于 2010-6-5 06:47:58 | 显示全部楼层
magiclinux上运行正常,所以我没搞懂楼主的意思。。。
python test_rpm.py
Create TransactionSet

pkg_install(/root/tmp_rpm/package/a.src.rpm, /root/tmp_rpm/package/a.src.rpm)

warning: user nihui does not exist - using root
warning: group nihui does not exist - using root
warning: user nihui does not exist - using root
warning: group nihui does not exist - using root
warning: user nihui does not exist - using root
warning: group nihui does not exist - using root
回复

使用道具 举报

 楼主| 发表于 2010-6-5 08:56:24 | 显示全部楼层
原帖由 haulm 于 2010-6-5 06:40 发表
看了半天没看懂兄台想说的问题

#ls -l /usr/lib/xulrunner-1.9.2/libnss3.so
-rwxr-xr-x 1 root root 862380 05-13 11:26 /usr/lib/xulrunner-1.9.2/libnss3.so
]# ls -l /lib/libnss3.so
-rwxr-xr-x 1 root root 1 ...

haulm也认为不应该调用xulrunner-1.9.2包中的库是吧?
您可以这样测试:
删除文件
/e t c / l d . s o . c o n f . d /x u l r u n n e r - 3 2 . c o n f
再运行命令
ldconfig
然后再运行那个测试程序试试。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-4-24 10:52 , Processed in 0.071636 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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