免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10396 | 回复: 6
打印 上一主题 下一主题

[系统管理] rpmbuild打包spec问题 [复制链接]

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-06-15 22:20:00数据库技术版块每日发帖之星
日期:2015-06-16 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-08 13:51 |只看该作者 |倒序浏览
有个新的问题想请教。应该是我对SPEC文件编写不了解。
我在.spec中想在%files段加上工具和.ko的地址
%files
%defattr(-, root, root)
/lib/modules/%{rpm_kernel_version}/memdisk.ko
/usr/local/bin/memmonitor
然后rpmbuild报错,找不到$RPM_BUILD_ROOT/lib/modules/%{rpm_kernel_version}/memdisk.ko
之后我加了一行cp -f /lib/modules/%{rpm_kernel_version}/memdisk.ko \ $RPM_BUILD_ROOT/lib/modules/%{rpm_kernel_version}/
rpmbuild后还是说no such file or directory。
想问问应该怎么修改.spec文件?
另外我想问问,是我自己的一个感觉,安装rpm包,rpm -ivh *.rpm,只是将.rpm包里的文件放到某些文件夹下,但是没有办法执行命令,是不是? 比如我把一个ko文件放到/lib/modules/下,但是insmod这个ko文件需要另外用命令实现,请问是不是这样?
多谢 !

Zhang

%define memdisk_version 02.0039
%define memdisk_tar_version %{memdisk_version}
%define rpm_kernel_version %(uname -r)

Name: memdisk        
Version: %{memdisk_version}
Release: 1%{?dist}
Summary: Drvier        
Group:        System Enviroment/Kernel
License: Prorpietary
Source0: %{name}-%{memdisk_version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{memdisk_version}-root
BuildArch: x86_64
BuildRequires: /bin/rm, /bin/mkdir, /bin/cpRequires: /bin/bash, /bin/date

%description
Driver

%prep
%setup -q

%build
make

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p -m 755 $RPM_BUILD_ROOT/usr/local/bin

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
/usr/local/bin

%doc README

论坛徽章:
0
2 [报告]
发表于 2013-03-08 18:37 |只看该作者
%files下面是定义rpm包打完之后需要保留哪些目录和文件。

如果你要在安装rpm包里将某个文件拷贝到某个目录下。
可以在%install的时候使用
install -D -m 0644 %{目标文件、源} {目的地址}/

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-06-15 22:20:00数据库技术版块每日发帖之星
日期:2015-06-16 22:20:00
3 [报告]
发表于 2013-03-09 14:54 |只看该作者
回复 2# jeff_tao_cu

您好,我想请问一下,
我驱动安装正常编译后,memmonitor这个工具在/usr/bin/下,memdisk.ko会在/lib/modules/%{rpm_kernel_version}下。
我想做的是用rpm包安装驱动,但是
1. 做好spec后,rpmbuild -ba *.spec,程序会自动实现编译,而且把驱动装上。
2. 将驱动用make uninstall卸载。
3. rpm -ivh *.rpm之前生成的rpm包,发现并没有安装驱动。

如果我想在rpm -ivh *.rpm后把memmonitor和memdisk.ko放到之前的位置,应该怎么修改上面的spec
我的想法就是在%files段加上/usr/local/bin/memmonitor和/lib/modules/%{rpm_kernel_version}/memdisk.ko,
在%install段加 cp -f /lib/modules/%{rpm_kernel_version}/memdisk.ko ${RPM_BUILD_ROOT}/lib/modules/%{rpm_kernel_version}/
但是这样并不成功,rpmbuild -ba 时报错,no such file or directory
不知道您之前有没有碰到过?   

论坛徽章:
0
4 [报告]
发表于 2013-03-12 13:55 |只看该作者
按照你的说法,其实完全不需要手工来将memdisk.ko拷贝到/lib/modules/%{rpm_kernel_version}目录下,安装的时候就会拷贝。

你将你%files段中添加如下内容试试。
/lib/modules/*
/usr/bin/*

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-06-15 22:20:00数据库技术版块每日发帖之星
日期:2015-06-16 22:20:00
5 [报告]
发表于 2013-03-13 11:23 |只看该作者
多谢
已经成功了

论坛徽章:
0
6 [报告]
发表于 2014-08-28 14:29 |只看该作者
回复 5# shuizhuanwokao


   发下我的问题
我们的问题类似,请问您是怎么解决的

论坛徽章:
0
7 [报告]
发表于 2014-08-28 14:30 |只看该作者
回复 6# 米娜拉夜影


    补充一下:
                 Processing files: zenoss-4.2.4-1897.el6.x86_64
error: File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/zensocket
error: File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/pyraw
error: File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/nmap
error: File not found by glob: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/zenoss_*_pre
error: File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/etc
error: File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/etc/sudoers.d/zenoss_rabbitmq_stats
error: File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/etc/sudoers.d/zenoss_dmidecode


RPM build errors:
    File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/zensocket
    File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/pyraw
    File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/nmap
    File not found by glob: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/opt/zenoss/bin/zenoss_*_pre
    File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/etc
    File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/etc/sudoers.d/zenoss_rabbitmq_stats
    File not found: /root/rpmbuild/BUILDROOT/zenoss-4.2.4-1897.el6.x86_64/etc/sudoers.d/zenoss_dmidecode
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP