一 建立源码ui
目录结构:spa
main-0.1code
├── main.c
└── Makefileblog
源码内容:ip
1 // main.c 2 #include <stdio.h> 3 4 int main () 5 { 6 printf("Test Main\n"); 7 return 0; 8 }
1 # Makefile 2 OBJS = main.o 3 main: ${OBJS} 4 gcc -o main ${OBJS} 5 clean: 6 rm -f main ${OBJS} 7 install: 8 install -m 755 main $(RPM_INSTALL_ROOT)/usr/local/bin/main
打包压缩ci
tar czf main-0.1.tar.gz main-0.1源码
二 打包io
【1】建立~/rpmbuild及其子目录编译
mkdir ~/rpmbuild
cd ~/rpmbuild
mkdir -p BUILD SPECS RPMS SOURCES SRPMSclass
【2】将main-0.1.tar.gz拷贝到SOURCES目录
【3】在SPECS目录下建立spec文件 main-0.1.spec
文件内容以下:
1 Summary: test rpm 2 Name: main 3 Version: 0.1 4 Release: 1 5 License: GPL 6 Group: NONE 7 Source: main-0.1.tar.gz 8 Url: http://you.guess 9 Packager: Lin 10 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root 11 12 %description 13 exercise: how to use rpm and rpmbuild 14 15 %prep 16 %setup -q 17 18 %build 19 make 20 21 %install 22 rm -rf %{buildroot} 23 mkdir -p %{buildroot}/usr/local/bin 24 make install RPM_INSTALL_ROOT=%{buildroot} 25 26 %files 27 /usr/local/bin/main 28 29 %changelog 30 * Tue Jul 30 2019 Lin <Lin@123.com> 0.1 31 - build the program
【4】运行: rpmbuild -ba main-0.1.spec
可见Log,说明打包成功。
最终的rpmbuild目录内容结构以下:
三 安装与卸载
上面的过程产生了 src.rpm和rpm。
先用 main-0.1-1.x86_64.rpm 包来练习安装、查询和卸载
安装:sudo rpm -ivh main-0.1-1.x86_64.rpm
执行命令: main
查看命令位置: type main(也能够用命令:rpm -ql main)
查看main的详细信息:rpm -qi main
卸载:sudo rpm -e main
而后用 main-0.1-1.src.rpm 练习经过src.rpm文件编译生成本身的安装包:
rpmbuild --rebuild main-0.1-1.src.rpm
这一步能够在其余支持rpmbuild命令的平台上完成。
【参考】
《鸟哥的Linxu私房菜》第23章