使用YUM安裝

   在瞭解YUM之前我們先來簡單介紹下RPM,什麼是RPMRedhat Package Manager紅帽包管理者;就像在windows中安裝.exe一樣,不過在安裝RPM的時候會有很多的依賴關係,比如我們需要安裝MYSQL軟件包就需要安裝其他一系列的其他軟件例如:   
[root@localhost Server]# rpm -ivh MySQL-python-1.2.1-1.i386.rpm
warning: MySQL-python-1.2.1-1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
        libmysqlclient_r.so.15 is needed by MySQL-python-1.2.1-1.i386
        libmysqlclient_r.so.15(libmysqlclient_15) is needed by MySQL-python-1.2.1-1.i386
        mx is needed by MySQL-python-1.2.1-1.i386
        mysql is needed by MySQL-python-1.2.1-1.i386
 
        我們需要安裝前面的幾個具有依賴關係的數據包,而這些數據包需要手動的一個一個安裝,非常的麻煩,而YUM能夠解決RPM的依賴關係。
      YumYellow dog Updater, Modified)翻譯成中文的意思就是黃狗軟件升級工具。RHEL5.1以後的版本才默認安裝的,之前的版本需要安裝YUM軟件包才能使用。
    YUM不但解決了RPM軟件包依賴關係,而且還方便更新,刪除RPM包,同時也便於管理大量系統的更新問題。
    由於本人環境有限,只有個RHEL5的虛擬機,之前版本的虛擬機被卸載了,而卸載YUM又需要卸載很多相關的依賴包,所以就沒卸載
[root@localhost Server]# rpm -e yum
error: Failed dependencies:
        yum >= 3.2.18 is needed by (installed) yum-security-1.1.16-13.el5.noarch
        yum >= 3.2.19-15 is needed by (installed) yum-rhn-plugin-0.5.3-30.el5.noarch
        yum >= 3.2.0 is needed by (installed) yum-updatesd-0.9-2.el5.noarch
        yum >= 3.2.5-2 is needed by (installed) pirut-1.3.28-13.el5.noarch
 
沒有安裝yum的可以安裝一下,我就直接用RHEL5的默認安裝的了。
   按照Linux國際化的標準,同所有的服務一樣都有/etc/yum.conf這樣一個配置文件。我們看下:
[root@localhost Server]# cat /etc/yum.conf |grep -v ^#
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1h
[mail]                                     聲明以下是爲YUM所作的選項
cachedir                                是緩存存放的路徑
keepcache                            是指當安裝完成後時候把該包的信息緩存下來
debuglevel                           是錯誤級別
logfile                                    是yum軟件日誌的存放路徑
distroverpkg                         根據什麼確定包的版本
tolerant                                  是否提示包安裝信息錯誤
exactarch                               根據CUP的架構來確定是否安裝包
obsoletes                              yum升級相關選項
gpgcheck                              時候檢查包的簽名
plugins                                  是否添加插件功能
metadata_expire                    過期時間
以上的信息是主配置文件中的,我們基本保持不變,我們還是看看下面的例子吧
[root@localhost Server]# cat /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///mnt/Server/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[  ]                                         裏面的源的名字
name                                     對庫描述
baseurl                                 下載源的URL路徑
enabled                                能否使用這個數據庫
gpgcheck                             同主配置文件一樣,檢查包的簽名
gpgkey                                 簽名的URL路徑
剛剛中間提到了一個源的詞;究竟什麼是源?這個源就是下載源,把需要的RPM包做一個依賴關係的處理,createrepo創建源的命令不過需要使用RPM安裝一下createrepo包才行,企5的DVD光盤中默認就存在這個源。
[root@localhost Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:createrepo             ########################################### [100%]
所有的配置就告一段落,下面就介紹下常用命令
yum install 包名→→→→→→→→安裝包
yum update 包名→→→→→→→→升級包
yum remove 包名→→→→→→→→刪除包
yum list 包名→→→→→→→→→→查詢包的信息
yum clean all→→→→→→→→→→清空緩存信息
*******************************************************************
實例安裝GCC
[root@localhost /]# umount /dev/cdrom
[root@localhost /]# mount /dev/cdrom /mnt/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost /]# vim /etc/yum.repos.d/rhel-debuginfo.repo 
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///mnt/Server/
enabled=1
gpgcheck=0
:wq
[root@localhost /]# yum install gcc*
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package gcc-java.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libgcj-devel = 4.1.2-44.el5 for package: gcc-java
---> Package gcc-gfortran.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libgfortran = 4.1.2-44.el5 for package: gcc-gfortran
--> Processing Dependency: libgfortran.so.1 for package: gcc-gfortran
---> Package gcc43-gfortran.i386 0:4.3.2-7.el5 set to be updated
--> Processing Dependency: libgfortran43 = 4.3.2-7.el5 for package: gcc43-gfortran
--> Processing Dependency: libgfortran.so.3 for package: gcc43-gfortran
---> Package gcc-c++.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libstdc++-devel = 4.1.2-44.el5 for package: gcc-c++
---> Package gcc.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libgomp >= 4.1.2-44.el5 for package: gcc
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc
---> Package gcc43.i386 0:4.3.2-7.el5 set to be updated
---> Package gcc-gnat.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libgnat = 4.1.2-44.el5 for package: gcc-gnat
--> Processing Dependency: libgnat-4.1.so for package: gcc-gnat
--> Processing Dependency: libgnarl-4.1.so for package: gcc-gnat
---> Package gcc-objc.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libobjc = 4.1.2-44.el5 for package: gcc-objc
--> Processing Dependency: libobjc.so.1 for package: gcc-objc
---> Package gcc43-c++.i386 0:4.3.2-7.el5 set to be updated
--> Processing Dependency: libstdc++43-devel = 4.3.2-7.el5 for package: gcc43-c++
---> Package gcc-objc++.i386 0:4.1.2-44.el5 set to be updated
--> Running transaction check
---> Package libgomp.i386 0:4.3.2-7.el5 set to be updated
---> Package glibc-devel.i386 0:2.5-34 set to be updated
--> Processing Dependency: glibc-headers = 2.5-34 for package: glibc-devel
--> Processing Dependency: glibc-headers for package: glibc-devel
---> Package libgfortran43.i386 0:4.3.2-7.el5 set to be updated
---> Package libgnat.i386 0:4.1.2-44.el5 set to be updated
---> Package libobjc.i386 0:4.1.2-44.el5 set to be updated
---> Package libstdc++-devel.i386 0:4.1.2-44.el5 set to be updated
---> Package libgcj-devel.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: zlib-devel for package: libgcj-devel
--> Processing Dependency: /usr/lib/libz.so for package: libgcj-devel
---> Package libstdc++43-devel.i386 0:4.3.2-7.el5 set to be updated
---> Package libgfortran.i386 0:4.1.2-44.el5 set to be updated
--> Running transaction check
---> Package zlib-devel.i386 0:1.2.3-3 set to be updated
---> Package glibc-headers.i386 0:2.5-34 set to be updated
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers
--> Processing Dependency: kernel-headers for package: glibc-headers
--> Running transaction check
---> Package kernel-headers.i386 0:2.6.18-128.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================
 Package               Arch     Version            Repository          Size
============================================================================
Installing:
 gcc                   i386     4.1.2-44.el5       rhel-debuginfo     5.2 M
 gcc-c++               i386     4.1.2-44.el5       rhel-debuginfo     3.4 M
 gcc-gfortran          i386     4.1.2-44.el5       rhel-debuginfo     3.1 M
 gcc-gnat              i386     4.1.2-44.el5       rhel-debuginfo      11 M
 gcc-java              i386     4.1.2-44.el5       rhel-debuginfo     2.9 M
 gcc-objc              i386     4.1.2-44.el5       rhel-debuginfo     2.6 M
 gcc-objc++            i386     4.1.2-44.el5       rhel-debuginfo     2.8 M
 gcc43                 i386     4.3.2-7.el5        rhel-debuginfo     8.1 M
 gcc43-c++             i386     4.3.2-7.el5        rhel-debuginfo     3.8 M
 gcc43-gfortran        i386     4.3.2-7.el5        rhel-debuginfo     3.7 M
Installing for dependencies:
 glibc-devel           i386     2.5-34             rhel-debuginfo     2.0 M
 glibc-headers         i386     2.5-34             rhel-debuginfo     598 k
 kernel-headers        i386     2.6.18-128.el5     rhel-debuginfo     912 k
 libgcj-devel          i386     4.1.2-44.el5       rhel-debuginfo     1.4 M
 libgfortran           i386     4.1.2-44.el5       rhel-debuginfo     231 k
 libgfortran43         i386     4.3.2-7.el5        rhel-debuginfo     240 k
 libgnat               i386     4.1.2-44.el5       rhel-debuginfo     989 k
 libgomp               i386     4.3.2-7.el5        rhel-debuginfo      67 k
 libobjc               i386     4.1.2-44.el5       rhel-debuginfo     102 k
 libstdc++-devel       i386     4.1.2-44.el5       rhel-debuginfo     2.9 M
 libstdc++43-devel     i386     4.3.2-7.el5        rhel-debuginfo     3.9 M
 zlib-devel            i386     1.2.3-3            rhel-debuginfo     100 k
Transaction Summary
============================================================================
Install     22 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 60 M
Is this ok [y/N]:y
Downloading Packages:
------------------------------------------------------------------------------
Total                                         1.3 GB/s |  60 MB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libgomp                                         [ 1/22]
  Installing     : libgnat                                         [ 2/22]
  Installing     : libgfortran                                     [ 3/22]
  Installing     : libgfortran43                                   [ 4/22]
  Installing     : libobjc                                         [ 5/22]
  Installing     : libstdc++43-devel                               [ 6/22]
  Installing     : kernel-headers                                  [ 7/22]
  Installing     : glibc-headers                                   [ 8/22]
  Installing     : glibc-devel                                     [ 9/22]
  Installing     : libstdc++-devel                                 [10/22]
  Installing     : zlib-devel                                      [11/22]
  Installing     : gcc                                             [12/22]
  Installing     : gcc43                                           [13/22]
  Installing     : libgcj-devel                                    [14/22]
  Installing     : gcc-objc                                        [15/22]
  Installing     : gcc-c++                                         [16/22]
  Installing     : gcc-gfortran                                    [17/22]
  Installing     : gcc-java                                        [18/22]
  Installing     : gcc-objc++                                      [19/22]
  Installing     : gcc-gnat                                        [20/22]
  Installing     : gcc43-c++                                       [21/22]
  Installing     : gcc43-gfortran                                  [22/22]
Installed: gcc.i386 0:4.1.2-44.el5 gcc-c++.i386 0:4.1.2-44.el5 gcc-gfortran.i386 0:4.1.2-44.el5 gcc-gnat.i386 0:4.1.2-44.el5 gcc-java.i386 0:4.1.2-44.el5 gcc-objc.i386 0:4.1.2-44.el5 gcc-objc++.i386 0:4.1.2-44.el5 gcc43.i386 0:4.3.2-7.el5 gcc43-c++.i386 0:4.3.2-7.el5 gcc43-gfortran.i386 0:4.3.2-7.el5
Dependency Installed: glibc-devel.i386 0:2.5-34 glibc-headers.i386 0:2.5-34 kernel-headers.i386 0:2.6.18-128.el5 libgcj-devel.i386 0:4.1.2-44.el5 libgfortran.i386 0:4.1.2-44.el5 libgfortran43.i386 0:4.3.2-7.el5 libgnat.i386 0:4.1.2-44.el5 libgomp.i386 0:4.3.2-7.el5 libobjc.i386 0:4.1.2-44.el5 libstdc++-devel.i386 0:4.1.2-44.el5 libstdc++43-devel.i386 0:4.3.2-7.el5 zlib-devel.i386 0:1.2.3-3
Complete!

------------------------------------------------------------------------------------------
憑藉自己二把刀的水平寫出來的,如果您發現那裏有錯誤請通知我
                                                                             謝謝      O(∩_∩)O~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章