一、RPM概述
RPM是”RedHat Package Manager”的縮寫,它是一種軟體包管理器,主要用於管理Linux系統中的軟體安裝、升級、刪除等操作。在CentOS 7中,RPM被廣泛應用於系統軟體和第三方軟體的管理。
RPM軟體包格式通常包含如下信息:
- 軟體包名稱(Name)
- 軟體包版本號(Version)
- 軟體包發布號(Release)
- 軟體包廠商(Vendor)
- 軟體包描述(Summary)
- 軟體包詳細描述(Description)
- 軟體包依賴項(Depends)
- 軟體包安裝後需要執行的腳本(%post)
- 軟體包卸載前需要執行的腳本(%preun)
下面我們將通過實例來介紹如何使用RPM進行軟體包的管理。
二、RPM命令的基本使用
RPM命令是CentOS 7系統中最重要的命令之一,通過RPM命令可以安裝、更新、卸載軟體包。以下是RPM命令常用的選項和用法:
- 安裝軟體包:rpm -ivh 包名.rpm
rpm -ivh nginx-1.18.0-1.el7.x86_64.rpm
rpm -Uvh nginx-1.20.0-1.el7.x86_64.rpm
rpm -e nginx
rpm -qa
rpm -qi nginx
rpm -ql nginx
rpm -qR nginx
rpm2cpio nginx-1.20.0-1.el7.x86_64.rpm | cpio -idvm ./usr/sbin/nginx
三、RPM的高級用法
1. 使用Yum進行軟體管理
Yum也是一種基於RPM的軟體包管理器,它可以實現自動下載和安裝軟體包的功能。Yum的使用相對於RPM更加便捷,下面我們通過實例來介紹如何使用Yum進行軟體包管理:
- 安裝軟體包:yum install 軟體包名
yum install nginx
yum update nginx
yum remove nginx
yum search nginx
2. 使用RPM進行軟體打包
在CentOS 7中,我們也可以使用RPM進行軟體包的製作,並進行自定義配置。下面我們通過實例來介紹如何使用RPM進行軟體包的打包:
- 安裝RPM打包工具:yum install rpm-build
yum install rpm-build
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
cat < ~/rpmbuild/SPECS/nginx.spec
Name: nginx
Version: 1.20.0
Release: 1
Summary: High Performance Web Server
Group: System Environment/Daemons
License: GPLv2
URL: http://nginx.org/
%description
Nginx ("engine X") is a high-performance web server. It is a scalable, multi-threaded web server which can be used as a reverse proxy, load balancer, mail proxy, and HTTP cache.
%prep
%setup -q
%build
./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-debug
make %{?_smp_mflags}
%install
make DESTDIR=%{buildroot} install
%pre
/usr/sbin/groupadd -r nginx &> /dev/null || :
/usr/sbin/useradd -r -g nginx -s /sbin/nologin -d /usr/share/nginx -c "nginx user" nginx &> /dev/null || :
%files
%defattr(-,root,root)
%doc LICENSE README
%{buildroot}/%{_sbindir}/nginx
%dir %{buildroot}/usr/share/nginx
%dir %{buildroot}/usr/share/nginx/html
%dir %{buildroot}/usr/share/nginx/icons
%dir %{buildroot}/usr/share/nginx/modules
%{buildroot}/usr/share/nginx/html/*
%{buildroot}/usr/share/nginx/icons/*
%{buildroot}/usr/lib64/nginx/modules/*.so
%{_mandir}/man8/*
%{_sysconfdir}/nginx/*
%{_unitdir}/nginx.service
%{_tmpfilesdir}/nginx.conf
EOF
rpmbuild -bb ~/rpmbuild/SPECS/nginx.spec
ls -lh ~/rpmbuild/RPMS/x86_64/nginx-1.20.0-1.el7.x86_64.rpm
四、小結
本文簡要介紹了CentOS 7中的RPM軟體包管理器、使用Yum進行軟體包管理、使用RPM進行軟體包的打包,希望能夠對大家有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219981.html