中国Linux公社论坛's Archiver

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

nss打包有点问题?

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

用python rpm写的安装rpm包的脚本,用于测试MI上的问题[code]
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[/code]大概出现这些错误,应该是因为文件效验不正确出现的问题
在网上搜索的rpm的效验方式是md5或者是[code][sunshine@MagicLinux ~]$ rpm -qf /usr/bin/md5sum
coreutils-7.0-7mgc25.i686
[sunshine@MagicLinux ~]$ rpm -qf /usr/bin/shasum
perl-Digest-SHA-5.45-58mgc25.i686[/code]通过跟踪发现问题,在加载两个库文件的时候出现问题[code] 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)[/code]这两个文件都是[code][sunshine@MagicLinux ~]$ rpm -qf /lib/libnss3.so
nss-3.12.4-1mgc25.i686[/code]忘记说了,那个测试程序在MagicLinux机器上运行完全正常。这也说明这个问题隐藏的很深。
/lib/libsoftokn3.so
/lib/libnss3.so
在本机跟踪程序运行过程,发现这两个文件加载了,但是加载的确是其他路径的文件[code] 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[/code]而
/usr/lib/xulrunner-1.9.2/libsoftokn3.so
/usr/lib/xulrunner-1.9.2/libnss3.so
这两个文件所在包为[code][sunshine@MagicLinux ~]$ rpm -qf /usr/lib/xulrunner-1.9.2/libnss3.so
xulrunner-1.9.2.3-1.mgc25.i686[/code]这里明显不对,我整个程序没有涉及到mozilla,但是却使用它的库文件。
xulrunner应该是

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

而程序加载了这个库是因为[code][sunshine@MagicLinux ~]$ cat /etc/ld.so.conf.d/xulrunner-32.conf
/usr/lib/xulrunner-1.9.2[/code]在原来的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

[[i] 本帖最后由 zy_sunshine 于 2010-5-30 20:10 编辑 [/i]]

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

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

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

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 1205164 2009-10-28 /lib/libnss3.so

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

haulm 发表于 2010-6-5 06:47

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

[quote]原帖由 [i]haulm[/i] 于 2010-6-5 06:40 发表 [url=http://www.linuxfans.org/bbs/redirect.php?goto=findpost&pid=4917564&ptid=192119][img]http://www.linuxfans.org/bbs/images/common/back.gif[/img][/url]
看了半天没看懂兄台想说的问题

#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 ... [/quote]
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]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.