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