Chinaunix首页 | 论坛 | 博客
  • 博客访问: 255501
  • 博文数量: 54
  • 博客积分: 2668
  • 博客等级: 少校
  • 技术积分: 560
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-06 01:08
文章分类

全部博文(54)

文章存档

2011年(14)

2010年(14)

2009年(26)

分类:

2009-05-06 09:11:20

fedora默认yum是安装了的,有网络的话,直接输入yum install 软件包名就行。
yum的配置文件在/etc/yum.conf
1 [main]
  2 cachedir=/var/cache/yum    缓冲池的位置
  3 keepcache=0
  4 debuglevel=2
  5 logfile=/var/log/yum.log        日志位置
  6 exactarch=1
  7 obsoletes=1                          在更新时打开依赖关系检查
  8 gpgcheck=1                           打开组检查
  9 plugins=1                                打开插件
 10 installonly_limit=3
 11
 12 #  This is the default, if you make this bigger yum won't see if the metadata
 13 # is newer on the remote and so you'll "gain" the bandwidth of not having to
 14 # download the new metadata and "pay" for it by yum not having correct
 15 # information.
 16 #  It is esp. important, to have correct metadata, for distributions like
 17 # Fedora which don't keep old packages around. If you don't like this checking
 18 # interupting your command line usage, it's much better to have something
 19 # manually check the metadata once an hour (yum-updatesd will do this).
 20 # metadata_expire=90m
 21
 22 # PUT YOUR REPOS HERE OR IN separate files named file.repo
 23 # in /etc/yum.repos.d
~                                             
没有安装yum的可以下载源代码安装 wget -c
wget -c
我这里用yum-2.0.5为例子:
tar zxvf yum-2.0.5.tar.gz
cd yum-2.0.5
./configure --sysconfdir=/etc
make
make install
yum安装好后,其中有几个文件特别要注意
配置本地yum服务

将光盘 中iso 文件和目录 cp ?a 到/var/ftp/pub/server 目录下
删除/var/ftp/pub/server下极其子目录下所有的.olddata 目录
在/var/ftp/pub/RHEL5 目录下运行下面一行脚本

# for i in `find | grep “xml$” | grep comps`; do createrepo ?g ${i#./*/} ${i%/*/*.xml} ;
done
之后编辑本地或客户端的 yum 配置文件
# vi /etc/yum.repos.d/server1.repo
本地配置文件内容:
[rpms]
name=Fedora10
baseurl=file:///var/ftp/pub/server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm?gpg/RPM?GPG?KEY?redhat?release
[VT]
name=Fedora  $releasever ? $basearch ? VT
baseurl=file:///var/ftp/pub/server/VT
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm?gpg/RPM?GPG?KEY?redhat?release
[Cluster]
name=Fedora $releasever ? $basearch ? Cluster
baseurl=file:///var/ftp/pub/server/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm?gpg/RPM?GPG?KEY?redhat?release
[ClusterStorage]
name=Fedora $releasever ? $basearch ? ClusterStorage
baseurl=file:///var/ftp/pub/server/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm?gpg/RPM?GPG?KEY?redhat?release


yum使用的方法:
# yum ; <更新项目>; <套件名称>;
参数说明:
options:这里仅列出常见的参数。
  -y 如果 yum 在工作过程中需要使用者回应,这个参数可以直接回答 yes
更新项目:更新的动作有以下几个:
  install :安裝某个套件,后面需要接套件名称;
  update :这个就是升级!如果 update 后面接套件名称,表示只要 yum 升級该套件
       而已,如果 update 后面不接套件名称,表示 yum 针对目前该主机所有已
       经安裝的套件进行升级的动作!这是最常使用的项目了。
  list :列出目前在 yum server 上面有的 RPM 套件;
  info :某个套件的內容,类似 rpm -qi packages 的內容。
  clean :将已将下载到本即的 packages 或 headers 移除。
  remove :移除已经安裝在我们系统的某个套件!
范例:
# yum install hdparm # 安裝 hdparm 这个套件
# yum update hdparm # 更新 hdparm 这个套件
# yum -y update # 更新目前本机上面的所有套件,并自动回复 yes
# yum clean packages # 将下载至本机的 RPM 档案刪除(放在 /var/cache/yum 里面。

至于每日更新的话,可以写入 /etc/crontab
# vi /etc/crontab
40 5 * * * root yum -y update; yum clean packages
通过yum更新系统的时候注意:
在安装过程中注意不要中断操作,可能出现新的包安上去,旧的包没有卸载,最后导致重新yum出现这样的信息
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
然后当你运行这条命令:yum-complete-transaction时会出现一些安装包冲突,就是有些包被安装了俩个不同的版本,也就是新版本安装上去了,而旧版本没有给去除掉,这时候你就要去除去这些安装冲突的安装包。
接下来更新又有这样的错误
Error message like ->
r  yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 229, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 84, in main
    base.getOptionsConfig(args)
  File "/usr/share/yum-cli/cli.py", line 184, in getOptionsConfig
    enabled_plugins=self.optparser._splitArg(opts.enableplugins))
  File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 192, in _getConfig
    self._conf = config.readMainConfig(startupconf)
  File "/usr/lib/python2.5/site-packages/yum/config.py", line 774, in readMainConfig
    yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
  File "/usr/lib/python2.5/site-packages/yum/config.py", line 844, in _getsysver
    idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed

解决方案:

rm -f /var/lib/rpm/__db*
#db_verify /var/lib/rpm/Packages
#rpm --rebuilddb
然后更新没有错误了
如下:
总大小: 346 M
下载软件包:
Downloading DeltaRPMs:
Rebuilding rpms from deltarpms
运行 rpm_check_debug
运行测试事务处理
传输测试完成
事务处理测试成功
运行事务处理
  正在升级       : libcurl-devel                                                                             



阅读(3343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~