Linux下軟件包安裝詳解

1、概述前端

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

2、軟件包的組成數據庫

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

 一、二進制文件ide

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

   二、庫文件post

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

   三、配置文件ui

        分佈目錄: /etcthis

   四、幫助文件(一般這裏會教你如何進行安裝)

        手冊:README   INSTALL    /usr/share/doc

3、程序安裝方式

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

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

   三、軟件包管理器前端工具:能夠自動解決軟件包的依賴關係。

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

    這裏着重說一下源碼包安裝,因爲一些特殊的個性化設置,咱們須要源碼包安裝一個服務,我以爲它的基本思路就是遇到問題解決問題,當咱們源碼包安裝一個服務時,最多見的問題就是缺乏基礎程序,也就是庫文件(devel包),這時咱們經過yum逐條擊破安裝,直到服務安裝成功便可(不在報錯)

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

  4、RPM軟件包管理工具 

    一、基本功能:

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

    二、rpm軟件包包含:

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

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

    四、源程序命名方式:

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

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

 五、rpm包的命名方式:

       name-version-release.arch.rpm

           發行號:用於標識rpm包的自己發行號,可還包含所適用的操縱作系統

           例如:el6:RHEL6

           arch:主機平臺

           例如:i38六、x86_6四、amd6四、ppc、noarch不區分平臺

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

 六、rpm分包

   主包:核心包

   分包:支包

     例如:bind

        bind-devel

 七、經常使用軟件包下載地址:

    http://mirrors,sohu.com

    http://rpmfind.net

    http://rpm.pbone.net

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

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

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

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

    -ivh :一般這幾個選項組合使用

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

    –test :測試安裝

    –replacepkgs :從新安裝

 九、卸載軟件包: rpm -e

 十、查詢軟件包: rpm -q

      -qa    :查詢全部已安裝的軟件包

       rpm -qa |grep 'pattern'

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

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

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

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

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

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

           preinstall    :安裝前腳本

           postinstall   :安裝後腳本

           preuninstall   :卸載前腳本

           postuninstall  :卸載後腳本

十一、升級    

     -U:升級+安裝

       -F:升級

       -Uvh

       -Fvh

     –force     強制安裝

       –nodeps    不檢查依賴關係

    注:內核不該該升級,應該儘量安裝,容許多版本並存

十二、rpm數據庫

   rpm database:/var/lib/rpm

  重建rpm數據庫

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

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

5、YUM軟件包管理

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

 二、repository:倉庫,yum源

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

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

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

 三、客戶端:

       /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    //指定驗證用的密鑰文件

 四、經常使用的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下軟件包安裝方式,歡迎提問留言。

相關文章
相關標籤/搜索