nginx:制作基于mipsx64el平台的nginx的rpm



一、准备工作

想要制作一个软件安装包,必须要一个制作工具,这里使用rpmbuild工具。

  1. 安装制作工具rpm-build
    #yum -y install rpm-build
  2. 下载nginx源码包(本人制作时选取的是nginx-1.18.0.tar.gz)
    下载地址参考: http://nginx.org/en/download.html

二、生成rpmbuild目录结构

  1. 先直接执行以下命令,报错提示没有该目录或文件
    #rpmbuild -ba nginx.spec //会报错,没有文件或目录
  2. 再次查看时已自动生成目录结构
    #ls /root/rpmbuild //自动生成的目录结构
    BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
    附: 各个目录的含义:
    BUILD:打包过程中的工作目录
    BUILDROOT:在编译时会用到的临时目录
    RPMS:存放生成的二进制包
    SOURCES:放置nginx.tar.gz
    SPECS:放置SPEC文档
    SRPMS:存放生成的源码包

三、将nginx源码包复制到SOURCES目录

1.进入nginx源码包目录下执行(或自己的下载路径+源码包名直接复制)
#cp nginx-1.18.0.tar.gz /root/rpmbuild/SOURCES/
2.安装所需要的依赖(一般只需要这几个就可以,我制作时下载安装了这些,但这些依赖包他自己的伴生依赖没有下载全,出现了很多问题,如果有问题可以后续再安装依赖)
#yum -y install gcc pcre pcre-devel openssl openssl-devel
或者也可以自行下载匹配的版本
附:各个依赖的大概含义(网上搜的):
gcc:GCC是一个用于bailinux系统下编程的编du译器
是一个zhi用于编程开发的自由dao编译器
pcre:是一个Perl库,包括 perl 兼容的正规表达式库
pcre-devel:pcre的二进制文件加上头文件得到,编译时可能会需要这个库
openssl:是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听等
openssl-devel:类同pcre-devel

四、创建并修改SPEC配置文件

刚开始建好的目录都是空目录,现在除SOURCE中有源码包外,其他目录都是空的,现在进入SPECS目录中新建nginx.spec文件

#vim nginx.spec ##如果没有安装vim,可使用vi


下面是我制作是使用的nginx.spec 所配置的:(具体制作内容视自己要求):


Name: nginx #要制作的包名

Version: 1.18.0 #版本
Release: 3 #具体版本号
Vendor:mataog #软件开发者的名字。
Summary: nginx package #简介
Source: nginx-%{version}.tar.gz #所需要的源码包
License: GPL #许可
Group: Applications/Internet #组名
Buildroot: %_topdir/BUILDROOT #临时存放包的位置,下面会用到
BuildRequires: pcre pcre-devel openssl openssl-devel #制作此包时需要用到的依赖
Requires: openssl pcre #安装此包时用到的依赖
%description #具体描述
nginx RPM
%prep #这个段是预处理段,通常用来执行一些解开源程序包的命令,为下一步的编译安装作准备
%setup -q -n nginx-%{version} # #提取源码到 BUILD 目录。直接写-q自动解压源码包,并cd进入目录,因为我制作时直接写出现问题,所以又加了后面的内容
%build ##编译
./configure --prefix=/usr/local/nginx
make %{?_smp_mflags}
%install #make install阶段
make DESTDIR=%{buildroot}
%files
%doc ##将选择的该目录下的所有东西作为rpm包的内容。要制作的rpm包中的东西最终全是取自这里,如果此处为空,制作出来的包将会是一个空包
/usr/local/nginx/*
%changelog ##记录包的修改

  • Sun Aug 23 2020 mataog nginx-1.18.0-3
  • Build the program

*注:上述nginx.spec文件从简制作,制作初始想的只是可以制作出并能使用,没有体现性能优化等制作项,如制作时性能等因素也要考虑,可根据自己要求去添加对应配置项**

五、创建rpm包

制作nginx的rpm包需要配置的东西大多就需要这些了,下一步就开始创建包了
执行
#rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
如果之前的配置等信息没有出现错误的话,那么执行这一步基本上就已经完成了。我之前制作时,因为第一次,啥也不懂,制作时每次到这一步就出错,基本上出现的问题是在.spec 文件中

六、卸载、安装

终于到安装自己制作的安装包了 ,开心心~
先可以卸载掉自己电脑之前的nginx了,或者也可以去其他未安装nginx的MIPSx64el平台上去安装啦!

1.卸载:
#rpm –e nginx-1.18.0-3(只写版本,不写.rpm)
2. 安装:
将之前做好的nginx的rpm包放在一个文件夹中,进入该文件夹后执行以下命令:忽略依赖关系安装可在之后添加–force –nodeps
#rpm -ivh nginx-1.18.0-3.mips64el.rpm
3. 启动(依据自己的目录名)
#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
4.查看进程:
#ps –ef |grep nginx
根据需要可以去修改nginx的配置文件,如端口等
#vim /etc/nginx/nginx.conf
总结:因为我不是搞运维的,所以对这方面的知识不是很熟悉,就是一个小白(之前其实都不晓得mips是个啥东西,哈哈!),所以入手时出现了很多小问题,事后回想感觉这套制作流程只要熟悉了,还有一些配置文件中的内容知道是干嘛的,其实还挺容易的!如果有错误,,欢迎指出