CentOS 7 RPM – 從入門到精通

一、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 包名.rpm
  •     
    rpm -Uvh nginx-1.20.0-1.el7.x86_64.rpm
        
      
  • 卸載軟體包:rpm -e 包名
  •     
    rpm -e nginx
        
      
  • 列出系統中已安裝的軟體包:rpm -qa
  •     
    rpm -qa
        
      
  • 查看軟體包信息:rpm -qi 包名
  •     
    rpm -qi nginx
        
      
  • 查看軟體包文件列表:rpm -ql 包名
  •     
    rpm -ql nginx
        
      
  • 查看軟體包依賴項:rpm -qR 包名
  •     
    rpm -qR nginx
        
      
  • 從RPM包中提取文件:rpm2cpio 包名.rpm | cpio -idvm 文件路徑
  •     
    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 軟體包名
  •     
    yum update nginx
        
      
  • 卸載軟體包:yum remove 軟體包名
  •     
    yum remove nginx
        
      
  • 搜索軟體包:yum search 軟體包名稱
  •     
    yum search nginx
        
      

2. 使用RPM進行軟體打包

在CentOS 7中,我們也可以使用RPM進行軟體包的製作,並進行自定義配置。下面我們通過實例來介紹如何使用RPM進行軟體包的打包:

  • 安裝RPM打包工具:yum install rpm-build
  •     
    yum install rpm-build
        
      
  • 創建RPM包目錄結構
  •     
    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
        
      
  • 創建 spec 文件
  •     
    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
        
      
  • 生成 RPM 包
  •     
    rpmbuild -bb ~/rpmbuild/SPECS/nginx.spec
        
      
  • 查看 RPM 包
  •     
    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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 11:02
下一篇 2024-12-09 11:02

相關推薦

  • Python wordcloud入門指南

    如何在Python中使用wordcloud庫生成文字雲? 一、安裝和導入wordcloud庫 在使用wordcloud前,需要保證庫已經安裝並導入: !pip install wo…

    編程 2025-04-29
  • Python小波分解入門指南

    本文將介紹Python小波分解的概念、基本原理和實現方法,幫助初學者掌握相關技能。 一、小波變換概述 小波分解是一種廣泛應用於數字信號處理和圖像處理的方法,可以將信號分解成多個具有…

    編程 2025-04-29
  • Python豎線圖:從入門到精通

    Python豎線圖,即Python的繪圖工具matplotlib中的一種圖形類型,具有直觀、易於理解的特點,適用於各種數據分析和可視化場景。本文從初學者角度出發,介紹Python豎…

    編程 2025-04-29
  • CentOS 6如何刪除resolv.conf的DNS

    本文將介紹在CentOS 6操作系統下如何刪除resolv.conf文件中的DNS配置信息。 一、備份resolv.conf文件 在修改resolv.conf文件之前,建議首先備份…

    編程 2025-04-29
  • 使用CentOS配置監控

    本文將介紹如何使用CentOS配置監控,包括如何安裝監控工具、配置監控參數、監控其他伺服器等方面。 一、安裝監控工具 要想進行監控,首先需要安裝監控工具。在CentOS系統中,常見…

    編程 2025-04-29
  • Python爬取數據指南-從入門到精通

    Python爬蟲是指用Python編寫程序,自動化地獲取網路上的信息,並進行處理、分析和存儲。以下是Python爬取數據的指南,從入門到精通。 一、獲取網頁數據 Python爬蟲的…

    編程 2025-04-29
  • Python導出微信群聊天記錄:從入門到實踐

    微信群聊是我們日常生活中與家人、朋友聊天交流的重要平台。但是,當備份和查看微信群聊的聊天記錄時,我們常常會遇到各種問題。這時,我們可以使用Python對微信群聊天記錄進行導出、備份…

    編程 2025-04-28
  • Python自學多久能入門?

    Python是一門極具優勢的編程語言,無論在人工智慧、數據分析、Web開發等領域都有廣泛的應用,所以越來越多的人開始學習Python。但是對於初學者來說,Python自學多久能入門…

    編程 2025-04-28
  • Python熵權法入門指南

    本文將為你介紹Python熵權法的基礎知識以及如何在實際應用中使用熵權法,讓你能夠更好地理解該演算法並將其運用到實際工作中。 一、什麼是Python熵權法? Python熵權法是一種…

    編程 2025-04-28
  • 西瓜創客python課程:從入門到精通

    本文將對西瓜創客python課程進行詳細闡述。旨在為初學者提供一個從入門到精通的學習路徑,並為已經有一定基礎的人提供更深入的學習體驗。 一、為什麼選擇西瓜創客python課程 西瓜…

    編程 2025-04-28

發表回復

登錄後才能評論