QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1026|回复: 4

rpm打包的问题

[复制链接]
发表于 2008-5-7 14:45:48 | 显示全部楼层 |阅读模式
抱歉,我不知道这个帖子是否该发这里。如果有误,管理员帮忙,谢过!

我要打包的是startupmanage,是一个在Gnome下设置启动画面的工具。

他是用python写成的,安装脚本也是。

在readme中他说安装的方法是安装好所有的依赖后,用python setup.py install命令安装。

我用他这个方法,安装好所有的依赖后,安装成功了。但是我希望把他做成rpm包。

我的spec文件的build部分大致如下:

  1. %prep
  2. %setup -q -n %{name}-%{version}

  3. %install
  4. python setup.py install
  5. %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文件也可!
谢过!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2008-5-7 14:47:00 | 显示全部楼层
另,小弟Email地址:[email protected]
如果可能,希望会打包的同志能留下你的联系方式。
回复

使用道具 举报

发表于 2008-5-7 16:52:13 | 显示全部楼层
试试看这样能不能行。

  1. %prep
  2. %setup -q -n %{name}-%{version}

  3. %install
  4. rm -rf $RPM_BUILD_ROOT

  5. %{__python} setup.py install --prefix=$RPM_BUILD_ROOT/usr
  6.                
  7. %clean
  8. rm -rf $RPM_BUILD_ROOT

复制代码
回复

使用道具 举报

 楼主| 发表于 2008-5-7 18:47:23 | 显示全部楼层
--prefix=$RPM_BUILD_ROOT/usr


我想这一句是关键,现在编译通过了,我的肉眼看来应该可以了。

肚子饿了,所以待会儿加源测试。

楼上在此谢过!

不知能否分析一下?

为什么我直接源码安装的时候不用指定安装根目录就OK,但是做RPM的时候必须要作如上指定?

而且好像大多数make 、make install类的c程序貌似都不需要做这一步。

另外最大的狐疑,加不加那个参数,影响到的应该就是安装位置吧?

为什么加上就正常,否则不光是安装目录不正常,连安装的文件都不正常(加上后安装的就是正确,不加上就是把整个源代码包内的目录复制到根目录)

望不吝赐教!
回复

使用道具 举报

发表于 2008-5-14 14:36:54 | 显示全部楼层
打包的时候不是安装到真正的系统的文件系统相应目录下
而是安装到虚构目录,也就是一个有别于系统目录的目录树下
也就是:$RPM_BUILD_ROOT/usr
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-23 19:18 , Processed in 0.049047 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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