fedora15 软件升级错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fedora15 软件升级错误相关的知识,希望对你有一定的参考价值。
Traceback (most recent call last):
File "/usr/share/PackageKit/helpers/yum/yumBackend.py", line 2778, in get_updates
ygl = self.yumbase.doPackageLists(pkgnarrow='updates')
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 2257, in doPackageLists
for (n,a,e,v,r) in self.up.getUpdatesList():
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 878, in <lambda>
up = property(fget=lambda self: self._getUpdates(),
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 702, in _getUpdates
self._up = rpmUtils.updates.Updates(self.rpmdb.simplePkgList(), self.pkgSack.simplePkgList())
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 859, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 645, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 294, in populateSack
sack.populate(repo, mdtype, callback, cacheonly)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 183, in populate
xml = repo_get_function()
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1626, in getPrimaryXML
return self.retrieveMD('primary')
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1551, in retrieveMD
return self._retrieveMD(mdtype)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1559, in _retrieveMD
thisdata = self.repoXML.getData(mdtype)
File "/usr/lib/python2.7/site-packages/yum/repoMDObject.py", line 180, in getData
raise RepoMDError, "requested datatype $s not available" $ type
RepoMDError: requested datatype primary not available
这个错误怎么解决
*基本命令
下面是你会用到的最普通的 yum 命令,yum 是 Fedora 的打包系统。如果你输入下面的命令你会找到更多详细的介绍以及更多的命令
yum --help
man yum
*安装应用程序
su -c 'yum install application_name'
(注:application_name代表应用程序名,下同)
*删除应用程序
su -c 'yum remove application_name'
*从硬盘安装 rpm 包并使用 yum 解决依赖
su -c 'yum localinstall application_name'
*搜索应用程序
su -c 'yum search application_name'
*查找某个应用程序的信息
su -c 'yum info application_name'
*更新整个系统
su -c 'yum update'
*启用一个软件仓库
su -c 'yum --enablerepo=repo_name'
(repo_name 代表仓库名,下同)
*禁用一个软件仓库
su -c 'yum --disablerepo=repo_name'
*导入 Fedora GPG 秘匙
Fedora 有两个基本的软件仓库,名为 “fedora” 和 “updates” 。要使用它们并且在安装那些未签名的软件包时避免发生错误,你必须导入它们的 GPG 密匙,打开一个终端并且输入如下命令:
su -c 'rpm --import /etc/pki/rpm-gpg/*'
*第三方软件仓库
* RPM Fusion
因为专利许可证的原因,Fedora 软件仓库不包含 MP3, DVD和视频播放及解码库。正因为如此,你必须从第三方的软件仓库安装那些软件,请不要担心,这是非常容易的 :)
现在我们开始安装 RPM Fusion 软件仓库,RPM Fusion 是 Fedora 和 Red Hat 企业版的软件仓库,是由 Dribble, Freshrpms 和 RPM Fusion 合并而来的。各种各样的应用程序包含在这个软件仓库中,比如MP3、未加密的 DVD 、Mplayer, VLX, Xine 等多媒体应用程序使用的解码库,以及闭源的 Nvidia 和 ATI 显卡驱动,RPM Fusion 包含以下两个主要的软件仓库:
* 一个被命名为“免费”,为开源软件提供(开源软件的含义通过 Fedora授权指引 定义),但因为美国专利保护法案又不能包含在 Fedora 中。
* 另一个被命名为“非免费”,为非自由软件提供,就是其它所有那些不能被免费提供的,包括公开源代码的软件,但是有“非商业使用”之类的限制。
在这部分指南的最后,我保证你安装并启用了 RPM Fusion 软件仓库,所以,打开一个终端吧,输入:
su -
rpm -ivh
rpm -ivh
yum update
yum 图形界面
如果你不喜欢在控制台输入命令,你可以使用 Fedora 的 yum 的图形用户界面,你可以在系统-->应用程序-->添加/删除软件找到它。
你也可以安装 yumex 来使用 yum 的图形界面:
su -c 'yum install yumex'
*配置 yum 以使用代理
如果你使用 http 代理服务器,如果你想要 yum 通过代理服务器连接网络,打开终端,输入如下命令:
su -c 'gedit /etc/yum.conf'
在 yum 配置中加入下面这一行:
proxy=
ip就是你代理服务器的 ip 地址,端口就是你代理服务器监听的端口。不要忘记端口后面的 “/” 符号。保存并退出。
*yum插件
*最快镜像插件
就像这个插件名所说的那样,这个插件可以搜索你镜像列表中最快的镜像服务器,并从中下载文件包。要安装,请输入:
su -c 'yum install yum-fastestmirror'
现在,像通常使用 yum 那样使用就可以了。你可以在下面这个文件中配置这个插件的各种设置:
su -c 'gedit /etc/yum/pluginconf.d/fastestmirror.conf'
*安全插件
这个插件只允许你搜索并安装仅和安全有关的升级包,如果你将 Fedora 安装在服务器的生产力模式下还是非常实用的。要安装,请输入:
su -c 'yum install yum-security'
要应用安全插件请输入: su -c 'yum --security update'
要了解更多信息或者像 bugzilla 汇报等额外选项或者咨询信息,请阅读手册
man yum-security
*允许降级的插件
yum 默认是不允许你降级一个软件包的,然而有时候一个新的软件包反而给你带来问题。在这种情况下你就可以用这个插件降级该软件到之前稳定版本了。要安装,请输入:
su -c 'yum install yum-allowdowngrade'
要使用它请输入:
su -c 'yum update --allow-downgrade'
你可以通过更改下面这个文件中被启用的选项来禁用该插件:
su -c 'gedit /etc/yum/pluginconf.d/allowdowngrade.conf'
*加速插件
加速插件为 Fedora 用户提供更快,更小的下载量,它只下载 rpm 安装包中被更新的部分,而不是整个 rpm 包。加速插件被计划包含在 Fedora 11 中。要安装,请输入:
su -c 'yum install yum-presto'
然后编辑 /etc/yum.repos.d/fedora-updates.repo 文件,
su -c 'gedit /etc/yum.repos.d/fedora-updates.repo'
通过在地址行前面加 # 注释掉该镜像地址行,然后粘贴上下面这一行:
baseurl=
参考技术A 只做参考啦,主要是不知道你之前干了什么:
1、把yum的源重新调整好,暂时先关闭除了官方源以及Rpmfusion源以外的。
2、yum clean all
3、yum check
针对yum提供的check信息对软件库进行修正。
linux fedora升级操作
请参考官方维基。
使用 DNF system upgrade 插件升级
$ sudo dnf update --refresh # 更新系统
$ sudo dnf install dnf-plugin-system-upgrade # 安装插件
$ sudo dnf system-upgrade download --refresh --releasever=[23|24|rawhide] # 下载包
$ sudo dnf system-upgrade reboot # 重启执行升级操作
如果某些依赖不满足,升级将终止,可添加 --allowerasing
选项删除依赖损坏的包。这可能是第三方源还未进行更新。建议卸载这些依赖不满足的包。添加 --best
选项,可查看依赖问题的详细信息。
升级后操作
- 更新系统配置文件:
更新后,RPM将备份配置文件。搜索 .rpmnew
(新配置) .rpmsave
(旧配置),根据需要进行修改。或使用 rpmconf
工具进行处理。
$ sudo rpmconf -a
- 清理旧软件包:
$ sudo dnf repoquery --unsatisfied # 列出依赖问题的包,可以酌情删除这些包
$ sudo dnf repoquery --duplicated # 列出重复的包,一般的包不会有重复存在
$ sudo dnf list extras # 列出已从源中删除的包,可能包含第三方源的包
$ sudo dnf autoremove # 删除不需要的包
注意:DNF 不需要一个包,是根据您是否明确要求安装它来决定的。这不意味着这个包是无用的。您需要删除您确实不需要的包。注意,PackageKit
有个已知的 Bug,它并不标记包是用户安装。如果您使用 PackageKit
(或 GNOME Software
, Apper
等)安装包,则这些包可能会列出,甚至会包含重要的应用程序和系统软件包,务必要十分小心。
解决升级后的问题
如果您升级后,系统有问题,可能需要以下步骤。
- 重建RPM数据库:
如果您使用RPM/DNF工具时出现警告,可能需要重建RPM数据库。
$ sudo rpm --rebuilddb
- 使用
distro-sync
解决依赖问题:
system upgrade
工具默认使用 distro-sync
升级系统。如果您的系统有些未升级的包有依赖问题,可手动执行 distro-sync
。这会同步源的软件包(某些包会降级)。
$ sudo dnf distro-sync
$ sudo dnf distro-sync --allowerasing # 允许删除依赖损坏的包,务必进行确认
- 重新标记 SELinux 标签:
如果某些行为被禁止并收到 SELinux 警告,可能有些文件标签不正确。
$ sudo touch /.autorelabel
$ reboot
手动升级
升级至 fc24
$ sudo systemctl isolate multi-user.target # 切换至 TUI
$ sudo dnf upgrade
$ sudo dnf clean all
$ sudo dnf distro-sync --releasever=24 --setopt=deltarpm=false \\
--disablerepo=\\* --enablerepo=fedora --enablerepo=updates --nogpgcheck
$ sudo touch /.autorelabel
建议清理 /var/cache/yum
, /var/cache/dnf
, /var/cache/mock
, /var/lib/mock
等目录。
升级至 Rawhide
$ sudo dnf upgrade
$ sudo dnf install dnf-plugins-core fedora-repos-rawhide
$ sudo dnf config-manager --set-disabled fedora updates updates-testing
$ sudo dnf config-manager --set-enabled rawhide
$ sudo dnf clean -q dbcache plugins metadata
$ sudo dnf distro-sync --releasever=rawhide --setopt=deltarpm=false --nogpgcheck
$ sudo touch /.autorelabel
参考:
以上是关于fedora15 软件升级错误的主要内容,如果未能解决你的问题,请参考以下文章