rpm打包的问题
抱歉,我不知道这个帖子是否该发这里。如果有误,管理员帮忙,谢过!我要打包的是startupmanage,是一个在Gnome下设置启动画面的工具。
他是用python写成的,安装脚本也是。
在readme中他说安装的方法是安装好所有的依赖后,用python setup.py install命令安装。
我用他这个方法,安装好所有的依赖后,安装成功了。但是我希望把他做成rpm包。
我的spec文件的build部分大致如下:
%prep
%setup -q -n %{name}-%{version}
%install
python setup.py install
%clean
但是用rpm -bb编译的时候,总是提示说在clear的时候找不到~/src/tmp/startupmanager.1.9.10/这个目录。
具体提示如下:
running install_lib
+ '[' -n '' ']'
+ /usr/share/spec-helper/clean_files
Can't cd to /home/athurg/src/tmp/starupmanager-1.9.10-0: No such file or directory at /usr/share/spec-helper/clean_files line 17.
error: Bad exit status from /home/athurg/src/tmp/rpm-tmp.59788 (%install)
RPM build errors:
Bad exit status from /home/athurg/src/tmp/rpm-tmp.59788 (%install)
注:我的编译环境目录结构大致如下:
~/src/
~/src/tmp/
~/src/rpm/
~/src/rpm/RPMS/*
~/src/rpm/SPECS
~/src/rpm/SOURCE
~/src/rpm/BUILD
我可以在/build中找到这个目录。
我曾经试过在tmp中手动建立一个该目录,然后这个就没问题了。
但是如果没有手动建立该目录,即便是删除spec文件中%clean这段都不行。
请问这是什么原因?如何解决?
另外,如果按照上面的方法欺骗过去了,编译出来的结果好像不对劲。
编译出来的rpm包我用解压缩软件解压查看时,发现里面的内部结构是所有的安装包的文件都放在根目录下。
请问是怎么回事儿,怎么不是在/usr/等目录下呢?
我第一次打包,所以可能很多没说清楚也没说正确。
这里把源代码包上传上来,希望高手能够指点,或者帮忙做一个spec文件也可!
谢过! 另,小弟Email地址:[email protected]。
如果可能,希望会打包的同志能留下你的联系方式。 试试看这样能不能行。
%prep
%setup -q -n %{name}-%{version}
%install
rm -rf $RPM_BUILD_ROOT
%{__python} setup.py install --prefix=$RPM_BUILD_ROOT/usr
%clean
rm -rf $RPM_BUILD_ROOT
--prefix=$RPM_BUILD_ROOT/usr
我想这一句是关键,现在编译通过了,我的肉眼看来应该可以了。
肚子饿了,所以待会儿加源测试。
楼上在此谢过!
不知能否分析一下?
为什么我直接源码安装的时候不用指定安装根目录就OK,但是做RPM的时候必须要作如上指定?
而且好像大多数make 、make install类的c程序貌似都不需要做这一步。
另外最大的狐疑,加不加那个参数,影响到的应该就是安装位置吧?
为什么加上就正常,否则不光是安装目录不正常,连安装的文件都不正常(加上后安装的就是正确,不加上就是把整个源代码包内的目录复制到根目录)
望不吝赐教! 打包的时候不是安装到真正的系统的文件系统相应目录下
而是安装到虚构目录,也就是一个有别于系统目录的目录树下
也就是:$RPM_BUILD_ROOT/usr
页:
[1]