[Centos7]手动将源码包转换成可直接安装的RPM安装包。

这里以Nginx源码包举例。

首先理解,下载的软件包一般为tar格式,而rpm包,也是一种压缩方式。所谓的安装,其实就是解压缩。


yum -y install rpm-build             //安装rpm-build,rpm包制作工具。

rpmbuild -ba xx.spec                   //使用此命令使系统在当前路径创建目录 rpmbuild

cd rpmbuild                                 //进入目录

ls rpmbuild                                  //查看目录会发现出现六个文件夹,以下简单介绍其中三个

目录结构:

RPMS           //rpm成品

SOURCES     //此目录放置程序源码

SPECS          //里面写配置文件,记录要如何安装这个rpm


cp   /root/nginx-1.12.2.tar.gz   /root/rpmbuild/SOURCES/             //拷贝源码到指定位置

cd SPECS/               //进入SPECS目录

vim nginx.spec         //新建spec文件(后缀格式必须为 .spec )

自动生成如下信息:(注意,加粗部分必须严格谨慎填写!其他部分任意填写。)

Name:nginx                             //软件名(严格按照文件名填写,程序会去SOURCES目录下查找)

Version: 1.12.2                        //版本号(严格按照文件名填写,原因同上)

Release: 1                                  //第几次做RPM包(任意填写)

Summary:                                  //概述(任意填写)


Group:                                        //是否属于哪个组包(无就#注释)

License:                                       //建议输入GPL(GPL=自由/开源)

URL:                                             //网站

Source0:nginx-1.12.2.tar.gz    //输入源码包名称 nginx-1.12.2.tar.gz (严格填写)


BuildRequires:                            //建议注释,提示依赖关系,但不会解决。

Requires:                                     //建议注释


%description                               //详细的描述信息

任意信息,详细描述。


%post                                                  //添加此行,预留脚本,装包时会自动运行。

useradd -s /sbin/nologin  nginx      //创建用户,提升安全性 


%prep

%setup -q                                            //自动解压并cd进入目录


%build

%configure                                         //改为 ./configure  --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-stream 等需要的模块。

make %{?_smp_mflags}                    //自动make编译


%install

make install DESTDIR=%{buildroot}      //编译安装


%files                                     //对哪些文件和目录打包,也就是你的程序。

%doc

/usr/local/nginx/*                //例如,这些是源码安装出的东西,提供此路径以打包。


%changelog

:wq保存退出。

rpmbuild -ba nginx.spec     //读取刚刚创建的 nginx.spec 开始打包 rpm 包。 


检查:

[root@tset SPECS]# ls   ../RPMS/x86_64/

nginx-1.12.2-1.x86_64.rpm                           //rpm安装包

nginx-debuginfo-1.12.2-1.x86_64.rpm        //调试信息包


[root@tset SPECS]#  yum   -y   install   ../RPMS/x86_64/nginx-1.12.2-1.x86_64.rpm        //安装使用即可

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。