今天同事遇到一个问题,大约是需要把一些包安装到特定的目录,但问题是调用dpkg -i *.deb的 时候正常情况下需要执行一些post-install之类的脚本,而这些脚本里面都是绝对路径,直接用copy的方式来处理则必须要修改这些脚本,如果需要安装的包实在太多,那么这个方法是显然不行的,于是剩下的办法就是用chroot了,但在scrachbox里面作这个动作需要一些步骤:
1,权限问题;
2,配置问题;
第一步的解决方法是用root登录,默认情况下scratchbox是不能用root来登录的,需要修改一下脚本,在/scratchbox/login中的函数sanity_check中注释掉
if [ `id -u` = 0 ] ; then
exit_error "Not allowed to run this as root!"
fi
这三行后就可以用root来登录了。
第二步的解决方法是:建立一个目录,这个目录即是你想要chroot的目录,假设是test_root:
则:
cd test_root
mkdir scratchbox
cp /scrachbox/host_shared .
cp /scrachbox/tools .
cd ..
chroot test_root
这样就可以了。
当然这时候只能做少数动作,要做其它的工作必须要copy其它目录来。
阅读(805) | 评论(0) | 转发(0) |