我尝试在 CentOS 6.7 x64 系统上将 samba 从版本 4.0.0rc4 升级到 4.3.x。我发现以下 repo 包含所需的软件包:
http://download.opensuse.org/repositories/network:samba:STABLE/CentOS_6/network:samba:STABLE.repo
上市日期:
https://software.opensuse.org/download.html?project=network%3Asamba%3ASTABLE&package=samba
但是,当我将 repo 添加到 时遇到了冲突/etc/yum.repos.d
。运行 ayum update
结束时:
Transaction Check Error:
file /usr/lib64/libtalloc.so.2 from install of libtalloc2-2.1.5-84.1.x86_64 conflicts with file from package libtalloc-2.0.7-2.el6.x86_64
尝试安装 samba 4.3 会带来另外两个冲突:
Transaction Check Error:
file /usr/lib64/libtalloc.so.2 from install of libtalloc2-2.1.5-84.1.x86_64 conflicts with file from package libtalloc-2.0.7-2.el6.x86_64
file /usr/lib64/libtevent.so.0 from install of libtevent0-0.9.26-79.1.x86_64 conflicts with file from package libtevent-0.9.18-3.el6.x86_64
file /usr/lib64/libtdb.so.1 from install of libtdb1-1.3.8-95.1.x86_64 conflicts with file from package libtdb-1.2.10-1.el6.x86_64
有人使用过上面的那个 repo 并让它正常工作吗?或者有人安装了 samba 4.3 并能给我指出解决方案吗?
任何帮助都非常感谢。谢谢!
编辑:我添加了实际的存储库 URL,该 URL 标记为 CentOS 6,因此我假设这是一个 CentOS 存储库托管在 openSuSE - 确实如此。但是它包含 openSuSE 的开放构建服务包,而上面的特定包并不稳定。我把这个留在这里,以防其他人遇到类似的问题。
答案1
您不能在 CentOS 机器上使用 OpenSuse 存储库并期望它能正常工作。这是安装软件包的错误方法。
经过快速搜索,我找不到适用于 CentOS6 的 4.0.x 以上的 samba 软件包。您有两种可能:
- 尝试使用 CentOS7 软件包,带有 Samba 4.2.x
- 下载Samba源代码并编译
请注意,这两种方法都远非理想(但比使用其他发行版的软件包要好!)。
答案2
该 repo 可能在构建时就考虑到了 CentOS6,但是……好吧,我们假设有多个层次的原因表明这可能是一个坏主意。您对此持保留态度吗?好的。
您正在通过 samba 安装 samba,这很好,但为了避免您遇到的问题,其依赖项的名称被错误命名;打包者没有经验。因此,您需要解决依赖项问题,请记住,用 libtalloc2 替换 libtalloc 可能会导致其他一些应用程序在寻找 libtalloc 及其有效负载时出现故障,并且它们找不到已安装的 libtalloc。
尝试删除所有 samba 及其依赖项。实际上,最简单的方法是尝试安装被破解的 samba 包及其依赖项,然后删除所有冲突。涂抹、冲洗、重复。
从 IUS 安装 yum replace 插件。它们是更好的存储库,但我们只针对该插件。安装它,然后尝试
yum replace samba --replace-with samba
看看它是否能找出需要解决的间接依赖问题。它会像往常一样抱怨某些缺失的依赖项,但它会在您扣动扳机之前向您提供一个解决方案。在提交之前查看它并确定它是否有意义。或者您可以启动另一个虚拟机,因为这只是一个测试箱,上面没有任何重要的东西,对吗?
我认为您正在查看我的待办事项列表中的同一个存储库;但我计划将其连接到 github 上,并将其连接到另一个我不记得名字的构建器服务,然后半自动地更新软件包,这样维护就不会很麻烦。鉴于常规 alt 软件包源已经变得唯利是图,我们都在争先恐后地寻找另一个具有适当 AD+kerb 支持的 samba(但如果 RedHat 十年后仍然难以获得,那为什么要尝试呢?)