善用RPM和YUM等工具來安裝軟件包

Linux下的軟件安裝與管理

  源碼安裝一般有以下幾個步驟組成:
  下載解壓源碼 -->分析安裝平臺環境(configure)-->編譯安裝軟件(make、make install)

  Linux常用的軟件包類型或格式有:可執行的RPM與DEB、源代碼形式的gzip與bzip2壓縮包。


——————————————————————————————————————————————————————————————————————
RPM(RedHat Package Manager),紅帽軟件包工具


  1.安裝與卸載RPM包
    對於rpm軟件包的安裝,可以使用<rpm -i 軟件包名稱>來進行安裝,但是該命令默認選項爲靜默式安裝,如果想要了解安裝過程中的消息,使用-v來顯示詳細的信息,-h來顯示安裝進度(安裝進度以#表示);

    對於rpm軟件包的卸載,可以使用<rpm -e 軟件包名稱>來進行卸載;

    對於rpm軟件包的升級,可以使用<rpm -U 軟件包名稱>,rpm會刪除舊版本的軟件(僅保留配置文件),再安裝新的軟件版本。

   2.軟件包的信息查詢
     <rpm -q>:
       -q:查看軟件包是否已經安裝
       -qa:查詢系統中已經安裝的所有軟件
       -qi:查詢指定安裝包的詳細信息
       -qc:查詢指定軟件的配置文件
       -ql:查詢指定軟件的安裝路徑與文件列表
       -qf:查詢指定文件爲哪個軟件所安裝
       選項可以組合,如:rpm -qpi xxx,使用rpm-q的格式進行查詢僅針對已經安裝的軟件,如果你希望知道某個尚未安裝的軟件包的詳細信息,則可以使用rpm-qp的方式查詢。

   3.安全認證
     RPM提供的驗證功能可以隨時追蹤軟件的狀態,當軟件被人篡改時,rpm -v會提示該軟件哪些狀態被修改,未被篡改的不會顯示。

     rpm -V命令可能顯示出的提示字符及含義:
       5:MD5值已經改變
       S:文件大小已經改變
       L:鏈接文件源已經改變
       T;文件最後修改時間已經改變
       D:設備改變
       U:用戶發生變化
       G:組發生變化
       M:包括權限與類型在內的模式已經改變
       ?:不可讀的文件


——————————————————————————————————————————————————————————————————————
YUM(Yellowdog Updater Modified):


  Yellowdog是一款發行版linux,使用rpm作爲默認的程序包管理工具,很好的解決了RPM所面臨的軟件包依賴關係。使用YUM安裝軟件時至少需要一個YUM源,YUM源就是一個存放有很多RPM軟件的文件夾,用戶可以HTTP、FTP或本地文件夾的方式詢問YUM源。
  yum的配置:
    yum的配置文件由主配置文件/etc/yum.conf、資源庫配置目錄/etc/yum.repo.d。centos6.7的默認YUM源定義文件就存放在 /etc/yum.repos.d/目錄下,我們可以自行定義任意可以使用的 YUM源,但文件名的擴展名必須是.repo,CentOS-Base.repo
  vim打開:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


/etc/yum.config的相關內容
[main]
cachedir=/var/cache/yum/$basearch/$releasever#cachedir:yum緩存的目錄,yum在此存儲下載的rpm包和數據庫,一般是/var/cache/yum。
keepcache=0
debuglevel=2#debuglevel:除錯級別,0──10,默認是2 貌似只記錄安裝和刪除記錄
logfile=/var/log/yum.log
exactarch=1#exactarch,有兩個選項1和0,代表是否只升級和你安裝軟件包cpu體系一致的包,如果設爲1,則如你安裝了一個i386的rpm,則yum不會用1686的包來升級
obsoletes=1
gpgcheck=1#gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,默認是檢查的。
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

幾個變量
$releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。
$arch,cpu體系,如i686,athlon等
$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha

.repo文件該如何定義:
[repositoryid]
name=Full name of repository
baseurl=schema1://hostname/PATH/TO/REPODATA
    schema2://hostname/PATH/TO/REPODATA
    schema3://hostname/PATH/TO/REPODATA
    schema4://hostname/PATH/TO/REPODATA
 schema:
  http[s]、ftp、nfs:網絡服務器指向
  file:本地服務器指向
#mirrorlist=mirror_url
enabled={0|1},0表示禁用此倉庫指向,1表示啓用;如果沒有enabled語句,默認爲啓用狀態;
gpgcheck={0|1},0表示不進行程序包認證,1表示認證;如果爲1,需要指定認證所需要的公鑰文件,需要使用gpgkey語句;
gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY_FILE
 例子:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever

failovermethod={roundrobin|priority}
 故障倒換方法:
  roundrobin:隨機查找,默認的方法;
  priority:按照順序依次選擇
enablegroups={1|0}
cost=num,默認所有倉庫的開銷值都是1000;

一般的repo指向內容:
[repoid]
name=
baseurl=
#mirrorlist=
enbaled=1
gpgcheck=0
#gpgkey=

YUM的相關命令:
  yum [選項] [指令] [軟件包...]
  選項:
    -y:執行非交互式安裝,安裝過程中所有的提示回答yes

    -quiet:安靜模式,在某一次yum執行過程中,沒有任何信息輸出到stdout;

 -enablerepo=repoidglob
 -disablerepo=repoidglob
 在某一次yum執行過程中明確的規定啓用或禁用某個repository指向;在使用了這樣的選項之後,倉庫指向文件中的enabled語句的作用將失效;

 -noplugins:
 在某一次yum執行過程中,明確指出不使用任何插件;

 --nogpgcheck:
 在某一次yum執行過程中,明確指出不驗證程序包完整性,在倉庫指向文件中的gpgcheck=1語句會失效;

  指令:
        * install package1 [package2] [...]
         安裝程序包
         注意:
          1.如果只是給出程序包名稱,yum搜索所有倉庫,並找到最新版本緩存安裝;
          2.如果給出程序包的名稱及版本,則查找安裝指定版本的程序包;
          3.如果給出的程序包是完整的程序包名,則只是查找某一個程序包;
          4.程序包名稱可以使用globbing,(* ? [] [^])

        * update [package1] [package2] [...]
        * update-to [package1] [package2] [...]
        * check-update
        * upgrade [package1] [package2] [...]
        * upgrade-to [package1] [package2] [...]
        * downgrade package1 [package2] [...]
         程序包升級或降級:
          程序包不同版本之間的更迭;

        * remove | erase package1 [package2] [...]
         卸載程序包: 

        * list [...]
          yum list LIST OPTIONS
          LIST OPTIONS:
           all: 顯示所有的程序包,包括已經安裝的和尚未安裝但可用的;
            注意:
             anaconda:CentOS系統的安裝器,在安裝操作系統的時候一併安裝的程序包;
           installed:顯示所有已經安裝的程序包;
           available:顯示所有尚未安裝但可以安裝的程序包;
           updates:顯示所有可以升級更新的程序包;

        * info [...]
         yum info LIST OPTIONS
         LIST OPTIONS:
           all: 顯示所有的程序包,包括已經安裝的和尚未安裝但可用的;
            注意:
             anaconda:CentOS系統的安裝器,在安裝操作系統的時候一併安裝的程序包;
           installed:顯示所有已經安裝的程序包;
           available:顯示所有尚未安裝但可以安裝的程序包;
           updates:顯示所有可以升級更新的程序包;

           name[globbing]

        * provides | whatprovides feature1 [feature2] [...]
         查看指定的特性是由哪個程序包提供的;

        * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
         清理本地緩存信息

        * makecache
         構建緩存

        * groupinstall group1 [group2] [...]
        * groupupdate group1 [group2] [...]
        * grouplist [hidden] [groupwildcard] [...]
        * groupremove group1 [group2] [...]
        * groupinfo group1 [...]
         程序包組的管理命令:


        * search string1 [string2] [...]
         根據關鍵字進行匹配,默認情況下,搜索程序包名稱及彙總信息;
         模糊搜索

        * shell [filename]
         給yum提供一個交互式命令的操作界面

        * localinstall rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use install)
        * localupdate rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use update)
          實現本地程序包安裝,即:不依賴於軟件倉庫,直接對rpm格式包文件進行操作;
          這兩個命令已經被停用,使用install和update取代;

        * reinstall package1 [package2] [...]
         重新安裝

        * deplist package1 [package2] [...]
         顯示每個程序包所有的依賴關係;

        * repolist [all|enabled|disabled]
         列表顯示yum倉庫的元數據信息
         在沒有給出後面的參數的時候,默認爲enabled;

        * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

        * history [info|list|packages-list|packages-info|summary|addon-
       info|redo|undo|rollback|new|sync|stats]
         查看yum事務的歷史;
          安裝、升級、卸載等操作的時候,yum會開啓事務;

        * load-transaction [txfile]
         重新啓動已經停止的事務;

        * check

        * help [command]


   

幾個不錯的官方的文件服務器或者鏡像站點:
  http://mirrors.aliyun.com
  http://mirrors.sohu.com
  http://mirrors.163.com
  https://mirrors.tuna.tsinghua.edu.cn
  http://mirrors.hust.edu.cn


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