RedHat AS4配置centos源问题汇总


在执行yum更新,即运行 yum update 命令时,提示以下错误:

File "/usr/bin/yum", line 29, in ?
yummain.main(sys.argv[1:])
File "/usr/share/yum-cli/yummain.py", line 97, in main
result, resultmsgs = do()
File "/usr/share/yum-cli/cli.py", line 481, in doCommands
return self.updatePkgs()
File "/usr/share/yum-cli/cli.py", line 957, in updatePkgs
self.doRepoSetup()
File "/usr/share/yum-cli/cli.py", line 82, in doRepoSetup
self.doSackSetup(thisrepo=thisrepo)
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 291, in
doSackSetup
self.repos.populateSack(which=repos)
File "/usr/lib/python2.4/site-packages/yum/repos.py", line 289, in
populateSack
dobj = repo.cacheHandler.getPrimary(xml, csum)
File "/usr/lib/python2.4/site-packages/yum/sqlitecache.py", line 96, in
getPrimary
return self._getbase(location, checksum, 'primary')
File "/usr/lib/python2.4/site-packages/yum/sqlitecache.py", line 89, in
_getbase
self.updateSqliteCache(db, parser, checksum, metadatatype)
File "/usr/lib/python2.4/site-packages/yum/sqlitecache.py", line 373, in
updateSqliteCache
cur.execute("DELETE FROM "+table+ " where pkgKey in %s" % delpkgs)
File "/usr/lib/python2.4/site-packages/sqlite/main.py", line 244, in
execute
self.rs = self.con.db.execute(SQL)
_sqlite.DatabaseError: database disk image is malformed

估计是由于yum的原数据损坏导致的,与rpm的数据库损坏类似,前者会导致更新不能正常执行,后者会导致安装失败并出现乱码,前者的解决参见yum更新和rpm安装包问题(rpmdb: PANIC: Invalid argument),后者的错误可以通过一下方法解决:
终端,依次输入:
1.) yum clean metadata
2.) yum clean dbcache
3.) yum makecache
即先删除原数据和数据库缓存,然后重建之,问题即可解决。



yum更新和rpm安装包问题(rpmdb: PANIC: Invalid argument)
使用yum或者rpm安装包时出现的问题,安装时报出大约如下的错误:

================================================================================
rpmdb: PANIC: Invalid argument
error: db4 error(-30977) from dbcursor->c_get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30977) setting "o?n+ c=-
@m
" records from Filemd5s index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30977) from dbcursor->c_get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30977) setting ";b.#C+ . ?
@m
" records from Filemd5s index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30977) from dbcursor->c_get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30977) setting "$ > И
@m
================================================================================

还可能出现整屏幕的乱码,这多半是因为prm数据库出现损坏导致的,此错误可能导致多数(甚至是所有的)rpm软件的升级、安装甚至是删除都会出现问题,终端出现乱码,yum和/或rpm包在重启机器之前不能再使用……
曾经被这个错误搞得头都大了,差点没把MySQL和yum给卸载了……
现在好像已经没事……修复此错误,请在以root身份在终端输入以下命令:
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all
解释一下:
第一句命令将rpm所用的数据库删除,第二句将重建该数据库,第三句可选,你可以不敲入这一句,直接安装,一般不会出现问题,如果出现问题可能是你的yum下下来的数据没有checksum,校验值不对所致,可以运行一下第三句清除所有yum的缓存再行使用yum安装。
另外,如果你使用yum时整天出现
Metadata file does not match checksum (校验值不对)
之类的提示,你可以参照《yum 更新时 md5 值校验错误的解决([Errno> -1] Metadata file does not match checksum)》 来解决。如果在安装的时候出现以上错误,请检查自己的yum配置是否执对下载下来的数据执行了校验。具体方法在终端输入
cat /etc/yum.conf
注意可能需要root权限才能查看,检查
gpgcheck=1
看看是否等于1,否则改为1即可。

[root@localhost yum.repos.d]# yum update
Setting up Update Process
Setting up repositories
Reading repository metadata in from local files
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ?
yummain.main(sys.argv[1:])
File "/usr/share/yum-cli/yummain.py", line 97, in main
result, resultmsgs = do()
File "/usr/share/yum-cli/cli.py", line 477, in doCommands
return self.updatePkgs()
File "/usr/share/yum-cli/cli.py", line 955, in updatePkgs
self.doRepoSetup()
File "/usr/share/yum-cli/cli.py", line 75, in doRepoSetup
self.doSackSetup(thisrepo=thisrepo)
File "__init__.py", line 260, in doSackSetup
File "repos.py", line 277, in populateSack
File "/usr/lib/python2.3/site-packages/sqlitecachec.py", line 40, in getPrimary
self.repoid))
File "/usr/lib/python2.3/site-packages/sqlitecachec.py", line 29, in open_database
con = sqlite.connect(filename)
File "/usr/lib/python2.3/site-packages/sqlite/__init__.py", line 61, in connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.3/site-packages/sqlite/main.py", line 445, in __init__
self.db = _sqlite.connect(database, mode)
_sqlite.DatabaseError: file is encrypted or is not a database

sqlite-2.8.16-1.0.rh9.rf 版本问题,跟换为:rpm -vih sqlite-2.8.16-1.2.el4.rf.i386.rpm


Error: initscripts conflicts with kernel < 2.6.12
Error: hal conflicts with kernel < 2.6.17
Error: lksctp-tools conflicts with kernel < 2.6.10
Error: autofs conflicts with kernel < 2.6.17
Error: kudzu conflicts with kernel < 2.6.13
解决办法:
rpm -qa|grep kernel
rpe -e --nodeps (kernel包)
yum -y upgrade
yum update
(一般情况删除即可)
也可以安装新kernel 比如 wget http://mirror.centos.org/centos/5/os/i386/CentOS/kernel-2.6.18-274.el5.i686.rpm(基本站点都是统一的)
rpm -Uvh --nodeps kernel-2.6.18-274.el5.i686.rpm


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值