QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1467|回复: 14

2.5 正式版安装至结束 MI 产生的 log 反馈

[复制链接]
发表于 2010-7-24 06:43:21 | 显示全部楼层 |阅读模式
mke2fs 1.41.4 (27-Jan-2009)
error: %post(ncurses-libs-5.7-2.20090207mgc25.i686) scriptlet failed, exit status 255
warning: /etc/shells created as /etc/shells.rpmnew
/var/tmp/rpm-tmp.21434: line 5: touch: command not found
/var/tmp/rpm-tmp.21434: line 5: touch: command not found
/var/tmp/rpm-tmp.21434: line 5: touch: command not found
/var/tmp/rpm-tmp.21434: line 5: touch: command not found
error: %post(rsyslog-3.21.10-3mgc25.i686) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.46681: line 1: touch: command not found
/var/tmp/rpm-tmp.46681: line 2: chown: command not found
/var/tmp/rpm-tmp.46681: line 3: chmod: command not found
/var/tmp/rpm-tmp.46681: line 4: chmod: command not found
/var/tmp/rpm-tmp.46681: line 10: fgrep: command not found
/var/tmp/rpm-tmp.84470: line 3: install: command not found
/var/tmp/rpm-tmp.84470: line 6: install: command not found
error: %post(pam-1.1.0-2mgc25.i686) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.84470: line 11: /usr/bin/stat: 没有那个文件或目录
/var/tmp/rpm-tmp.84470: line 11: /usr/bin/stat: 没有那个文件或目录
/var/tmp/rpm-tmp.3915: line 3: /usr/bin/stat: 没有那个文件或目录
/var/tmp/rpm-tmp.3915: line 3: /usr/bin/stat: 没有那个文件或目录
error initializing inotify
/var/tmp/rpm-tmp.3915: line 4: /bin/touch: 没有那个文件或目录
/var/tmp/rpm-tmp.3915: line 5: /bin/chown: 没有那个文件或目录
/var/tmp/rpm-tmp.3915: line 6: /bin/chmod: 没有那个文件或目录
warning: user 0 does not exist - using root
warning: group 0 does not exist - using root
在 ip6tables 服务中读取信息时出错:没有那个文件或目录
在 portmap 服务中读取信息时出错:没有那个文件或目录
/var/tmp/rpm-tmp.69510: line 3: /etc/X11/xdm/Xservers: 没有那个文件或目录
/var/tmp/rpm-tmp.54756: line 3: [: !=: unary operator expected
Generating a 1024 bit RSA private key
.++++++
.............................................................++++++
writing new private key to '/tmp/openssl.D6b7GB'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:State or Province Name (full name) [Berkshire]:Locality Name (eg, city) [Newbury]:Organization Name (eg, company) [My Company Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []:0+1 records in
0+1 records out
128214 bytes (128 kB) copied,0.000226183 秒,567 MB/秒
warning: user 0 does not exist - using root
warning: group 0 does not exist - using root
killall: minilogd: no process killed
Probing devices to guess BIOS drives. This may take a long time.
cp: cannot stat '/tmpfs/tgtsys/usr/lib/grub/*/*': No such file or directory
Probing devices to guess BIOS drives. This may take a long time.
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
sh: shopt: not found
cp: cannot stat '/etc/skel/*': No such file or directory
WARNING: Couldn't open directory /lib/modules/2.6.28.10: No such file or directory
FATAL: Could not open /lib/modules/2.6.28.10/modules.dep.temp for writing: No such file or directory
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages index using db3 - 无效的参数 (22)
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages index using db3 - 无效的参数 (22)
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages index using db3 - 无效的参数 (22)
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages index using db3 - 无效的参数 (22)
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages index using db3 - 无效的参数 (22)
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages index using db3 - 无效的参数 (22)
error: cannot open Packages database in /var/lib/rpm
error: db4 error(22) from dbenv->open: 无效的参数
error: cannot open Packages database in /var/lib/rpm
chmod: 无法访问 “/etc/kde”: 没有那个文件或目录
Thank you for using MagicInstaller!
 楼主| 发表于 2010-7-24 06:58:46 | 显示全部楼层
我觉得目前的 MI 是有问题的,类似于 touch chown chmod 这样的指令应该由 MI 运行的嵌入式系统提供,如果有提供怎么会有这些错误。。。
我同意这种说法,先读取rpm包的script内容写入缓存文件,最后进行一次运行。
修正思路一:事先安装一个空包或脚本,只是创建一些指令的链接指向嵌入式系统,随着rpm包的安装,链接肯定被覆盖更新掉。不过在安装rpm时应该已经 chroot了,那样就不好解决了,这个请教se兄。整个 MI 的工作过程我不清楚。。。
我觉得嘛,其实有必要将一些重要的内容解压到挂载目录,然后才进行安装,Win 安装都是如此,而 MI 在当初设计时肯定是欠考虑的。
所以我不知道这种思路是否可行,在 MI 执行安装前,先把嵌入式系统自身复制给系统,然后系统会在安装rpm的过程中把嵌入式系统给覆盖取代掉。
MI 的工作应该类似于LFS制做系统,先 LFS 制做一个工具链环境,然后加载环境,将自身复制给系统,然后进行安装。现在的 MI 肯定是畸形的,因为连最基本的指令也都没建立起来就开始安装了。
是否有必要重写 MI 呢?我觉是如果将一个LFS 环境制做成一个包放在所有安装的最前面就或许可以解决这个问题,但 rpm的安装肯定需要一个nodeps的过程了。MI 的确需要重写,我感觉 MI 现状的确不称心。

[ 本帖最后由 haulm 于 2010-7-24 07:21 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-7-24 07:29:35 | 显示全部楼层
突然想 LFS 一个系统了,思想倒退了?
回复

使用道具 举报

发表于 2010-7-24 10:00:23 | 显示全部楼层
有这样一些提示是正常的。关键有没有有提示pre脚本出错的。

你的安装思路实际上是livecd的安装方法。完全可行,而且其实在现有基础上做也不麻烦。不过这和MI的安装方式不一样。
回复

使用道具 举报

 楼主| 发表于 2010-7-24 10:03:21 | 显示全部楼层
所以post_install.sh用于最后修正未正确执行的脚本
for i in  ncurses-libs pam rsyslog ; do
    rpm_run_pre $i || :
    rpm_run_post $i || :
done
rpm_run_post
bash: rpm_run_post: command not found
回复

使用道具 举报

 楼主| 发表于 2010-7-24 11:00:36 | 显示全部楼层
我调整了好半天依赖,结果 MI 一直把 coreutils-7.0-7mgc25.i686.rpm 放在 132 的位置,tzdata这个东西居然跑到第三个位置,怎么也T不下去。。。
回复

使用道具 举报

发表于 2010-7-24 23:34:27 | 显示全部楼层
remove ncurse-lib的依赖.
rpm_run_post是post_install.sh里的函数.
回复

使用道具 举报

 楼主| 发表于 2010-7-25 09:24:54 | 显示全部楼层
是否重编译coreutils-7.0-7mgc25.i686.rpm,将其强制设置为noarch,然后找到第一个安装的包,将其定义依赖到最前方,否则和摸瞎一样,coreutils-7.0-7mgc25.i686.rpm一直都放在别人后面安装,造成一堆的问题。
回复

使用道具 举报

 楼主| 发表于 2010-7-25 09:32:24 | 显示全部楼层
我还是以为现在的MI极不合理,应该在安装之前把工具链复制给系统,否则在压缩ISO时就出现了现在这种情况,一堆的混乱依赖,导致安装无法正常进行。所以根据上面的思路,可以打包一个工具链做为最基础的安装包放进ISO。
回复

使用道具 举报

发表于 2010-7-26 17:52:29 | 显示全部楼层
指明尽可能多的rpm顺序作为生成dep的依赖可以解决这个问题。

而且在打包的时候基础的工具链包应该不会出现pre或者post中有未存在命令的现象。

se说的对,如果没有pre脚本错误就是正常安装,因为在post_script.sh中有修复。
回复

使用道具 举报

 楼主| 发表于 2010-7-27 03:39:40 | 显示全部楼层
coreutils-7.0-7mgc25.i686.rpm 就有 pre 脚本,工具链中几个包都有 pre 脚本,MGC 的包依赖混乱,所以才造成 MI 对一些包无法正确安装,post_script.sh 中的修复是事后的,总不可能老是测试安装一次然后再来修正,这不合理。
目前我的困扰就是无法将一些工具链放在安装的最前端,比如 coreutils-7.0-7mgc25.i686.rpm 总是跑到132位置以下,通过依赖定义也只提升到99,正式版里 coreutils-7.0-7mgc25.i686.rpm 安装位置是90。
有时我的确很想重编译工具链包,去掉不合理的依赖,在我看来工具链的包是唯一不需要依赖的包,是唯一不需要 pre 和 post 脚本的包,在 rpm 包里用指令来生成一些配置是多么地不合理。
回复

使用道具 举报

发表于 2010-7-27 09:11:49 | 显示全部楼层
生成rpm依赖是用的script/下的脚本,你可以把相关脚本改一下,使用一个指定列表生成依赖。
回复

使用道具 举报

 楼主| 发表于 2010-7-27 11:02:25 | 显示全部楼层
shunshine 有新的修正版本么。
回复

使用道具 举报

发表于 2010-7-27 12:50:17 | 显示全部楼层
没有新的版本,还是上次的rc3。你说的错误应该是ramdisk_size参数的问题。
在内核参数上增加ram大小
ramdisk_size=40960

因为miinitrd是27mb+ 原来的ramdisk_size为20480是20mb的上限。
回复

使用道具 举报

 楼主| 发表于 2010-7-28 06:05:56 | 显示全部楼层
原帖由 zy_sunshine 于 2010-7-27 12:50 发表
没有新的版本,还是上次的rc3。你说的错误应该是ramdisk_size参数的问题。
在内核参数上增加ram大小
ramdisk_size=40960

因为miinitrd是27mb+ 原来的ramdisk_size为20480是20mb的上限。 ...

sunshine自己是否有认真测试过了,这次学乖了,用VBox运行到安装出现安装包错误无法进行。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-22 21:28 , Processed in 0.066084 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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