$ export VERSION=3.2.1 $ rpmbuild -tb singularity-${VERSION}.tar.gz (会提示安装缺少的rpm包) $ ls -al ~/rpmbuild...rw-rw-r-- 1 admin admin 19780504 Aug 10 01:30 singularity-debuginfo-3.2.1-1.el7.x86_64.rpm 安装 $ cd ~/rpmbuild
su builder01 创建工作目录切换到普通用户 `builder01`,先进入 `builder01`的主目录: cd ~rpmbuild 默认工作目录就在当前用户的主目录下,同时它需要特定结构的工作目录结构...,结构如下:其中,BUILD 目录用于存放编译生成的二进制文件,BUILDROOT 目录用于存放编译生成的中间文件,RPMS 目录用于存放已经构建好的 RPM 包,SOURCES 目录用于存放源代码和其他必要的文件...,SPECS 目录用于存放 RPM 打包的规范文件,SRPMS 目录用于存放源代码 RPM 包。...执行如下命令创建目录: mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} 三、RPM 包编译环境配置完成后,开始正式的 RPM...最后生成的 RPM 包将在 ~/rpmbuild/RPMS/noarch 中,这里通过 ls 查看该目录下文件:ls ~/rpmbuild/RPMS/noarch可以看到 demo-0.1-1.oc8.
文件夹内容如下 ls rpmbuild 将源码tar包复制到SOURCES目录 cp nginx-1.8.0.tar.gz rpmbuild/SOURCES/ 3.修改spec配置文件,根据这个文件内容进行打包...nginx-1.8.0.tar.gz #source制定源代码包,后面可以用%{source1}引用 %define nginx_datadir /usr/local/nginx #下面定义了nginx的安装目录...logs/error.log --http-log-path=%{nginx_datadir}/logs/access.log make %install #%install段开始把软件安装到虚拟的根目录中...-ba rpmbuild/SPECS/nginx.spec 以下exit0 表示成功 打包后会在 rpmbuild/RPMS/x86_64/ 下生产rpm包 5.安装 yum -y localinstall...rpmbuild/RPMS/x86_64/nginx-1.8.0-1.el7.centos.x86_64.rpm 因为打包时,没有将nginx脚本复制出来,所以要进到目录 用rpm -qi 可以看到打包的信息
然后有一群红帽公司的同学就开始意淫,如果能有一个东西,自动安装依赖包、自动创建目录、自动安装、卸载的时候还能把自己卸载的干干净净是如么爽的一件事情!...只要加个参数下载到本地再去安装rpm包就可以啦,如 sudo yum install -y --downloadonly --downloaddir=目录> gcc make rpm-build redhat-rpm-config...创建打包必须的目录 mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} echo '%\_topdir %(echo $HOME)/rpmbuild...解压源码等 %prep %setup -q # 编译 %build # rpm安装前执行的动作 %pre echo install begin... # 安装, 即把一些可执行文件和配置复制到目标目录中...# 清理一些暂存文件 %clean rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_DIR # 定义哪些文件或者目录会放入rpm中 %files %defattr(-,
SRPM 包编译完成后,会在当前目录生成 rpmbuild 目录,整个编译过程生成的文件(软件包)都存在这里。...-5.el6.src.rpm -i 选项用于安装 rpm 包时表示安装,但对于 SRPM 包的安装来说,这里只会将 .src.rpm 包解开后将个文件放置在当前目录下的 rpmbuild 目录中,并不涉及安装操作...通过此命令,也可以在当前目录下生成 rpmbuild 目录,但与表 2 不同,此 rpmbuild 目录中仅有 SOURCES 和 SPECS 两个子目录。...接下来使用 SPECS 目录中的设置文件生成 RPM 包,命令如下: [root@localhost ~]# rpmbuild -ba /root/rpmbuild/SPECS/httpd.spec 其中...命令执行完成,会在 /root/rpmbuild/ 目录下生成 BUILD、RPMS、SOURCES、SPECS 和 SRPMS 目录,RPM 包放在 RPMS 目录中,SRPM 包生成在 SRPMS
(这里是root用户,所以home目录是/root)会生成一个rpmbuild目录 [root@centos ~]# ll ~ | grep rpmbuild drwxr-xr-x 4 root root...上一步是根据自己的需要修改源码包,修改完成后的最后一个步骤就是构建新的rpm包 # 进入到rpmbuild/SPECS目录下 [root@centos ~]# cd ~/rpmbuild/SPECS...-bb openstack-nova.spec # 构建完成后,在~/rpmbuild目录下又会生成几个新的目录 [root@centos ~]# ll ~/rpmbuild/ 总用量 4 drwxr-xr-x...从目录的作用可知道,新构建出来的rpm包就位于 RPMS 目录下 [root@controller ~]# tree ~/rpmbuild/RPMS /root/rpmbuild/RPMS └── noarch...安装rpm-build包,安装完成后才会有rpmbuild命令 [root@centos ~]# yum install rpm-build 进入python源码目录,确保已经有了setup.py,没有则需要自己创建
这样虽然也能完成打包工作,但至少有以下缺点: 耗时耗力 依赖关系容易漏掉,比如:在干净的环境中经过多次调试,把缺少的依赖包一个一个的装上了, 但最后写spec文件时却忘记添加某个依赖,导致下次打包时需要重新调试或者打包后软件包无法使用等问题.../RPMS/x86_64/php-redis-2.2.7-1.el6.x86_64.rpm /rpms/ 然后/rpms目录下就会有我们刚刚制作的RPM包。...Dockerfile如下(为了ADD RPM文件,需要保存在/rpms目录下): FROM centos:centos6 ADD php-redis-2.2.7-1.el6.x86_64.rpm /...localinstall -y /php-redis-2.2.7-1.el6.x86_64.rpm RUN php -d "extension=redis.so" -m |grep redis 在/rpms目录下执行...通过iptables阻断从容器到所有内网IP的通信(当然如果需要也可以针对特定的IP/端口开放权限) 通过selinux或者apparmor限制某个容器所能访问的资源 对某些sysfs或者procfs目录
安装rpm-build软件并配置SPEC文件 1)安装rpm-build软件包 # yum -y install rpm-build 2)生成rpmbuild目录结构 # rpmbuild -ba...nginx.spec # ls /root/rpmbuild BUILD BUILDROOT RPMS SOURCES SPECS SRPMS 3)将源码软件复制到SOURCES目录 # cp...nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/ 4)创建并修改SPEC配置文件 # vim SPECS/nginx.spec Name:nginx.../SPECS/nginx.sh %{buildroot}/etc/init.d/ ##注意,这里是将一个脚本拷贝到安装目录,如果没有则不需要该指令 %files %doc /etc/init.d/nginx.sh...创建RPM软件包 # rpmbuild -ba SPECS/nginx.spec # ls RPMS/x86_64/nginx-1.8.0-1.x86_64.rpm # rpm -qpi RPMS/x86
创建相应的目录 [root@c8 /]# mkdir -p /root/rpmbuild/SOURCES 1.4 下载GreatSQL源码包 戳此链接 https://gitee.com/GreatSQL.../SOURCES 目录下,并解压缩。.../ 目录下。.../SOURCES 目录下。...[root@c8 rpmbuild]# du -sch * 45G BUILD #编译工作目录,产生大量编译文件,所以特别大,可以清空 0 BUILDROOT 976M
2.1 初始化rpmbuild 安装 rpmbuild 并准备相关目录文件 sudo yum install make gcc rpmbuild mkdir -p ~/rpmbuild/{BUILD,BUILDROOT...,RPMS,SOURCES,SPECS,SRPMS} 各个目录的用途如下: BUILD 编译rpm包的临时目录 BUILDROOT 编译后生成的软件临时安装目录 RPMS...最终生成的可安装rpm包的所在目录 SOURCES 所有源代码和补丁文件的存放目录 SPECS 存放SPEC文件的目录(重要) SRPMS 软件最终的rpm源码格式存放路径...打包之前需要将源代码以及相关脚本放到 SOURCES 目录中。...rpmbuild -ba program.spec -ba 参数 会创建两个包:RPM 会保存至 ~/rpmbuild/RPMS,SRPM 会保存至 ~/rpmbuild/SRPMS。
包制作方法 最近有同学问我制作RPM包相关的问题,我发现我以前做过,但是忘记记录了,现在记录一下: 以打包nginx并带有nginx-rtmp的工程为rpm为例: 首先,需要安装一个rpmbuild...: 点击(此处)折叠或打开 yum install rpm-build 安装完成之后,系统中可以使用rpmbuild命令 然后下载nginx与nginx-rtmp,当然...%files %defattr(-,root,root,-) %doc %changelog spec写完后,将源码包放在SOURCE目录下即可...,一般是在/root/rpmbuild下面 点击(此处)折叠或打开 [root@sr01 SOURCES]# pwd /root/rpmbuild/SOURCES [.../nginx.spec > /dev/null + umask 022 + cd /root/rpmbuild/BUILD + cd /root/rpmbuild/BUILD
readline-devel rpcgen rpm-build rpm-build snappy-devel tar time unzip vim wget zlib-devel 1.3 创建构建RPM包所需的目录...创建相应的目录 [root@oe /]# mkdir -p /root/rpmbuild/SOURCES 1.4 下载GreatSQL源码包 戳此链接 https://gitee.com/GreatSQL.../SOURCES 目录下,并解压缩。.../ 目录下。.../SOURCES 目录下。
makecache 1.2、安装编译所需要的软件包 安装 rmp-build 包,它会附带安装其他必要的相关依赖包: $ dnf install -y rpm-build 1.3 创建构建RPM包所需的目录...创建相应的目录 $ mkdir -p /root/rpmbuild/SOURCES 1.4 下载GreatSQL源码包 此链接 https://gitee.com/GreatSQL/GreatSQL...目录下,并解压缩。.../ 目录下。.../SOURCES 目录下。
rpmbuild方式定制rpm包 rpmbuid是用于制作rpm格式包的工具。...rpm 4.5.x版本开始,将rpmbuid工具默认的工作车间为$HOME/rpmbuild(用户家目录),并且推荐用户尽量不用root账号制作rpm包。...内容一般为: [root@moban ~]# cat .rpmmacros %_topdir %(echo $HOME)/rpmbuild 在%_topdir目录下一般需要有6个目录(实际操作的时候执行命令自动创建...): 备注:执行rpmdev-setuptree命令会在当前用户的家目录下的rpmbuild目录(如果该目录不存在也会被自动创建)里自动建立上述目录。...最后切换SPEC目录下执行命令制作rpm包: rpmbuild -bb rpmbuild/SPEC/软件名-版本.spec SPEC文件是最核心的,在它里面定义了头部信息和一些“阶段”(%prep、%build
可以看到运行了这个命令之后,在$HOME家目录下多了一个叫做rpmbuild的文件夹,里边内容如下: $ tree rpmbuild rpmbuild ├── BUILD ├── RPMS ├── SOURCES...源代码目录 保存源码包(如 .tar 包)和所有 patch 补丁 ~/rpmbuild/BUILD %_builddir 构建目录 源码包被解压至此,并在该目录的子目录完成编译 ~/rpmbuild...rpmbuild/BUILDROOT/XXX) 目录,并根据需要在 %{buildroot} 中创建必要目录。...Spec 文件目录 保存 RPM 包配置(.spec)文件 ~/rpmbuild/SOURCES %_sourcedir 源代码目录 保存源码包(如 .tar 包)和所有 patch 补丁 ~/rpmbuild...阶段安装的文件 ~/rpmbuild/RPMS %_rpmdir 标准 RPM 包目录 生成/保存二进制 RPM 包 ~/rpmbuild/SRPMS %_srcrpmdir 源代码 RPM 包目录 生成
,SPECS} 下载相应二进制包到SOURCES目录: cd /root/rpmbuild/SOURCES wget https://nginx.org/download/nginx-1.20.1.tar.gz...start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac 确保SOURCES目录中存在两个文件...接下来进入SPEC目录中,编写nginx.spec: cd /root/rpmbuild/SPECS/ vi nginx.spec Name:nginx Version:1.21.0 Release:...+ /usr/bin/install -p -D -m 0755 /root/rpmbuild/SOURCES/nginx /root/rpmbuild/BUILDROOT/nginx-1.21.0-1.../BUILD + /bin/rm -rf /root/rpmbuild/BUILDROOT/nginx-1.21.0-1.x86_64 + exit 0 rpm包存储路径为: /root/rpmbuild
#清除缓存 yum clean all 安装rpm-build yum install rpm-build make rsync cd rpmbuild/ ll #将源码到/root/rpmbuild.../BUILDROOT/目录下,删除隐藏文件.vscode #进入/root/rpmbuild/SPECS/,编辑打包脚本test.spec cd /root/rpmbuild/SPECS/ vi...%pre %preun %postun %clean %files %defattr (-,root,root,0777) /usr /etc /var %post #运行制作rpm包 rpmbuild
tar.gz tar -zcvf atop-2.4.0.tar.gz atop-2.4.0/ (图片点击放大查看) (图片点击放大查看) (图片点击放大查看) (图片点击放大查看) 3、准备atop的rpmbuild...相关文件 cp /opt/atop-2.4.0/atop.spec ./ rpmbuild atop.spec 使用该命令生成rpmbuild的相关目录 cd rpmbuild/ cp /opt/atop...-2.4.0/atop.spec SPECS/ cp /opt/atop-2.4.0.tar.gz SOURCES/ (图片点击放大查看) (图片点击放大查看) 4、rpmbuild生成rpm包...cd /root rpmbuild -ba rpmbuild/SPECS/atop.spec 生成的rpm包位于 cd /root/rpmbuild/RPMS/x86_64/ (图片点击放大查看
pyaudio的运行需要依赖于portaudio这个库,应该先安装一个portaudio库
$HOME)/rpmbuild' > ~/.rpmmacros 文件名 类型 说明 SPECS 目录 包含rpm的xxx.spec文件(打包的描述文件) SOURCES 目录 包含源码包(如.tar包)...和所有patch补丁、service启动文件等 BUILD 目录 源码包被解压至此, 并在该目录的子目录完成编译 BUILDROOT 目录 存放编译后的文件的临时目录(保存%install阶段安装的文件...) RPMS 目录 经过编译成功后, 打包文件放在这个目录, 包含i386、i686、noarch等次级目录 SRPMS 目录 包含.src.rpm的SPRM包(通常用于审核和升级软件包) 制作spec...& 一切顺利的话,最终会在~/rpmbuild/RPMS/x86_64/目录下找到编译好的rpm包。...总结 rpmbuild打包一般步骤 根据rpmbuild标准,创建打包的目录结构 将源码和辅助文件放到指定目录 编写spec文件,放到指定目录 根据需要构建rpm,或者rpm和srpm等。
领取专属 10元无门槛券
手把手带您无忧上云