Linux操作系统使用RPMBUILD命令打包RPM的详细步骤 首先,我们需要了解一些预备知识,在旧版本的CentOS中,rpmbuild工具默认的工作路径是/usr/src/redhat,因为权限原因,一般用户身份不能制作rpm软件包,只能切换到root身份才能够制作。在新版本的CentOS中,可以在一般用户主目录下新建rpmbuild目录作为rpmbuild工具的工作目录。并且...
这个阶段执行make install操作,会在%_buildrootdir中建好目录结构,将需要打包到rpm中的文件从%_builddir复制到%_buildrootdir对应目录中,常见指令 1rm-rf $RPM_BUILD_ROOT2makeinstallDESTDIR=$RPM_BUILD_ROOT $RPM_BUILD_ROOT即是buildroot变量,可写成%{buildroot},需小写.如果有额外的配置文件,启动脚本,可手动用c...
可以使用:make DESTDIR=$RPM_BUILD_ROOT install 或者使用常规的系统命令 cp -rf filename $RPM_BUILD_ROOT/ %clean 清理临时文件,注意区分$RPM_BUILD_ROOT和$RPM_BUILD_DIR: $RPM_BUILD_ROOT是指开头定义的BuildRoot,而$RPM_BUILD_DIR通常就是指/usr/src/redhat/BUILD,其中,前面的才是%files需要的。 %pre...
$RPM_BUILD_ROOT 你看到/usr/src/redhat/BUILD文件夹没有,就是那个目录 setup-q,make等都在那里面进行,你运行完rpmbuild命令后,可以看到你进行编译的文件内容 要区分$RPM_BUILD_ROOT和$RPM_BUILD_DIR,这俩是不一样的。$RPM_BUILD_ROOT是指SPEC文件中定义的BuildRoot,而$RPM_BUILD_DIR通常就是指/usr/src/re...
exit0%prep%files%defattr(-,root,root,-)/pod_nanny%doc%pre%post%preun%changelog 准备好真实的代码包 $ ls SOURCES addon-resizer-1.8.5 打包 打包命令 rpmbuild -ba 既生成src.rpm又生成二进制rpm -bs 只生成src的rpm -bb 只生二进制的rpm ...
%defattr (-,root,root) 指定包装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755 %changelog 变更日志 一般会把git log记录输入,openstack文件中记录的日志: git rev-parse --abbrev-ref HEAD >> *.spec git log --pretty=oneline --abbrev-commit | head -n +1 ...
代码语言:txt 复制 export RPMBUILDROOT=/tmp/myrpmbuild 然后,可以在/tmp/myrpmbuild目录下创建SOURCES、SPECS等子目录,并将相应的文件放置在这些目录中。 总结起来,RPM build并不一定从~/rpmbuild获取文件,而是可以通过设置环境变量RPMBUILDROOT来指定构建根目录,并在该目录下创建相应的子目录来获取文件。
要区分$RPM_BUILD_ROOT 和 $RPM_BUILD_DIR,这俩是不一样的。$RPM_BUILD_ROOT是指SPEC文件中定义的BuildRoot,而$RPM_BUILD_DIR通常就是指/usr/src/redhat/BUILD。你可以通过生成rpm包的日志中具体看一下,再通过安装rpm包时的调试信息分析一下。还有一些宏参数的定义是在/usr/lib/rpm/marcros...
mkdir -p /root/rpmbuild/{RPMS,BUILD} cp nginx-1.2.0.tar.gz /root/rpmbuild/BUILD/ 2) vim /usr/src/redhat/SPECS/nginx.spec Name:nginx Version:1.2.0 Release: 1%{?dist} Summary: test Group:Applications License:Share BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release...