自定义仓库与源码封装RPM包操作
自定义yum仓库
在/var/ftp/目录下创建一个目录,创建目录(仓库名)
[root@mao ~]# mkdir /var/ftp/yum #创建仓库
[root@mao ~]# cd /var/ftp/yum
[root@mao ~]# createrepo ./ #生成yum仓库的必须文repodata目录
*一个自定义的yum仓库就创建好了,在同网段主机上指定相对于的地址就可以了*
------------------------------------------------------------
如果有仓库添加或者更改yum仓库的软件包,就必须在宿主机上进行刷新或者重新创建repodata。
[root@mao ~]# cd /var/ftp/yum
[root@mao ~]# createrepo --update . #更新当前目录
源码封装RPM软件包
1、下载工具rpm-build
[root@mao ~]# yum -y install rpm-build yum -y install zlib-devel #下载工具包和依赖包,(有些依赖包环境已经装好了的,所以不需要装)
[root@mao ~]# rpmbuild -ba nginx.spec #会报错,目的是生成下面的目录和子目录
[root@mao ~]# [root@web ~]# ls /root/rpmbuild
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
#SOURCES:放源码包的目录
#RPMS:最终生成的RPM包放在这里
#SPECS:放配置文件
--------------------------------------
[root@mao ~]# cp nginx-1.12.2.tar.gz /root/rpmbuild/SOURCES/
2、修改配置文件。就是相当于设置自动安装,在配置文件目录下创建一个配置文件,扩展名必须为.spec。文件名可自定义
新建后,只要扩展名没错,里面自动会生成相关设置。
[root@mao ~]# vim /root/rpmbuild/SPECS/nginx.spec
Name:nginx #源码包软件名称(必须对应源码包)
Version:1.12.2 #源码包软件的版本号(必须对应源码包)
Release: 10 #制作的RPM包版本号
Summary: Nginx is a web server software. #RPM软件的概述
#Group #属于哪个组包
License:GPL #软件的协议
URL: www.test.com #网址
Source0:nginx-1.12.2.tar.gz #源码包文件的全称(必须对应源码包)
#BuildRequires: #制作RPM时的依赖关系
#Requires: #安装RPM时的依赖关系
%description
nginx [engine x] is an HTTP and reverse proxy server. #软件的详细描述
#第一段内容,没有设置任何实质性的操作。是在给软件做描述信息。
----------------------------------------------------------------
%post #非必需操作:安装后脚本(创建账户)
useradd -s /sbin/nologin nginx
%prep
%setup -q #自动解压源码包,并cd进入目录
%build
./configure --user=nginx --group=nginx #模块选择。
make %{?_smp_mflags} #编译
%install
make install DESTDIR=%{buildroot} #安装
%files
%doc
/usr/local/nginx/* #对哪些文件与目录打包
%changelog
3、封装RPM包
下载编译所需要的依赖包,并且rpmbuild创建RPM
[root@mao ~]# yum -y install gcc pcre-devel openssl-devel
[root@mao ~]# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
--------------------------------------------------
测试安装是否成功,成功即可移动到自定义仓库中共享给所有同网段的主机使用