Linux下軟件包安裝詳解

一、概述

        現在Linux上軟件的安裝方式有多種,有源碼包編譯,軟件包管理器,軟件包管理器前端工具,通用二進制編譯等。源碼包,優點是,靈活性和可定製性比較好,缺點是,技術要求高,操作複雜,雖然網上有編譯安裝軟件的文檔,也有很多人在使用,也都是默認或者簡單配置後編譯的。後來出了軟件包管理工具RPM,RPM軟件包管理軟件方便多了但是它的依賴關係讓人頭疼,所以又推出出了YUM解決了讓人頭疼的依賴關係。在這裏我給大家介紹一下幾種常用Linux軟件安裝方式。

二、軟件包的組成

一個軟件包安裝之後包含多種類型文件,我們先了解一下它的組成與分佈的位置

 1、二進制文件

   分佈的目錄:/bin,    /sbin,    /usr/bin,   /usr/sbin,   /usr/local/bin,   /usr/local/sbin

   2、庫文件

         分佈目錄: /lib,   /usr/lib,   /usr/local/lib 

   3、配置文件

        分佈目錄: /etc

   4、幫助文件(通常這裏會教你如何進行安裝)

        手冊:README   INSTALL    /usr/share/doc

三、程序安裝方式

   1、通用二進制編譯:別人編譯好的,解壓之後配置就能使用。

   2、軟件包管理器:使用rpm命令安裝就可以使用了,但安裝時要考慮到依賴關係。

   3、軟件包管理器前端工具:可以自動解決軟件包的依賴關係。

   4、源碼包:源碼包就是程序的源代碼,必須通過編譯器編譯成二進制後才能使用,在編譯時,軟件所需的庫文件一定要有,不然編譯是不能成功的。

    這裏着重說一下源碼包安裝,由於一些特殊的個性化設置,我們需要源碼包安裝一個服務,我覺得它的基本思路就是遇到問題解決問題,當我們源碼包安裝一個服務時,最常見的問題就是缺少基礎程序,也就是庫文件(devel包),這時我們通過yum逐條擊破安裝,直到服務安裝成功即可(不在報錯)

    源碼包安裝的基本流程:解壓→進入目錄→./configure --prefix=自己定義的安裝路徑(這個時候通常就是之前說的遇到問題的時候,提示缺少環境、依賴關係,用yum逐條安裝即可)→make→make install

  四、RPM軟件包管理工具 

    1、基本功能:

        打包、安裝、查詢升級、校驗、寫在、數據管理(重建)      

    2、rpm軟件包包含:

        文件清單、文件存放路徑、提供的功能說明、依賴關係

    3、數據庫:軟件包信息,軟件包校驗

    4、源程序命名方式:

       name-version.tar.{gz|bz2|xz}

           版本號:major.minor.release 主版本號.次版本號.發行號

 5、rpm包的命名方式:

       name-version-release.arch.rpm

           發行號:用於標識rpm包的本身發行號,可還包含所適用的操縱做系統

           例如:el6:RHEL6

           arch:主機平臺

           例如:i386、x86_64、amd64、ppc、noarch不區分平臺

    注意:下載軟件包時要注意區分操作系統和平臺,不然可能會裝不上的

 6、rpm分包

   主包:核心包

   分包:支包

     例如:bind

        bind-devel

 7、常用軟件包下載地址:

    http://mirrors,sohu.com

    http://rpmfind.net

    http://rpm.pbone.net

    8、安裝軟件包:rpm -i /path/to/rpm_file1 rpm_file2…

    -i|–install    :安裝一個新的軟件包

    -v :顯示安裝過程,-vv顯示更詳細的安裝過程

    -h :以#顯示安裝進度。一個#號表示2%的進度;

    -ivh :通常這幾個選項組合使用

    –nodeps :安裝時忽略依賴關係

    –test :測試安裝

    –replacepkgs :重新安裝

 9、卸載軟件包: rpm -e

 10、查詢軟件包: rpm -q

      -qa    :查詢所有已安裝的軟件包

       rpm -qa |grep 'pattern'

       -qi    :查詢軟件包的摘要信息

       -ql    :查詢軟件包生成的文件清單:

       -qf    :查詢某文件由那個軟件包安裝生成:

       -qc    :查詢包安裝生成的配置文件

       -qd    :查詢包安裝生成的幫助文件

       -q –scripts    :查詢軟件包相關的腳本

           preinstall    :安裝前腳本

           postinstall   :安裝後腳本

           preuninstall   :卸載前腳本

           postuninstall  :卸載後腳本

11、升級    

     -U:升級+安裝

       -F:升級

       -Uvh

       -Fvh

     –force     強制安裝

       –nodeps    不檢查依賴關係

    注:內核不應該升級,應該儘可能安裝,允許多版本並存

12、rpm數據庫

   rpm database:/var/lib/rpm

  重建rpm數據庫

    rpm –initdb    :新建,不覆蓋原有的數據庫

     rpm –rebuilddb    :覆蓋,覆蓋原有數據庫(常用)

五、YUM軟件包管理

 1、自行解決依賴關係(比所有方法都方便,yum是Linux最佳實踐)

 2、repository:倉庫,yum源

   repodata/    :所在的父目錄就是yum倉庫,如果當前目錄有repodata就說明這是一個yum倉庫

           RHEL6:的光盤鏡像就是一個yum源

           例如:把RHEL6的光盤掛載到/media/cdrom,那yum源配置文件裏"baseurl=file:///media/cdrom"

 3、客戶端:

       /etc/yum.conf    //yum主配置文件

       /etc/yum.repos.d/*.repo    //yum配置文件

       全局配置//對所有的yum倉庫都生效

# yum主配置文件詳解
#/etc/yum.conf
#[main]    //定義yum源名稱
#cachedir=/var/cache/yum    //定義yum的緩存目錄
#keepcache=0    //保存緩存
#debuglevel=2    //調試級別
#logfile=/var/log/yum.log    //日誌文件所在目錄
#distroverpkg=redhat-release    //驗證rpm發行版所使用的密鑰文件
#tolerant=1    //忽略已安裝的軟件
#exactarch=1    //必須做平臺的精確匹配
#obsoletes=1    //是否檢查廢棄的包
#gpgcheck=1    //是否檢查rpm包的簽名,驗證rpm包來源的合法性
#plugins=1    //是否啓用插件
# Note: yum-RHN-plugin doesn't honor this.
#metadata_expire=1h    //緩存文件在本地緩存多長時間
#配置文件 /etc/yum.repos.d/*.repo詳解  
#[repo]
#name=Primary Yum repository
#baseurl=http://mirror.sohu.com/fedora-epel/6/i386/    //yum源網址
#enabled={0|1}       //{不開啓|開啓}
#gpgcheck={0|1}      //{不檢查|檢查簽名}
#gpgkey=file:///etc/pki/RPM-GPG-KEY-redhat-base    //指定驗證用的密鑰文件

 4、常用的yum命令

//查詢、清除建立緩存
#yum list {all|installed|available}    :列出軟件包 {所有|已安裝|可安裝}
#yum repolist {all|enabled|disabled}   :列出yum源  {所有|開啓的|未開啓的}
#yum clean all                         :清除yum緩存
#yum makecache                         :生成yun緩存
//安裝
#yum install package_name              :安裝軟件包,添加 -y可以自動回答yes
#yum reinstall package_name …         :重新安裝軟件包
#yum groupinstall "package-group_name" :安裝一個包組 
//升級   
#yum update package_name               :升級軟件包
#yum check-update                      :查詢可升級的包
#yum update-to                         :升級到指定的版本
#yum groupupdate "group_name"          :升級包組
//卸載
#yum remove package_name …            :卸載一個軟件包
#yum groupremove "group_name"          :卸載一個包組

總結了一下Linux下軟件包安裝方式,歡迎提問留言。

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