zy_sunshine 发表于 2010-5-30 13:57:15

nss打包有点问题?

也是跟踪很久的一个问题了。

用python rpm写的安装rpm包的脚本,用于测试MI上的问题
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)

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

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

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

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

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


附测试程序以再现程序
$ ls
packagesys_roottest_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 编辑 ]

zy_sunshine 发表于 2010-5-30 14:04:55

这句话被过滤了,为啥? 见附件filter.txt.tar.gz

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

haulm 发表于 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有特别指定。

haulm 发表于 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

zy_sunshine 发表于 2010-6-5 08:56:24

原帖由 haulm 于 2010-6-5 06:40 发表 http://www.linuxfans.org/bbs/images/common/back.gif
看了半天没看懂兄台想说的问题

#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
然后再运行那个测试程序试试。
页: [1]
查看完整版本: nss打包有点问题?