linux下制作rpm包举列

编程入门 行业动态 更新时间:2024-10-12 03:26:44

<a href=https://www.elefans.com/category/jswz/34/1770067.html style=linux下制作rpm包举列"/>

linux下制作rpm包举列

声明:本文参照链接 =distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-1&spm=1001.2101.3001.4242 并且做了修改

1.说明:
rpm软件包主要用在Linux 的reddat系列的发行版中,因此rpm软件包只适用于redhat系.

2.编写测试代码:

1.创建一个目录
mkdir test
2.进入到上一步创建的目录下编辑文件编辑 test.c
内容如下:
#include <stdio.h>
int main()
{printf("hello world!\n");return 0;
}编辑Makefile
OBJ = test.o
BIN_FILE = test
BIN_PATH = /usr/local/bin
CC = gcc
CFLAGS = -O3 -g -Wall
all: $(BIN_FILE).c.o:$(CC) -c $< -o $@ $(CFLAGS)test: $(OBJ)$(CC) -o $@ $^clean:rm hello test test.o -finstall: alltest -d $(RPM_BUILD_ROOT)$(BIN_PATH) || mkdir -p $(RPM_BUILD_ROOT)$(BIN_PATH)install -m 755 $(BIN_FILE) $(RPM_BUILD_ROOT)$(BIN_PATH)uninstall:rm $(RPM_BUILD_ROOT)$(BIN_PATH)/$(BIN_FILE)

3.make ;make install 看是否有错误,是否安装到指定路径下,测试没问题则开始制作rpm软件包。

4.编写spec文件

1.编辑spec文件
Name:       test
Version:    1.0
Summary:    test
Release:    00%{?dist}
Group:      Applications/Text
Source:     %{name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
URL:        www.test
License:    GPL%description
test rpm package
%prep
%setup
%build  
make
%install
make install
%clean
%files
/usr/local/bin/test-hello
%pre
%post
%preun
%postun2.spce文件介绍spce文件可以理解为制作rpm软件包的规则,及按照什么样的规则生成怎样的软件包。spac文件的选项有很多,在这里只介绍常用的几个选项,另外spce文件也没有必要完全重头开始编辑,可以从其他软件包中获取,保留需要的选型,有哪些选项不懂可以单独查找资料,没有必要全部记住,当然这也不太现实。下面针对一些常用的参数做一个简单的说明:1.与软件包相关的设置Name:       test  #软件包的名称Version:    1.0   #软件包的版本Summary:    test  #软件摘要Release:    00%{?dist}   #软件包发布的号Group:      Applications/Text   #软件分类,属于那个类别Source:     %{name}-%{version}.tar.gz   #源码tar包名称BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root    #用于测试安装的目录 注意该路径可以用变量     RPM_BUILD_ROOT来引用,因此在上面的Makefile中我们用到了此变量,注意该变量只有在打包(rpmbuild)时才会有值。URL:        www.test    #软件网站url 无关紧要,可以随便修改License:    GPL    #软件版权 无关紧要,可以随便修改2.建立软件包:%prep    #用于编译之前的准备工作,比如自动生成Makefile 打patch等工作,一般情况下用%setup%setup   #默认的编译前的准备工作(将源码解压到BUILD目录下) -q 参数 安静模式即没有输出%build   #用于生成应用程序 一般直接使用make 即rpmbuild会调到源码中的Makefile%install #应用程序的安装 如果在Makefile 中已经考虑到临时测试的安装目录(RPM_BUILD_ROOT)则可以直接 make install如果Makefile中没有考录RPM_BUILD_ROOT则在此处install时必须手动install,调Makefile的install是不会将文件打到包中的,推荐在Makefile中考虑到RPM_BUILD_ROOT变量,在install时直接install即可。%clean   #清理所有由rpmbuild创建的文件3.定义所有需要安装的文件%file   #定义所有需要安装的文件4.安装前后运行的脚本%pre    #安装前执行的脚本%post   #安装后执行的脚本%preun  #卸载前执行的脚本%postun #卸载后执行的脚本

注意:引用同文件中的变量的时候要用花括号“{}”。

5.制作rpm软件包

1.将test目录重命名为test-1.0   打成tar包        tar zcvf test-1.0.tar.gz test-1.0
2.将tar包拷贝到/root/rpmbuild/SOURCES/下,如果该路劲不存在先创建cp test-1.0.tar.gz  /root/rpmbuild/SOURCES/
3.将test.spec拷贝至/root/rpmbuild/SPECS/下,如果该路劲不存在先创建cp test.spec /root/rpmbuild/SPECS/
4.rpm安装包生成cd /root/rpmbuild/SPECS/ rpmbuild -ba test.spec 或 rpmbuild -bb test.spec-ba 会生成source包(即包含源码),-bb只生成二进制包
5.生成的rpm包在/root/rpmbuild/RPMS/下,生成的带远吗的src.rpm包在/root/rpmbuild/SRPMS/下。

注:本文参照链接 =distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-1&spm=1001.2101.3001.4242 并且做了修改

更多推荐

linux下制作rpm包举列

本文发布于:2024-03-12 22:38:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1732570.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:linux   rpm   包举列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!