总而言之,这是什么让我头痛:
--> Finished Dependency Resolution Error: Package: policycoreutils-2.5-11.el7_3.x86_64 (base) Requires: libsepol.so.1(LIBSEPOL_1.0)(64bit) Error: Package: libsemanage-2.5-5.1.el7_3.x86_64 (base) Requires: libsepol.so.1(LIBSEPOL_1.0)(64bit) Error: Package: 1:NetworkManager-tui-1.4.0-14.el7_3.x86_64 (base) Requires: libjansson.so.4()(64bit) Error: Package: libsemanage-2.5-5.1.el7_3.x86_64 (base) Requires: libsepol.so.1(LIBSEPOL_1.1)(64bit) Error: Package: 7:lvm2-2.02.166-1.el7_3.2.x86_64 (base) Requires: device-mapper-persistent-data >= 0.6.3-1 Installed: device-mapper-persistent-data-0.6.2-1.el7_2.x86_64 (@base) device-mapper-persistent-data = 0.6.2-1.el7_2 Error: Package: policycoreutils-2.5-11.el7_3.x86_64 (base) Requires: libselinux-utils >= 2.5-6 Installed: libselinux-utils-2.2.2-6.el7.x86_64 (@anaconda) libselinux-utils = 2.2.2-6.el7 Error: Package: 1:NetworkManager-libnm-1.4.0-14.el7_3.x86_64 (base) Requires: libjansson.so.4()(64bit) Error: Package: 1:NetworkManager-1.4.0-14.el7_3.x86_64 (base) Requires: libjansson.so.4()(64bit) Error: Package: kernel-3.10.0-514.6.1.el7.x86_64 (base) Requires: linux-firmware >= 20160830-49 Installed: linux-firmware-20150904-43.git6ebf5d5.el7.noarch (@anaconda) linux-firmware = 20150904-43.git6ebf5d5.el7 Error: Package: policycoreutils-2.5-11.el7_3.x86_64 (base) Requires: libsepol >= 2.5-6 Installed: libsepol-2.1.9-3.el7.x86_64 (@anaconda) libsepol = 2.1.9-3.el7 Error: Package: policycoreutils-2.5-11.el7_3.x86_64 (base) Requires: libsepol.so.1(LIBSEPOL_1.1)(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
服务器运行CentOS 7.它没有额外的存储库,只使用核心CentOS 7仓库中的软件包。 没有安装yum默认不提供的软件。
我已经尝试了很多东西,所以我会尽力排除这些:
yum clean all
基本上都是yum clean all
。
rm -rf /var/cache/yum
并用yum makecache
重build
我已经尝试了几个存储库,并与他们所有我没有检查更新文件实际上存在。 我什至试图从回购中下载一些RPM,并手动更新它,这工作得很好。 但是显然我想要yum为我做这个。
/etc/yum.repos.d
下的文件看起来很好,完全可以与另一台服务器匹配,工作起来非常完美。
yum repolist
– 这是一个发现! 看到:
# yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status base/7/x86_64 CentOS-7 - Base 807 extras/7/x86_64 CentOS-7 - Extras 807 updates/7/x86_64 CentOS-7 - Updates 807 repolist: 2,421
注意每个只有807个包。 在我的其他服务器上,有更多可用的软件包。
我试着从服务器上下载primary_db.sqlite来用SQLite编辑器来检查它。 实际上在packages
表中只有807条logging。
很明显,这已经被清除了很多次,所以这不是一个老的遗留。
…这就是你们进来的地方。我的想法很好,但对我来说似乎被缩小到了807个。为什么只有807个包装呢? 当然,我像疯子一样search,但是我找不到像这样的东西。
我在这里find另一个线程,似乎有同样的问题,但没有提供太多的信息: 在CentOS 7中更新Yum时的依赖冲突
yum.conf
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release # This is the default, if you make this bigger yum won't see if the metadata # is newer on the remote and so you'll "gain" the bandwidth of not having to # download the new metadata and "pay" for it by yum not having correct # information. # It is esp. important, to have correct metadata, for distributions like # Fedora which don't keep old packages around. If you don't like this checking # interupting your command line usage, it's much better to have something # manually check the metadata once an hour (yum-updatesd will do this). # metadata_expire=90m # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
All yum.repos.d files
http://pastebin.centos.org/65881/
好的,现在我们可以看到,在CentOS-Base.repo
中,四个存储库中的三个存储库的基baseurl
是错误的。
回购base
, extras
和centosplus
(这是残疾人)都有一个不好的baseurl
。 而不是指向你select的镜子上的实际相应的回购,他们都指向updates
回购。
你应该觉得这很容易解决。 根据文件中已经存在的例子,只要将baseurl
改为指向正确的repo即可。
解决这个问题之后,你应该再次yum clean all
。