最近尝试在ltib中扩展一些程序,看到程序编译后都有个rpm打包,安装的过程,就想着分析下rpm在ltib和target board上的使用,如下是记录。
1. 在ltib中打包某个package, 用的rpmbuild的参数为:
rpmbuild --dbpath /usr/src/ebook/ltib/ltib/rootfs//var/lib/rpm --target arm --define '_unpackaged_files_terminate_build 0' --define '_target_cpu arm' --define
'__strip strip' --define '_topdir /usr/src/ebook/ltib/ltib/rpm' --define '_prefix /usr' --define '_tmppath /usr/src/ebook/ltib/ltib/tmp' --define '_rpmdir
/usr/src/ebook/ltib/ltib/rpm/RPMS' --define '_mandir /usr/share/man' --define '_sysconfdir /etc' --define '_localstatedir /var' -bb
/usr/src/ebook/ltib/ltib/dist/lfs-5.1/sysconfig/modeps.spec
2. ltib中rpmbuild的rpm包在target board安装的时候,如果单纯用
rpm -ivh *.rpm
则会有*.rpm is for a different architecture的提示,无法正常安装。
后面发现./ltib的时候,有这样的操作:
sudo /opt/freescale/ltib/usr/bin/rpm --root /usr/src/ebook/ltib/ltib/rootfs --dbpath /var/lib/rpm --prefix / --ignorearch -ivh --force --excludedocs --define
'_tmppath /tmp/ltib' /usr/src/ebook/ltib/ltib/rpm/RPMS/arm/modeps-1.0-1.arm.rpm
所以用rpm -ivh --ignorearch *.rpm,如此便可以正常安装了。
ps: 个人认为,实际应用中,很少人会直接在target board上用rpm来安装。因为:一、target board一般情况下速度有限制; 二、在Host中直接rpm安装到rootfs,这样更容易控制;三、 target board中可以不用安装rpm模块,可节省一定的资源。
阅读(1442) | 评论(0) | 转发(0) |