在CentOS vagrant机器上安装NFS客户端时,执行"yum -y install nfs-utils nfs-utils-lib"命令。

3
我尝试使用VirtualBox作为提供程序,ansible作为配置工具,来启动一个CentOS机器(centos7-x64-vbox43)的虚拟化环境。我执行了如下命令:

vagrant up --provision-with ansible

但我遇到了一个错误,与在虚拟机中执行以下命令 yum -y install nfs-utils nfs-utils-lib 有关:

[project-name] > vagrant up
/opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/pre-rubygems.rb:31: warning: Insecure world writable dir /Applications/Qt in PATH, mode 040777
/opt/vagrant/embedded/gems/gems/bundler-1.10.6/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /Applications/Qt in PATH, mode 040777
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 80 (guest) => 2000 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default: 
    default: Guest Additions Version: 4.3.14
    default: VirtualBox Version: 5.0
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Installing NFS client...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

yum -y install nfs-utils nfs-utils-lib

Stdout from the command:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.switch.ch
 * extras: mirror.ratiokontakt.de
 * updates: mirror.ratiokontakt.de
No package nfs-utils-lib available.
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.x86_64 1:1.3.0-0.21.el7_2.1 will be installed
--> Processing Dependency: libtirpc >= 0.2.3-1 for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: gssproxy >= 0.3.0-0 for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: rpcbind for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: quota for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: libnfsidmap for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: libevent for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_97)(64bit) for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: keyutils for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: 1:nfs-utils-1.3.0-0.21.el7_2.1.x86_64
--> Running transaction check
---> Package device-mapper-libs.x86_64 7:1.02.84-14.el7 will be updated
--> Processing Dependency: device-mapper-libs = 7:1.02.84-14.el7 for package: 7:device-mapper-1.02.84-14.el7.x86_64
---> Package device-mapper-libs.x86_64 7:1.02.107-5.el7_2.5 will be an update
---> Package gssproxy.x86_64 0:0.4.1-7.el7 will be installed
--> Processing Dependency: krb5-libs >= 1.12.0 for package: gssproxy-0.4.1-7.el7.x86_64
--> Processing Dependency: libverto-tevent for package: gssproxy-0.4.1-7.el7.x86_64
--> Processing Dependency: libini_config.so.3(INI_CONFIG_1.1.0)(64bit) for package: gssproxy-0.4.1-7.el7.x86_64
--> Processing Dependency: libref_array.so.1()(64bit) for package: gssproxy-0.4.1-7.el7.x86_64
--> Processing Dependency: libini_config.so.3()(64bit) for package: gssproxy-0.4.1-7.el7.x86_64
--> Processing Dependency: libcollection.so.2()(64bit) for package: gssproxy-0.4.1-7.el7.x86_64
--> Processing Dependency: libbasicobjects.so.0()(64bit) for package: gssproxy-0.4.1-7.el7.x86_64
---> Package keyutils.x86_64 0:1.5.8-3.el7 will be installed
---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
---> Package libnfsidmap.x86_64 0:0.25-12.el7 will be installed
---> Package libtirpc.x86_64 0:0.2.4-0.6.el7 will be installed
---> Package quota.x86_64 1:4.01-11.el7_2.1 will be installed
--> Processing Dependency: quota-nls = 1:4.01-11.el7_2.1 for package: 1:quota-4.01-11.el7_2.1.x86_64
--> Processing Dependency: tcp_wrappers for package: 1:quota-4.01-11.el7_2.1.x86_64
---> Package rpcbind.x86_64 0:0.2.0-33.el7_2.1 will be installed
--> Processing Dependency: libsystemd.so.0(LIBSYSTEMD_209)(64bit) for package: rpcbind-0.2.0-33.el7_2.1.x86_64
--> Processing Dependency: libsystemd.so.0()(64bit) for package: rpcbind-0.2.0-33.el7_2.1.x86_64
--> Running transaction check
---> Package device-mapper.x86_64 7:1.02.84-14.el7 will be updated
--> Processing Dependency: device-mapper = 7:1.02.84-14.el7 for package: 7:device-mapper-event-1.02.84-14.el7.x86_64
---> Package device-mapper.x86_64 7:1.02.107-5.el7_2.5 will be an update
---> Package krb5-libs.x86_64 0:1.11.3-49.el7 will be updated
---> Package krb5-libs.x86_64 0:1.13.2-12.el7_2 will be an update
---> Package libbasicobjects.x86_64 0:0.1.1-25.el7 will be installed
---> Package libcollection.x86_64 0:0.6.2-25.el7 will be installed
---> Package libini_config.x86_64 0:1.2.0-25.el7 will be installed
--> Processing Dependency: libpath_utils.so.1(PATH_UTILS_0.2.1)(64bit) for package: libini_config-1.2.0-25.el7.x86_64
--> Processing Dependency: libpath_utils.so.1()(64bit) for package: libini_config-1.2.0-25.el7.x86_64
---> Package libref_array.x86_64 0:0.1.5-25.el7 will be installed
---> Package libverto-tevent.x86_64 0:0.2.5-4.el7 will be installed
--> Processing Dependency: libtevent.so.0(TEVENT_0.9.9)(64bit) for package: libverto-tevent-0.2.5-4.el7.x86_64
--> Processing Dependency: libtalloc.so.2(TALLOC_2.0.2)(64bit) for package: libverto-tevent-0.2.5-4.el7.x86_64
--> Processing Dependency: libtevent.so.0()(64bit) for package: libverto-tevent-0.2.5-4.el7.x86_64
--> Processing Dependency: libtalloc.so.2()(64bit) for package: libverto-tevent-0.2.5-4.el7.x86_64
---> Package quota-nls.noarch 1:4.01-11.el7_2.1 will be installed
---> Package systemd-libs.x86_64 0:208-11.el7_0.2 will be updated
--> Processing Dependency: systemd-libs = 208-11.el7_0.2 for package: systemd-208-11.el7_0.2.x86_64
---> Package systemd-libs.x86_64 0:219-19.el7_2.11 will be an update
---> Package tcp_wrappers.x86_64 0:7.6-77.el7 will be installed
--> Running transaction check
---> Package device-mapper-event.x86_64 7:1.02.84-14.el7 will be updated
---> Package device-mapper-event.x86_64 7:1.02.107-5.el7_2.5 will be an update
--> Processing Dependency: device-mapper-event-libs = 7:1.02.107-5.el7_2.5 for package: 7:device-mapper-event-1.02.107-5.el7_2.5.x86_64
---> Package libpath_utils.x86_64 0:0.2.1-25.el7 will be installed
---> Package libtalloc.x86_64 0:2.1.5-1.el7_2 will be installed
---> Package libtevent.x86_64 0:0.9.26-1.el7_2.1 will be installed
---> Package systemd.x86_64 0:208-11.el7_0.2 will be updated
--> Processing Dependency: systemd = 208-11.el7_0.2 for package: systemd-sysv-208-11.el7_0.2.x86_64
--> Processing Dependency: systemd = 208-11.el7_0.2 for package: libgudev1-208-11.el7_0.2.x86_64
---> Package systemd.x86_64 0:219-19.el7_2.11 will be an update
--> Processing Dependency: kmod >= 18-4 for package: systemd-219-19.el7_2.11.x86_64
--> Running transaction check
---> Package device-mapper-event-libs.x86_64 7:1.02.84-14.el7 will be updated
---> Package device-mapper-event-libs.x86_64 7:1.02.107-5.el7_2.5 will be an update
---> Package kmod.x86_64 0:14-9.el7 will be updated
---> Package kmod.x86_64 0:20-5.el7 will be an update
---> Package libgudev1.x86_64 0:208-11.el7_0.2 will be updated
---> Package libgudev1.x86_64 0:219-19.el7_2.11 will be an update
---> Package systemd-sysv.x86_64 0:208-11.el7_0.2 will be updated
---> Package systemd-sysv.x86_64 0:219-19.el7_2.11 will be an update
--> Processing Conflict: systemd-219-19.el7_2.11.x86_64 conflicts initscripts < 9.49.28-1
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package initscripts.x86_64 0:9.49.17-1.el7 will be updated
---> Package initscripts.x86_64 0:9.49.30-1.el7_2.2 will be an update
--> Processing Conflict: systemd-219-19.el7_2.11.x86_64 conflicts dracut < 033-243
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package dracut.x86_64 0:033-161.el7 will be updated
--> Processing Dependency: dracut = 033-161.el7 for package: dracut-config-rescue-033-161.el7.x86_64
--> Processing Dependency: dracut = 033-161.el7 for package: dracut-network-033-161.el7.x86_64
---> Package dracut.x86_64 0:033-360.el7_2.1 will be an update
--> Running transaction check
---> Package dracut-config-rescue.x86_64 0:033-161.el7 will be updated
---> Package dracut-config-rescue.x86_64 0:033-360.el7_2.1 will be an update
---> Package dracut-network.x86_64 0:033-161.el7 will be updated
---> Package dracut-network.x86_64 0:033-360.el7_2.1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                     Arch      Version                 Repository  Size
================================================================================
Installing:
 nfs-utils                   x86_64    1:1.3.0-0.21.el7_2.1    updates    371 k
Updating:
 dracut                      x86_64    033-360.el7_2.1         updates    311 k
 initscripts                 x86_64    9.49.30-1.el7_2.2       updates    429 k
Installing for dependencies:
 gssproxy                    x86_64    0.4.1-7.el7             base        84 k
 keyutils                    x86_64    1.5.8-3.el7             base        54 k
 libbasicobjects             x86_64    0.1.1-25.el7            base        24 k
 libcollection               x86_64    0.6.2-25.el7            base        40 k
 libevent                    x86_64    2.0.21-4.el7            base       214 k
 libini_config               x86_64    1.2.0-25.el7            base        59 k
 libnfsidmap                 x86_64    0.25-12.el7             base        46 k
 libpath_utils               x86_64    0.2.1-25.el7            base        27 k
 libref_array                x86_64    0.1.5-25.el7            base        26 k
 libtalloc                   x86_64    2.1.5-1.el7_2           updates     34 k
 libtevent                   x86_64    0.9.26-1.el7_2.1        updates     33 k
 libtirpc                    x86_64    0.2.4-0.6.el7           base        85 k
 libverto-tevent             x86_64    0.2.5-4.el7             base       9.0 k
 quota                       x86_64    1:4.01-11.el7_2.1       updates    178 k
 quota-nls                   noarch    1:4.01-11.el7_2.1       updates     90 k
 rpcbind                     x86_64    0.2.0-33.el7_2.1        updates     58 k
 tcp_wrappers                x86_64    7.6-77.el7              base        78 k
Updating for dependencies:
 device-mapper               x86_64    7:1.02.107-5.el7_2.5    updates    252 k
 device-mapper-event         x86_64    7:1.02.107-5.el7_2.5    updates    167 k
 device-mapper-event-libs    x86_64    7:1.02.107-5.el7_2.5    updates    169 k
 device-mapper-libs          x86_64    7:1.02.107-5.el7_2.5    updates    305 k
 dracut-config-rescue        x86_64    033-360.el7_2.1         updates     50 k
 dracut-network              x86_64    033-360.el7_2.1         updates     90 k
 kmod                        x86_64    20-5.el7                base       114 k
 krb5-libs                   x86_64    1.13.2-12.el7_2         updates    843 k
 libgudev1                   x86_64    219-19.el7_2.11         updates     66 k
 systemd                     x86_64    219-19.el7_2.11         updates    5.1 M
 systemd-libs                x86_64    219-19.el7_2.11         updates    358 k
 systemd-sysv                x86_64    219-19.el7_2.11         updates     53 k

Transaction Summary
================================================================================
Install  1 Package  (+17 Dependent packages)
Upgrade  2 Packages (+12 Dependent packages)

Total size: 9.8 M
Downloading packages:
Running transaction check
Running transaction test


Stderr from the command:



Transaction check error:
  file /usr/lib/systemd/system/blk-availability.service from install of device-mapper-7:1.02.107-5.el7_2.5.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
  file /usr/sbin/blkdeactivate from install of device-mapper-7:1.02.107-5.el7_2.5.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
  file /usr/share/man/man8/blkdeactivate.8.gz from install of device-mapper-7:1.02.107-5.el7_2.5.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64

Error Summary
-------------

我对此原因并不清楚,因为我对 vagrant 并不是很熟悉,我只使用过两三次。那么我的第一个问题是:为什么会出现这种情况呢?

请注意,我认为我知道什么是 NFS,即它应该是一个挂载在客户机上的文件系统,允许同一台机器和主机共享文件夹和文件,对吗?


直到我找到了以下文章,我才能解决这个问题:

yum update 或 yum install 失败,因为 64 位和 32 位软件包结构之间存在软件包冲突?

至少对我来说,这个标题似乎与上面的问题没有任何关系。

我意识到,在上面的命令失败后,vagrant 机器实际上已经被初始化,我可以使用 vagrant ssh 连接到它,这就是我所做的。然后,在客户 vagrant 机器中(在执行 vagrant ssh 后),我执行了以下命令(这些命令与我刚提到的文章中指定的命令相同):

sudo yum install yum-utils
sudo package-cleanup --dupes
sudo package-cleanup --cleandupes

添加了这行代码:

exactarch=1

将内容添加到文件/etc/yum.conf,最后执行。

yum clean all
sudo yum update

我通过输入exit退出了vagrant虚拟机。我使用vagrant halt停止了虚拟机。然后我重新执行了最初的命令:

vagrant up --provision-with ansible

错误不再出现了。

我的第二个问题是:为什么执行上述教程中提到的命令以及我明确提到的命令可以解决问题?

当执行删除重复软件包的命令时,我注意到输出实际上并没有发现有重复的软件包。在我的情况下,似乎真正解决问题的命令只有(不确定):

yum clean all
sudo yum update

为什么这会真正解决问题?


我的一个想法是,这个盒子实际上已经过时了,因为将预安装的软件包更新到最新版本显然解决了问题...

2个回答

0

很不幸,您可能已经尝试了几个命令来解决问题,但原始安装并没有提供太多信息。

原始镜像可能存在一个包含错误的软件包,导致此次安装失败,但是sudo yum update通过安装更新的软件包来解决了这个问题。

也有可能是yum数据库损坏了,并且它认为nfs-utils或nfs-utils-lib的先决条件已经安装,因此没有安装,但是“clean”修复了yum数据库。

在yum-utils中的package-cleanup也是如此。

exactarch=1可能没有解决任何问题,因为您没有在任何地方指定特定的架构(假设原始镜像也没有)。

听起来您已经基本上解决了问题。还有其他需要帮助的吗?


0

CentOS 7的软件包中存在一个错误,导致了这个错误:

当仅更新设备映射器子软件包而不更新lvm2软件包时,如果文件在子软件包之间移动,可能会出现文件冲突。...为了避免从旧版本升级时出现问题,现在在软件包中明确定义了直接冲突,如果遇到,则会提供有关解决此冲突所需的最低版本的信息。

因此,更新lvm2是一种解决方案。我认为yum update解决了这个问题,因为软件包中添加的冲突已作为软件包信息的一部分从软件包存储库加载。因此,在Vagrant安装device-mapper时可能已经更新了lvm2,这个更新避免了错误。


相关问题:http://stackoverflow.com/questions/36439746/failed-to-install-r-on-centos-7。我觉得我无法链接这些问题。手动添加链接是否可能? - mm759

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接