全部博文(2065)
分类: LINUX
2010-09-27 22:41:01
Linux中yum教程
整理人:遥方
1、 介绍一下RPM包的相关概念
1.1 包依赖关系问题就是说,你正在安装的包需要其他的包的支持才能正常工作。通常还有可能遇到的问题是所安装的包需要某个软件或者函数库的特定版本才能正常工作。这样的情况下,你可以安装或者升级依赖的软件包,然后继续安装你自己需要安装的软件包。(先完成全部相依赖的软件包或程序之后再去做安装工作)
1.2 在linux世界里流行两种包管理方式,分别是redhat系的rpm和debian系的deb。
1.3 linux下几乎所有流行的程序都有rpm格式的包,有些是发行者自己打包,也有些第三方提供rpm包
1.4 由于rpm包之间可能存在依赖关系,在依赖关系无法满足的情况下默认是没法继续安装的。
2、 介绍YUM相关概念
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
PS:如果用户自己去用rpm来安装的话还要考虑这种软件包之间的这种依赖性,而通过YUM的方式处理的话就能够自动解决这个依赖问题!
3、 介绍Yum配置文件---repository选项的设置
有两种方法来设置单独软件仓库的定义。
可以向/etc/yum.conf 文件中添加
[repository] 片段。
可以向/etc/yum.repos.d/目录中添加.repo文件。
PS:我现在选择第二种解决方法
/etc/yum.repos.d/ 中的所有 .repo 文件都会在 yum 下次运行时被读取。
最简单的 .repo 文件样式如下
[repository_ID]
name=A Repository Name
baseurl=
示例:
[base]
name=CentOS-$releasever - Base
#mirrorlist=
baseurl=
gpgcheck=0
gpgkey=repo/$releasever/os/$basearch/RPM-GPG-KEY
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=
baseurl=
gpgcheck=0
#gpgkey=vault.centos.org/5.4/os/i386/repo/$releasever/os/$basearch/RPM-GPG-KEY-CentO
#packages used/produced in the build but
not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=
#baseurl=
enabled=0
gpgcheck=0
#gpgkey=vault.centos.org/5.4/os/i386/repo/$releasever/os/$basearch/RPM-GPG-KEY-CentO
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=
baseurl=
enabled=1
gpgcheck=0
#gpgkey=vault.centos.org/5.4/os/i386/repo/$releasever/os/$basearch/RPM-GPG-KEY-CentO
#additional packages that extend
functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=
#baseurl=
gpgcheck=0
enabled=0
gpgkey=
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=
#baseurl=
gpgcheck=0
gpgkey=
enabled=0
[软件包仓库标识]
软件包仓库标识是被方括号包围的单个单词(没有空格,没有下划线),并且不能与其它软件包仓库重名。
name=[软件包仓库名]
设置软件仓库的描述性信息
baseurl=, , (可从本地文件系统中直接获取到!PS:自己制作
.repo文件然后自动化脚本将其wget下来然后再通过yum的方式进行安装)
设置软件仓库的
URL 目录,该目录包含软件仓库的仓库数据(repodata)目录,这个 URL 通常是 HTTP 链接,
如
baseurl=$releasever/Everything/$basearch/os/
Yum 能够自动转换 URL 链接中的
$releasever, $arch 和 $basearch 变量,有关 yum 变量的说明,请参考《》
如果软件包仓库使用 FTP 地址,使用
如果软件包仓库使用本地地址,使用
如果软件包仓库使用基本的 HTTP 验证,可以在
baseurl 前扩展用户名和密码进行身份验证,如
baseurl=
4、 介绍一下yum的配置文件及相关参数说明
yum 配置文件是指 /etc/yum.conf 和
/etc/yum.repos.d/ 目录下的所有 .repo 配置文件。
$releasever
此变量表示
Fedora 的发行版,yum 通过
/etc/yum.conf 文件,从 distrooverpky=
$arch
此变量用于标识系统所用的 CPU 平台,变量的值通过 uname 命令得出,$arch 的有效值为 i586, i686 和 x86_64
$basearch
此变量用于参照系统的基本平台,例如,i686 和 i586 机器的基本平台是
i 386,AMD64 和 Intel64 机器的基本平台是 x86_64
$YUM0-9
$YUM0 ~ $YUM9 这十个变量分别被 shell 环境中的同名变量的值所替代。如果 /etc/yum.conf 文件中设置了这些变量,而 shell 环境中没有同名变量,它的值则不被代替。
附:
[root@localhost
~]# more /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
installonly_limit
= 5
#
PUT YOUR REPOS HERE OR IN separate files named file.repo
# in
/etc/yum.repos.d
5、介绍一下yum的主配置文件
了解有关 yum.conf 文件中的各个选项的值和说明信息,最好的方法是参考 yum.conf 的 man 文件,查看的命令为 man yum.conf
有关 [main] 片段中常用的选项及说明
cachedir=/var/cache/yum
选项指定 yum 存储 (软件包) 缓存和数据库文件的默认位置。其默认值为 /var/cache/yum
keepcache=[1
or 0]
设置
keepcache=1,yum 在成功安装软件包之后保留缓存的头文件 (headers) 和软件包。默认值为 keepcache=0
reposdir=[包含 .repo 文件的目录的绝对路径]
该选项用户指定 .repo 文件的绝对路径。.repo 文件包含软件仓库的信息 (作用与 /etc/yum.conf 文件中的 [repository] 片段相同)。
yum 从所有 .repo 文件以及 /etc/yum.conf 文件的 [repository] 片段中收集软件仓库的信息,并依此创建一个主仓库列表,用于请求传输软件包。
有关 .repo 文件和 [repository] 片段中能用到的选项的信息,请参考《配置 Yum 配置文件中的 [repository] 选项》
gpgcheck=[1
or 0];
该选项为所有软件仓库中 (及本地) 的软件包启用或禁用 GPG
签名验证。默认值为1,即启用 GPG 签名检测。
用户可以在不同的软件仓库配置中设置这个选项,并且单独的软件仓库配置中的值会覆盖 /etc/yum.conf 中的值。有关 GPG 签名检测的更多信息请参考《使用 RPM 验证软件包签名》
assumeyes=[1
or 0]
该选项决定 yum 对于危险操作时是否给出提示。默认值为0,即不提示。当 assumeyes=1 时,在不应用 -y 选项时,yum 会给出提示。
exclude="[package_name]
[more_names]"
选项允许用户在安装/升级的过程中,排除指定的软件包。排除多个软件包时应该使用引号("")包起来。这里同样允许使用 glob 表达式。
retries=[number_of_retries]
该选项设置返回错误消息前,yum 重试的次数。0 表示一直重试,默认值为 6。