感谢支持
我们一直在努力

CentOS 5.5 下的 YUM、软件包下载源及 AMP 升级

    一、了解 YUM


    YUM(Yellow dog Update Manager)是 RedHat 新一代的软件包管理器,目前的 RHEL、Fedora Core、CentOS 等红帽子出产的 Linux 系列发行套件都采用了这种包管理方法。软件包的安装、更新和补丁的下发都可以用 YUM 来管理。


    YUM 管理软件包的依据是 repo 下载源,这是一个采用 http 协议的 Web 站点,在 /etc/yum.repos.d/ 文件夹下的 repo 文本文件中定义。repo 文件可以理解为下载源的配置文件,用于为 YUM 导航。


    二、了解 repo 文件


    以下是 CentOS5.5 下的 /etc/yum.repos.d/CentOS-Base.repo 文本文件的内容:


    # CentOS-Base.repo
    [base]
    name=CentOS-$releasever – Base
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5


    #released updates
    [updates]
    name=CentOS-$releasever – Updates
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
    #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5


    #packages used/produced in the build but not released
    [addons]
    name=CentOS-$releasever – Addons
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
    #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5


    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever – Extras
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
    #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5


    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever – Plus
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
    #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5


    #contrib – packages by Centos Users
    [contrib]
    name=CentOS-$releasever – Contrib
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
    #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5


    这个文件有[base]、[updates]、[addons]、[extras]、[centosplus]和[contrib]6个节的配置。


    每个部分定义了节的名称、下载源镜像站点的地址,如果 mirrorlist 指向的站点无法下载,可以去掉 baseurl 前的注释试一下。gpgkey 指向了一个公钥文件,公钥用于进行信息加密、防止信息传输中的欺骗和抵赖。gpgcheck=1表示进行密钥检查,0 表示关闭它。enabled=0 表示暂时关闭本节的下载源定义,不定义的时默认认为 enabled=1。


    在用 yum 命令安装、更新、检测软件包时,yum 程序会依次检查 enabled=1 的节中定义的下载源,进行软件包的管理。


    如果 /etc/yum.repos.d/ 路径下有别的 repo 文件,YUM 会自动加载它,与 CentOS-Base.repo 文件同样对待。


    比如,utterramblings.repo 文件:


    [utterramblings]
    name=Jason’s Utter Ramblings Repo
    baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitk


    这个文件定义了一个 AMP 安装下载源,会被 yum 程序自动加载。定义了新的下载源后,如果新的下载源里包含有目前一些软件包的更新,那么 CentOS 5.5 的“Package Updater”(软件包更新管理器,出现在桌面的右上角)就会适时检测到这些更新,并通知我们。请根据需要,谨慎选择可以更新的软件包。

    三、熟悉 YUM 命令


    1,检查下载源是否有更新:


    # yum check-update


    该命令依次连接和测试所有 repo 中定义的下载源,例如:


    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * addons: mirrors.163.com
     * base: mirrors.163.com
     * extras: mirrors.163.com
     * updates: mirrors.163.com
    addons     |  951 B     00:00
    base       | 2.1 kB     00:00
    extras     | 2.1 kB     00:00
    updates    | 1.9 kB     00:00
    utterramblings        |  951 B     00:00


    apr.i386   1.3.12-1.jason.1      utterramblings
    apr-util.i386         1.3.9-1.jason.2       utterramblings
    httpd.i386 2.2.15-jason.1        utterramblings
    httpd-manual.i386     2.2.15-jason.1        utterramblings
    mod_perl.i386         2.0.4-7.jason.2       utterramblings
    mod_Python.i386       3.3.1-8.jason.2       utterramblings
    mod_ssl.i386          1:2.2.15-jason.1      utterramblings
    mysql.i386 5.0.91-jason.2        utterramblings
    mysql-devel.i386      5.0.91-jason.2        utterramblings
    mysql-server.i386     5.0.91-jason.2        utterramblings
    pcre.i386  8.02-1.jason.1        utterramblings
    subversion.i386       1.4.6-jason.1         utterramblings


    我们看到的,就是可以安装或更新软件包。可以看到 Apache、mysql 都可以安装或更新。


    2,检查 PHP、MySQL、Httpd 是否有更新


    例-1:yum list php mysql httpd


    会分别列出 PHP、MySQL、Apache 的 Installed Packages(已安装)和 Available Packages(可用)的软件包。


    例-2:yum list httpd 命令结果如下:


    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * addons: mirrors.163.com
     * base: mirrors.163.com
     * extras: mirrors.163.com
     * updates: mirrors.163.com
    Installed Packages
    httpd.i386   2.2.3-43.el5.CentOS    installed
    Available Packages
    httpd.i386   2.2.15-jason.1   utterramblings


    可以看到 Apache 可以由现在的 2.2.3 版本升级到 2.2.15。


    例-3:yum list php* 命令可以查看所有 PHP 已安装的和可以安装/升级的模块。
    (命令运行结果略)


    3,几个有用的 yum 命令选项


    –enablerepo=onerepo
    表示需要检查[onerepo]节定义的 YUM 下载源。当 [onerepo] 节中的 enabled=0 时,这个命令很有。
    比如:
    yum –enablerepo=utterramblings list php*


    –disablerepo=onerepo
    表示禁止检查[onerepo]节定义的 YUM 下载源。
    比如,禁止所有下载源,除过 c5-media:
    yum –disablerepo=\* –enablerepo=c5-media list php*


    –exclude=php*5.3*
    表示不包括与“php*5.3*”字符串匹配的软件包,比如:
    yum –exclude=php*5.3* list php

    四、更新 PHP、Apache、MySQL


    命令 yum update 可以一次更新所有的软件包。当然我们也可以根据需要选择更新某些软件包。


    4.1 更新 PHP:


    # yum update php -y


    -y 参数保证在命令运行时需要yes/no确认时,都自动输入 yes,结果如下:


    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * addons: mirrors.163.com
     * base: mirrors.163.com
     * extras: mirrors.163.com
     * updates: mirrors.163.com
    addons|  951 B     00:00
    base  | 2.1 kB     00:00
    extras| 2.1 kB     00:00
    updates          | 1.9 kB     00:00
    Setting up Update Process
    Resolving Dependencies
    –> Running transaction check
    –> Processing Dependency: php = 5.1.6-27.el5 for package: php-devel
    —> Package php.i386 0:5.2.13-jason.1 set to be updated
    –> Processing Dependency: php-cli = 5.2.13-jason.1 for package: php
    –> Processing Dependency: php-common = 5.2.13-jason.1 for package: php
    –> Running transaction check
    —> Package php-cli.i386 0:5.2.13-jason.1 set to be updated
    –> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-gd
    –> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-pgsql
    –> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-mysql
    –> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-pdo
    –> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-mbstring
    –> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-ldap
    —> Package php-common.i386 0:5.2.13-jason.1 set to be updated
    —> Package php-devel.i386 0:5.2.13-jason.1 set to be updated
    –> Running transaction check
    —> Package php-gd.i386 0:5.2.13-jason.1 set to be updated
    —> Package php-ldap.i386 0:5.2.13-jason.1 set to be updated
    —> Package php-mbstring.i386 0:5.2.13-jason.1 set to be updated
    —> Package php-mysql.i386 0:5.2.13-jason.1 set to be updated
    —> Package php-pdo.i386 0:5.2.13-jason.1 set to be updated
    —> Package php-pgsql.i386 0:5.2.13-jason.1 set to be updated
    –> Finished Dependency Resolution


    Dependencies Resolved


    ==============================================================
     Package        Arch   Version          Repository      Size
    ==============================================================
    Updating:
     php i386   5.2.13-jason.1   utterramblings3.6 M
    Updating for dependencies:
     php-cli        i386   5.2.13-jason.1   utterramblings  2.6 M
     php-common     i386   5.2.13-jason.1   utterramblings  510 k
     php-devel      i386   5.2.13-jason.1   utterramblings  556 k
     php-gd         i386   5.2.13-jason.1   utterramblings  331 k
     php-ldap       i386   5.2.13-jason.1   utterramblings   59 k
     php-mbstring   i386   5.2.13-jason.1   utterramblings  1.3 M
     php-mysql      i386   5.2.13-jason.1   utterramblings  266 k
     php-pdo        i386   5.2.13-jason.1   utterramblings  164 k
     php-pgsql      i386   5.2.13-jason.1   utterramblings  159 k


    Transaction Summary
    =============================================================
    Install       0 Package(s)
    Upgrade      10 Package(s)


    Total download size: 9.5 M
    Downloading Packages:
    (1/10): php-ldap-5.2.13-jason.1.i386.rpm      |  59 kB     00:00
    (2/10): php-pgsql-5.2.13-jason.1.i386.rpm     | 159 kB     00:04
    (3/10): php-pdo-5.2.13-jason.1.i386.rpm       | 164 kB     00:02
    (4/10): php-mysql-5.2.13-jason.1.i386.rpm     | 266 kB     00:02
    (5/10): php-gd-5.2.13-jason.1.i386.rpm        | 331 kB     00:02
    (6/10): php-common-5.2.13-jason.1.i386.rpm    | 510 kB     00:04
    (7/10): php-devel-5.2.13-jason.1.i386.rpm     | 556 kB     00:04
    (8/10): php-mbstring-5.2.13-jason.1.i386.rpm  | 1.3 MB     00:07
    (9/10): php-cli-5.2.13-jason.1.i386.rpm       | 2.6 MB     00:14
    (10/10): php-5.2.13-jason.1.i386.rpm          | 3.6 MB     00:26
    —————————————————————-
    Total      133 kB/s | 9.5 MB     01:13
    warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 0d4306ef
    utterramblings/gpgkey          | 1.3 kB     00:00
    Importing GPG key 0x0D4306EF “Jason Litka (http://www.jasonlitka.com) <jasonlitka@verizon.net>” from http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating       : php-common         1/20
    warning: /etc/php.ini created as /etc/php.ini.rpmnew
      Updating       : php-pdo 2/20
      Updating       : php-cli 3/20
      Updating       : php     4/20
      Updating       : php-ldap5/20
      Updating       : php-pgsql          6/20
      Updating       : php-gd  7/20
      Updating       : php-mysql          8/20
      Updating       : php-mbstring       9/20
      Updating       : php-devel         10/20
      Cleanup        : php    11/20
      Cleanup        : php-ldap          12/20
      Cleanup        : php-pgsql         13/20
      Cleanup        : php-gd 14/20
      Cleanup        : php-common        15/20
      Cleanup        : php-pdo16/20
      Cleanup        : php-mysql         17/20
      Cleanup        : php-mbstring      18/20
      Cleanup        : php-cli19/20
      Cleanup        : php-devel         20/20


    Updated:
      php.i386 0:5.2.13-jason.1


    Dependency Updated:
      php-cli.i386 0:5.2.13-jason.1       php-common.i386 0:5.2.13-jason.1
      php-devel.i386 0:5.2.13-jason.1     php-gd.i386 0:5.2.13-jason.1
      php-ldap.i386 0:5.2.13-jason.1      php-mbstring.i386 0:5.2.13-jason.1
      php-mysql.i386 0:5.2.13-jason.1     php-pdo.i386 0:5.2.13-jason.1
      php-pgsql.i386 0:5.2.13-jason.1


    Complete!


    可以看到,一些被依赖的包也都被自动安装上了。看来 YUM 程序确实是很完善的,


    更新其它一些 PHP 的扩展模块,例如 php-gd、php-mbstring、php-mcrypt 等,可以一次运行:
    # yum install php-gd php-mbstring php-mcrypt


    也可以分别运行:
    # yum install php-gd
    # yum install php-mbstring
    # yum install php-mcrypt


    这样,就会下载 php-gd.so、php-mbstring.so、php-mcrypt.so 以及依赖的 *.so 模块文件到文件夹 /usr/lib/php/modules/ 下,并在 /etc/php.d/ 文件夹下生成了对应的配置文件 gd.ini、mbstring.ini、mcrypt.ini。


    gd.ini 文件内容为:
    ; Enable gd extension module
    extension=gd.so


    mbstring.ini、mcrypt.ini 文件内容与 gd.ini 类似。注意这和 Windows 下 php.ini 的配置是不同的。


    4.2 更新 Apache:
    # yum update httpd -y
    (运行结果略)


    4.3 更新 MySQL:
    # yum update mysql -y
    (运行结果略)

赞(0) 打赏
转载请注明出处:服务器评测 » CentOS 5.5 下的 YUM、软件包下载源及 AMP 升级
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏