haulm 发表于 2010-7-23 05:18:36

如何正确干涉 MI 的 pkgarr.py 对 rpm 包安装顺序的生成

前几天一直没有理解se兄对MI没有正确生成initrd的问题讨论到的包安装的顺序
我从正式版提取到base/pkgarr.py,用于比较本机打包ISO时生成的pkgarr.py,发现有很大的差别
复制base/pkgarr.py到MI的result目录并删除其它文件,压缩ISO没有发现这个文件有变化
更改package目录中的内容,再运行scons,pkgarr.py变化了,而且自动生成的顺序并不会依据原有的数据进行
我的疑问是,需要框定哪些rpm包内容必需放在前面进行安装,而修定这个列表需要注意哪些,有什么工具可以利用?

haulm 发表于 2010-7-23 05:19:53

如果生成的 pkgarr.py 不足于安全地生成正确的安装顺序,是否应该对生成 pkgarr.py 的脚本进行一次修正,该怎么做呢。。。

sejishikong 发表于 2010-7-23 10:19:49

mi的specinfo.py中可以修正这个安装顺序,不过因为很多是循环依赖的,所以手工修正可能需要多次尝试。还有一个办法,修改mi,让它跳过pre脚本的执行(因为安装不上的包都是pre脚本执行有问题的),我曾经试过,虽然也会出一些问题,不过能保证所有包都装上。

haulm 发表于 2010-7-23 10:57:12

原帖由 sejishikong 于 2010-7-23 10:19 发表 http://www.linuxfans.org/bbs/images/common/back.gif
mi的specinfo.py中可以修正这个安装顺序,不过因为很多是循环依赖的,所以手工修正可能需要多次尝试。还有一个办法,修改mi,让它跳过pre脚本的执行(因为安装不上的包都是pre脚本执行有问题的),我曾经试过,虽然也会出一些问题,不 ...
能给个操作过程么?

jiangtao9999 发表于 2010-7-23 13:21:16

安装系统时为什么还要考虑 dep 的问题?
我觉得安装时所有安装前后的运行脚本都应该挪到完全安装后统一执行。安装系统时由安装程序统一解压缩复制数据,这个时候系统的运行是不依赖安装后的环境的。这样统一最后执行脚本可以解决很多问题而且还可以加快安装速度吧?

haulm 发表于 2010-7-23 13:24:31

原帖由 sejishikong 于 2010-7-23 10:19 发表 http://www.linuxfans.org/bbs/images/common/back.gif
mi的specinfo.py中可以修正这个安装顺序,不过因为很多是循环依赖的,所以手工修正可能需要多次尝试。还有一个办法,修改mi,让它跳过pre脚本的执行(因为安装不上的包都是pre脚本执行有问题的),我曾经试过,虽然也会出一些问题,不 ...
specinfo.py 如何修正安装顺序呢?就比如说我现在把MGC2.5正式版的packages不做修改放回工程目录中,根据指导修改MI以期跳过pre脚本的执行是无效的,刚试过了,在执行initrd那里出现get_numberic_dev指令短少,而且前面有一堆安装的错误。如果把安装光盘中base里对包顺序的文件放进result中,生成ISO时pkgarr.py不会改变,但我将package中的包更改了,那么pkgarr.py才发生变化,并且排序又变成一团乱。
我很想尝试的是把 pkgarr.py 进行手工修改,但不懂得 pkgarr.py 中的数据都代表什么意思,如果我把各个包名的位置上下改变并不修改数据是否起到安装顺序的修改?
如果 MI 无法继续备份系统,我可能会考虑用 tar 备份系统,或许以后会出现新的安装模式也不一定,只是比较郁闷,因为尝试越多越想改变现状。 :mrgreen:

haulm 发表于 2010-7-23 13:25:59

原帖由 jiangtao9999 于 2010-7-23 13:21 发表 http://www.linuxfans.org/bbs/images/common/back.gif
安装系统时为什么还要考虑 dep 的问题?
我觉得安装时所有安装前后的运行脚本都应该挪到完全安装后统一执行。安装系统时由安装程序统一解压缩复制数据,这个时候系统的运行是不依赖安装后的环境的。这样统一最后执行脚本 ...
所以说MI已经淘汰了,依赖的存在本身应该是为了订制安装准备的,可是一直没实现,现在好了,反倒成了脚绊石,自压的系统怎么也装不上。

jiangtao9999 发表于 2010-7-23 14:50:29

支持楼上重写 MI !
:twisted: :mrgreen:

sejishikong 发表于 2010-7-23 15:52:56

原帖由 jiangtao9999 于 2010-7-23 13:21 发表 http://www.linuxfans.org/bbs/images/common/back.gif
安装系统时为什么还要考虑 dep 的问题?
我觉得安装时所有安装前后的运行脚本都应该挪到完全安装后统一执行。安装系统时由安装程序统一解压缩复制数据,这个时候系统的运行是不依赖安装后的环境的。这样统一最后执行脚本 ...
也可以这么处理啊。只是解压rpm,最好再执行post脚本。不过有的时候会出现一些意外情况。而且最后执行post脚本这一步时间比较长。

sejishikong 发表于 2010-7-23 15:54:43

原帖由 haulm 于 2010-7-23 13:24 发表 http://www.linuxfans.org/bbs/images/common/back.gif

specinfo.py 如何修正安装顺序呢?就比如说我现在把MGC2.5正式版的packages不做修改放回工程目录中,根据指导修改MI以期跳过pre脚本的执行是无效的,刚试过了,在执行initrd那里出现get_numberic_dev指令短少,而且前面有一堆 ...
speinfo.py中这两段:
######################################################################
# add_deps is used to add the lost dependencies.
# add_deps is a map which key is the package and the value is the list of
#   the packages that the package depends.
# For example:
#{ 'libacl1-2.2.4-1.i386.rpm' : ['libattr1-2.2.0-1.i386.rpm'] }
#

######################################################################
# remove_deps is used to resolve the loop dependencies.
# remove_deps is a map which key is the package and the value is the list of
#   the packages that the package shouldn't remove depends.
# For example:
#{ 'pam-0.75-49.i386.rpm' : ['initscripts-7.14-9.i386.rpm'] }
#
#remove_deps = {}

就是调整依赖关系的。不过你要清楚什么顺序安装包才行。

jiangtao9999 发表于 2010-7-23 17:45:11

原帖由 sejishikong 于 2010-7-23 03:52 PM 发表 http://www.linuxfans.org/bbs/images/common/back.gif

也可以这么处理啊。只是解压rpm,最好再执行post脚本。不过有的时候会出现一些意外情况。而且最后执行post脚本这一步时间比较长。
我觉得安装时,有些 post 脚本完全没必要。尤其是运行 ldconfig 的。安装的包 70% 都要运行这命令。
安装程序应该汇总一下 post 时执行的命令,重复的完全可以最后只运行一次,不同的再顺序运行。

haulm 发表于 2010-7-23 20:18:27

原帖由 jiangtao9999 于 2010-7-23 17:45 发表 http://www.linuxfans.org/bbs/images/common/back.gif

我觉得安装时,有些 post 脚本完全没必要。尤其是运行 ldconfig 的。安装的包 70% 都要运行这命令。
安装程序应该汇总一下 post 时执行的命令,重复的完全可以最后只运行一次,不同的再顺序运行。 ...
赞同:-D

haulm 发表于 2010-7-24 07:27:21

原帖由 sejishikong 于 2010-7-23 15:54 发表 http://www.linuxfans.org/bbs/images/common/back.gif

speinfo.py中这两段:
######################################################################
# add_deps is used to add the lost dependencies.
# add_deps is a map which key is the package and the value i ...
我觉得这种调整是在折磨人,而且不管你怎么调整 Script 都不可能正确运行,MGC 系统就根本存在缺陷,很多可能需要的东西或权限就没有得到正确的安装。所以整个 MI 工作过程是错误的,MI 首先要生成的是能让系统正确安装的环境,而现在的 MI 没在让系统生成安装环境就开始安装了。
页: [1]
查看完整版本: 如何正确干涉 MI 的 pkgarr.py 对 rpm 包安装顺序的生成