我的 Red Hat Enterprise Edition 4 附带 Samba 版本 3.0.10,它不支持“继承所有者”属性,而该属性对于实现拒绝删除一次写入多次读取共享至关重要(例如,在 Google 上搜索 a-shared-drop-box-using-samba)。
(顺便说一句,如果有人知道不更新 Samba 的另一种方法,我洗耳恭听!)
我不太习惯从源代码构建,之后小时通过谷歌搜索(不,我没有 Red Hat 订阅,所以我不能直接运行 up2date 命令),我找到了一大堆 rpmhttp://ftp.sernet.de/pub/samba/tested/rhel/4/i386/(RHEL 4 的 Samba 3.2.15)...
接下来我尝试更新他们与rpm -U --nodeps命令,但出现文件冲突错误。因此我继续使用 rpm 的- 力量选择。但这一切都没有带来任何好处。/usr/sbin/smbd -V仍然返回旧版本。
截至目前,rpm -qa | grep samba返回,
samba3-client-3.2.15-40.el4
samba-3.0.10-1.4E.2
samba-client-3.0.10-1.4E.2
system-config-samba-1.2.21-1
samba3-3.2.15-40.el4
samba-common-3.0.10-1.4E.2
samba3-winbind-3.2.15-40.el4
我无法删除较旧的,因为
samba-common >= 3.0.8-0.pre1.3 is needed by (installed) gnome-vfs2-smb-2.8.2-8.2.x86_64
libsmbclient.so.0()(64bit) is needed by (installed) kdebase-3.3.1-5.8.x86_64
libsmbclient.so.0()(64bit) is needed by (installed) gnome-vfs2-smb-2.8.2-8.2.x86_64
现在有一大堆依赖关系我不敢碰:)
在此阶段,欢迎任何和所有的指示。提前致谢!
答案1
我不会害怕从源代码构建:它很有趣,也很有回报。你唯一会遇到的大问题和你遇到的问题是一样的已经具有:依赖项。要解决依赖性问题,您需要一个包管理器。
嗯。你可以安装百胜,这就是您在 Fedora 上而不是 up2date 上所得到的...它在处理依赖关系方面相当不错,并且谷歌搜索 Yum 和 RHEL 和 Repository 会给出大量匹配结果,因此那里有为您的系统构建的 RPM 的存储库。
如果是我,我可能会继续升级 KDE 和 Gnome,如果安装新版本的 samba 真的那么重要的话(其实这是个谎言。我喜欢命令行,所以我会继续破坏 kde 和 gnome,不再回头)。解决这种依赖性问题才是关键所在。
答案2
RPM 是为了解决依赖关系而构建的。您找到的较新的 Samba RPM 是为不同的系统构建的,并且针对不同版本的库进行编译。
您不应该尝试强制安装可能不适用于您的系统库的二进制文件,而应该构建自己的 RPM并安装它们。查找您想要的 Samba 版本的 SRPM,以便轻松安装,然后通读 一些很好的教程 和书籍了解这个过程。
优点是:
如果您有多台机器使用相同的发行版,那么构建自己的本地包可以很容易地在任何地方安装;
您可以避免破坏与其他系统包的依赖关系。
这种方法有几个缺点:
它需要安装编译 Samba 所需的所有 *-dev 包(以及构建 SRPM 所需的任何包);
它可能需要升级一些依赖项,只是为了让它编译(通常通过相同的过程);
它会以未经过发行版测试过程的软件的形式给您的系统带来潜在问题。
或者,您可以获取 Samba 的源 tarball,安装到 /usr/local,然后删除所有 Samba RPM,转而使用编译后的版本。但正如您所注意到的,许多其他软件包都依赖于 Samba,因此这又是一大麻烦。构建您自己的 RPM 并进行升级比尝试强制 RPM 保留缺少依赖项的软件包要友好得多。
答案3
使用 Samba 版本企业 Samba。这些是特定于发行版的构建,它们非常可靠。
答案4
我通过安装 libsmbclient-3.0.33 解决了 RHEL 5.4 升级问题,并且在更新后我排除了 libsmbclient。