Linux軟件管理之RPM

首先我們來看一下一個軟件的開發到正常運行的流程

wKiom1PLf3mBWEyfAAEYl3Uqe0M931.jpg

由於源代碼中含有很多個程序片段,每個片段可能實現的功能不盡相同,而這些片段的編譯是有一定的次序要求的也就是說他們很可能相互依賴。所以這給普通用戶造成一種麻煩就是:想要編譯此程序就必須看懂此代碼並能知道各個片段的依賴關係;也許你會說直接把這些片段直接寫在一段程序中不就可以了,但是這樣會給程序員開發測試造成很大的困難。所以autoconfig閃亮登場它可以生成編譯環境檢查及編譯功能配置腳本,即爲configure。而automake會解決各片段的依賴關係生成Makefile.ini 至此源代碼包製作完畢。

wKioL1PLgNSDbIlQAAGnaz8rg1c309.jpg

用戶在拿到源代碼包後利用可執行程序configure結合Makefile.ini生成自己定製的makefile文件make命令根據此文件進行編譯 最後makeinstall安裝程序至此程序安裝成功。


什麼是RPM ??

   RPMReadhat Package Manager的縮寫,後來由於此軟件的管理方式成爲了工業標準所以更名爲 RPM is Package Manager

  rpm包的命名格式:name-version-relase.arch.rpm

  RPM命令的格式及常用選項:

  rpm     [option]   /path/to/package_file 

      -i: 表示安裝

  -v:顯示詳情

  -h:顯示安裝進度

          --test: 僅作測試,有真正執行安裝

例子:rpm -ivh  httpd-2.2.15-29.el6.centos.x86_64.rpm

wKiom1PLf_CRSU9ZAAGWm6U3cts227.jpg

如果依賴於其它包:

1、解決依賴關係

2、忽略依賴關係 能安裝上,但有可能無法運行;--nodeps

重新安裝:--replacepkgs

 

 

卸載程序包:-e: erase

例如:rpm  -evh  httpd

wKiom1PLgCTzHTDOAADmqZ5Xg6g691.jpg

升級程序包:

 -U:表示升級若此包沒有安裝則安裝

         -F:表示只升級已有的包

         --force: 強制升級

 

查詢操作:

 -q  查詢某包是否安裝

 

         -qa 查詢所有已經安裝的包

wKiom1PLgFKxeB43AABWBD2HMEU022.jpg

        -qi 查詢包的描述信息

wKioL1PLgY6jPhK-AAQqw0D-Su8287.jpg

     -ql 查詢某包安裝生成了哪些文件

wKiom1PLgJaAV2TPAAIX9dg0PlU021.jpg

    

   -qc 查詢某包安裝生成了哪些配置文件

wKioL1PLgdrAjSaHAACu6s3mY5M899.jpg


  

   -qd 查詢某包安裝生成了哪些幫助文件

wKioL1PLggKToYQtAALaA1WlLU0888.jpg



  -q --scripts 查詢程序包的相關腳本

wKiom1PLgSvCq98sAAG6zcVOIBs092.jpg



    -qf /path/to/some_file 查詢某文件是由哪個包安裝生成的

wKioL1PLgoSDrRbRAABhD4e-anU615.jpg


 

     --import /path/to/key_file 在當前系統上導入包的製作者的公鑰

數據庫重建:

        數據庫目錄:/var/lib/rpm

            rpm --initdb:初始化如果事先沒有庫,會新建一個;如果有,則不新建;

            rpm --rebuilddb: 直接重建,覆蓋原有的數據庫

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章