Yum使用

yum(Yellow dog Updater,
Modified)是redhat系列(包括CentOS、SUSE、Fedora等发行版本)操作系统特有的软件管理工具,类似FreeBSD的
port和Debian的apt-get,当然yum有着更强大的功能,无论是图形还是文字界面上的。

目录

Yum使用

目的

  1. 如何使用yum软件管理工具;
  2. 如何将rpm包放置到yum服务器上;
  3. 配置好客户端的yum源;

yum介绍

  • yum(Yellow dog Updater, Modified)是redhat系列(包括CentOS、SUSE、Fedora等发行版本)操作系统特有的软件管理工具,类似FreeBSD的port和Debian的apt-get,当然yum有着更强大的功能,无论是图形还是文字界面上的。

yum常用命令

  1. yum search
    • yum search主要用于查找yum服务器(remote)上的软件包,一般低版本的yum会给出详细的版本和描述信息,高版本的yum则只给出简单的描述信息;
    • yum search后面接的包名称可以使用shell里面的POSIX正则的通配,比如"*"、"[:alnum:]"等,可以通过管道(|)和shell的各种特点来缩小范围,达到精确的搜索结果;
  2. yum install
    • yum install主要用于安装yum服务器上的软件包;
    • yum install默认安装是带询问提示,如果不想提示,则需要加上"-y"的选项
    • yum install一般和yum search结合使用;
  3. yum list
    • yum list一般是用来查找目前机器上(local)已经安装了哪些软件包;
    • yum list与rpm -qa等效,可以结合管道和shell里面的各种特性达到查询的目的;
  4. yum clean
    • yum clean是主要用来清除一些临时文件和yum下载服务器的一些repo等缓存信息;
    • 当服务器刚刚更新软件包后,yum search并不能马上找到服务器上的更新,需要yum clean清除repo信息的缓存后,才能yum install,具体用法可以查看yum clean的帮助;
    • yum clean可以后面接all清除一切缓存信息;

yum服务器

rpm软件包放置的一点小知识

  1. 目前世界上的服务器的操作系统根据cpu寻址的型号,一般分为32位和64位操作系统;
  2. 通常来说i386、i486、i586、i686都属于32位带宽Intel构架(IA32:32 bits Intel Architecture),可以表示为x86_32,但是一般不这么表示,直接用x86来表示;同理,64位带宽Intel构架一般用x86_64来表示
  3. 一般来说,i386是基于80386的cpu,后续的x86都是以80386为基础扩展而来.i486指的是基于intel 80486cpu的体系结构,i586指的是基于intel奔腾I代的cpu,i686指的是基于奔腾II/III以上的cpu;
  4. 操作系统中:
  [cnangel@yum ~]$uname -a
Linux yum.xxx.com 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux

这三个红色标记代表的含义如下:

  machine hardware name:i686
processor type:i686
hardware platform:i386

通常,标有i686的rpm包能在奔腾二代以上的CPU上执行,支持i686的机器向下兼容i386的包,只是不能发挥更佳的效能。而硬件只支持i386的处理器平台,则不能上i686的rpm包。

rpm软件包命名

  • rpm软件包命名有自己的规范,一般来说是软件名称-版本号-发行号.系统名称.系统平台.rpm,举例说明一下:
  syncengine-1.0.2-10.fc10.x86_64.rpm
syncengine: 软件名称
1.0.2: 版本号
10: 发行号或发行标记,可以使用alpha(A)、debug(D)、beta(B)、release(R)四个版本,某些情况也可以使用test(T)
fc10: 表示对应于Fedor10的发行版的Linux
x86_64: 系统平台的版本,通常有i386等,如果是noarch则表示对硬件没有级别限制
rpm: 后缀名称,如果是以.src.rpm为后缀的,说明包中还同时带有软件的原代码

rpm软件包目录放置

  • 以某机器为例,首先登录到 yum.xxx.com 服务器上;
  • 进入到放置rpm包的目录下,比如 /home/yum/xxx 目录下,这下面是yum.xxx.com的yum源位置;
  • 目录下一般有4AS、5AS等目录,这些目录指 Red Hat Enterprise Linux 4 Advanced ServerRed Hat Enterprise Linux 5 Advanced Server,简称RHEL4或4AS、RHEL5或5AS;
  • 根据所在机器的属性,选择相对应的目录进入,这里选择 4AS 目录;
  • 4AS目录下面一般有几个目录:
|-- SRPMS
|-- RPMS
| |-- i386
| |-- i486
| |-- i586
| |-- i686
| |-- noarch
| `-- x86_64
  • 其它目录,比如 5 目录一样也是类似结构,根据机器的配置信息(可用 uname -a 进行查看),进入相应的目录,这里选择x86_64;
  • 然后将已经编译好的rpm软件包(syncengine-1.0.2-10.rhel4.x86_64.rpm)放置到x86_64目录下即可;

服务器上repo的更新

  • 上面说到在yum服务器上,我们已经将rpm包放置好了,但是这样还不行,因为服务器上repo文件没有更新,这个文件相当于索引文件,如果没有更新,我们在客户端使用yum命令的时候,就不会得到更新的rpm包;
  • 一般来说,到当前放置rpm软件包的目录下执行命令:
  createrepo -p --update -o . .

这里有一个可批量更新样例脚本如下所示:

#!/bin/bash
# $Id: updaterepo.sh 783 2009-02-25 15:01:53Z gaosy $

CR="/usr/bin/createrepo"
RHELMAJ="4 5"
ARCH="i386 SRPMS x86_64"
BRANCH="current stable test"

# for abc.com
BASEDIR="/home/yum/abc"
for r in $RHELMAJ
do
for a in $ARCH
do
for b in $BRANCH
do
cd $BASEDIR/$r/$a/$b
$CR -p --update -o . .
done
done
done

# for xyz
BASEDIR="/home/yum/xxx"
ARCH="i386 SRPMS x86_64 noarch"
for r in $RHELMAJ
do
for a in $ARCH
do
cd $BASEDIR/$r/$a
$CR -p --update -o . .
done
done

YUM="/usr/bin/yum"
$YUM makecache
  • 完成更新后,使用yum makecache制作一下缓存,服务器端的配置就算完成了。

yum客户端

客户端配置

  • yum的设置在 /etc/yum.conf 文件中:
  [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

# Note: yum-RHN-plugin doesn't honor this.
#metadata_expire=1h

# Default.
# installonly_limit = 3

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

其中 gpgcheck 可以设置为 0,表示不检查gpg密钥,但是这样会导致软件的安装源不会受到信任检查,发生安全隐患。

客户端repo配置

  • 在目录 /etc/yum.repos.d 下,比如有一个 xxx.repo 文件,这里面主要存放服务器的repo路径信息,如下所示:
  [xxxbase]
name=Base PKG by ASC
baseurl=http://yum.xxx.com/xxx/$releasever/$basearch
enabled=1
gpgkey=http://yum.xxx.com/xxx/RPM-GPG-KEY-xxx

[xxxnoarch]
name=Noarch PKG by ASC
baseurl=http://yum.xxx.com/xxx/$releasever/noarch
enabled=1
gpgkey=http://yum.xxx.com/xxx/RPM-GPG-KEY-xxx

[xxxsrpms]
name=SRPMS by ASC
baseurl=http://yum.xxx.com/xxx/$releasever/SRPMS
enabled=1
gpgkey=http://yum.xxx.com/xxx/RPM-GPG-KEY-xxx

可以通过 enabled=1来开关yum源,通过gpgkey更换yum源的公钥,当然新版本的yum会有更多的选项供使用者来配置。

Monthly Archives

Pages

Powered by Movable Type 7.7.2

About this Entry

This page contains a single entry by Cnangel published on June 2, 2009 4:35 PM.

Gluing C++ And Perl Together was the previous entry in this blog.

又说iconv is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.