天天看點

Linux RPM 指令詳解及源碼編譯安裝

       RPM 是RPM Package Manager(RPM軟體包管理器)的縮寫。

         RPM檔案在Linux系統中的安裝最為簡便。

一.

  rpm:

                 主要工作内容為安裝,查詢,解除安裝,更新,校驗,資料庫的重建,驗證資料包等。

  2.   rpm  lib資料庫

                 資料庫為 /var/lib/rpm

  3.    rpm命名

                   包的組成部分

                            主包:

                                    bind-版本号

                                            如:bind-9.1.1-1.i586.el5.rpm

                            子包:

                                        bind-libs-9.1.1-1.i586.el5.rpm

                                        bind-utils-9.1.1-1.i586.el5.rpm

                            包名格式:

                                         name-version-release.arch.rpm

                                         bind軟體名-主版本号.次版本号.發行号.架構平台.rpm

                                  主版本号:重大改進

                                  次版本号:某個子功能發生重大變化

                                  發行号:修正了部分BUG,調整了一點功能

二:

       1. rpm安裝指令

                rpm -i  /PAth/File檔案

                        -v 以#顯示進度,每個#表示2%;

                        -h:顯示詳細的資訊過程

                        -vv:顯示更詳細的過程

                  rpm -ivh  /PATH/To/FILE

                          --nodeps:忽略依賴關系;

                                如:rpm -ivh gcc-4.4.7-3.el6.x86_64.rpm

                          --replacepkgs:重新安裝,替換原有安裝    

                          --force:強行安裝,可以實作重裝或者降級

        2. rpm包查詢

                    rpm  -q  File_name:檢視指定的包是否已經安裝

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

                    rpm  -qa |  grep File_name: 查詢File_name是否已經安裝,包括那些包

                    rpm  -qi  File_Name:查詢指定包的說明資訊

                    rpm  -ql File_Name:查詢指定包安裝後生成的檔案清單  

                    rpm  -qf /path/to/file_name: 查詢指定的檔案是由哪個rpm包安裝生成的

                    rpm  -qc File_Name:查詢指定安裝包的配置檔案

                    rpm  -qd PACKAGE_Name:查詢指定安裝包的幫助檔案

                    rpm   -q  --scripts  PACKAGE_Name:查詢指定安裝包中包含的腳本

    如果某個rpm包尚未安裝,我們需查詢其說明資訊,安裝以後生成的檔案

                    rpm -qpi   /PATH/to/PACKAGE_Name

                    rpm  -qpl  /PATH/to/PACKAGE_Name    

        3. rpm包更新

                     rpm  -Uvh  /PATH/to/PACKAGE_Name   如果裝有老版本的,則更新,否則安裝

                     rpm  -Fvh  /PATH/to/PACKAGE_Name   如果裝有老版本的,則更新,否則退出

                     rpm  --oldpackage: 降級

        4. rpm解除安裝

                     rpm  -e PACKAGE_Name :

                     rpm   --nodeps :忽略依賴關系

                     rpm  -e  --nodeps Package_Name: 忽略依賴關系解除安裝

        5. rpm校驗

                    rpm -V PACKAGE_NAME :校驗指定rpm包

        6. 重建資料庫

                    rpm  --rebuilddb:重建資料庫,一定會重建立立

                    rpm --initdb:初始化資料庫 ,沒有才建立,有就不用建立資料庫

        7. rpm檢驗來源合法性,及軟體包完整性

                    [root@localhost zhang]# ls /etc/pki/

                    [root@localhost zhang]# ls /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

                    [root@localhost zhang]#rpm --import  /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:導入密鑰檔案

                    rpm -K /PAPT/to/PACKAGE_NAME   驗證rpm包

                            rsa,gpg:驗證來源合法性,也即驗證簽名,可以使用--nosignature,略過此項

                             sha1,md5:驗證軟體包的完整性,可以使用--nodigest,略過此項

  列子:以 gcc-4.4.7-3.el6.x86_64.rpm軟體包為例  

源碼編譯安裝:

 編譯安裝的步驟:

  1、下載下傳源碼包,并解壓

   # tar xf package.tar.{gz | bz2 | xz}

  注意,解壓完成後的目錄名稱通常為package

  2.切換到源碼目錄中

   # cd package

  3、執行configure腳本

   # ./configure

  4.編譯

   # make

  5、安裝

   # make install

 configure腳本的通用功能:

  我們需要定義的配置:

   1、指定安裝路徑

    --prefix=/usr/local/package_name

   2、指定配置檔案路徑

    --sysconfdir=/etc/package_name

   3、指定啟用/禁用的特性:

    --enable-feature  例如:--enable-fpm

    --disable-feature 例如:--disable-socket

   4、指定所依賴功能、程式或檔案

    --with-function:啟用某功能

    --without-function: 禁用某功能

   不同的程式,其configure腳本功能不同,需擷取幫助

    ./configure --help   

二進制程式:

 #vim /etc/profile.d/apache.sh

 PATH=/usr/local/apache/bin:/usr/local/apache/sbin:$PATH

 export PATH

頭檔案輸出給系統

 # ln -sv /usr/local/apache/include /usr/include/httpd

庫檔案輸出

 #vim /etc/ld.so.conf.d/httpd.conf

 /usr/local/apache/bin

讓系統重新生成庫檔案路徑緩存

 #ldconfig

導出man檔案

 #vim /etc/man.config

 MANPATH /usr/local/apache/man

解除安裝則删除安裝目錄即可

本文轉自 zhangguangyi 51CTO部落格,原文連結:http://blog.51cto.com/bosszhang/1676084