2020年11月3日 星期二

Linux rpm build (1) - rpmbulid

    rpm命令使用簡介

    什麼是rpm?

    rpm是RPM package manager的縮寫,最早由RedHat公司提出的軟體包標準,後來隨著rpm的不斷髮展而又增加許多功能,

    逐漸的成為linux公認的軟體包管理標準。支援該格式的廠商有RedHat linux、suse linux、Mandriva linux。


    rpm命令十分強大,那麼rpm命令究竟有什麼功能呢?

    1 查詢已安裝在linux系統中的rpm軟體包的資訊

    2 查詢rpm軟體包安裝檔案的資訊

    3 安裝rpm軟體包到當前linux系統

    4 從linux系統中解除安裝已安裝的rpm軟體包

    5 升級當前linux系統的rpm軟體包

    (1)#rpm -qa       後面不接引數用於檢視系統中已經安裝的所有的rpm

    (2)#rpm -q rpm    用於檢視系統中是否安裝了該軟體包,如果安裝了,系統會顯示完整的包名;如果沒有安裝,系統會提示”package bas is not installed”。

    (3)#rpm -qi rpm   用於檢視系統中已經安裝的rpm包的完整資訊,包括該包的版本資訊,安裝時間和大小等。

    (4)#rpm -ql rpm   用於檢視該軟體包都安裝到了那些位置。

    (5)#rpm -qf 檔名  用於檢視某個檔案使用那個rpm包安裝的。

    (6)#rpm -qpi rpm  和#rpm -qpl分別用於檢視沒有安裝的包的資訊,注意下和(4)、(5)的區別。

    (7)#rpm -ivh      用於安裝rpm軟體包,i代表安裝、v代表視覺化安裝、h代表安裝的時候顯示進度。

    (8)#rpm –force -irpm 用於強制安裝rpm軟體包,–force引數用於安裝存在依存關係的rpm包。不過一般我們並不怎做,解決依存關係的較好的方法是使用#rpm -i 命令一起安裝。

    (9)#rpm -e rpm    用於刪除rpm軟體包。

              #rpm -e –nodeps rpm 用於刪除存在依存關係的軟體包,該命令可以將和該包存在依存關係的所有的軟體包統統刪除。

   (10)#rpm -Urpm     用於對rpm包的升級。


    **解壓縮rpm檔

    在 Redhat 系列的發行版內, 所有安裝的套件都會打包成 rpm 檔, 安裝時只要安裝一個檔案便可以, 就如同 Debian 的 deb 檔,

    使用 rpm 安裝套件十分方便, 但有時只想解開 rpm 檔的內容, 而不要安裝套件, 這時可以用 rpm2cpio 及 cpio 指令。

    解開 rpm 不像解開 deb 可以用單一指令完成, 需要先用 rpm2cpio 轉換 rpm 成為 cpio 格式, 再用 cpio 解開,

    這個動作可以透過管線 (pipe) 完成。

    例如有一個 example.rpm 要解開, 指令是這樣:

    # rpm2cpio example.rpm | cpio -idmv

    以上指令會將 example.rpm 的內容解開到當前目錄。


    ** rpmbuild  手動建立自己的rpm

    動手打包前,首先得安裝相關的軟件。我們需要使用的程式是 rpmbuild

    如果你是 RHEL、CentOS

    sudo yum install rpm-build


    如果你是 Ubuntu 或者 Debian 的用戶,

    sudo apt-get install rpm

    

    安裝之後,我們來試一試 rpmbuild是否存在︰

    rpmbuild --version

    RPM version 4.4.2.3



文章參考:

https://codertw.com/%E5%89%8D%E7%AB%AF%E9%96%8B%E7%99%BC/392870/

https://www.opencli.com/linux/extract-rpm-files

 

沒有留言:

張貼留言