使用源代码 rpm 安装 Netatalk

Netatalk 是 Apple AFP(Apple Filing Protocol)文件服务器的 Linux 系统上的一个开源实现,用于在 Apple Macintosh 上挂载 ext3/ext4 文件系统。虽然 Snow Leopard(Darwin 10)对我来说提供了更好的 NFS4 支持,但是如果运行一个 NFS4 服务器的话,看起来还是达不到生产质量的要求,这也是我们可能使用 AFP/netatalk 作为替代的最主要的原因。 另外一个原因是你可能希望服务器能够显示在 OS X 的 Finder 侧边栏(为了更简单的拖放工作),并且将来可能需要保持选项打开以把它作为一个时间机器备份卷使用。

1. 需要的软件包和依赖

Netatalk 依赖于以下软件包:

因此,如果还没有安装的话,首先需要安装这些软件包。

yum install {openssl,pam,db4,libgcrypt}-devel
yum install libtool cracklib tcp_wrappers

<!> 注意: cracklib/cracklib-devel, quota/quota-develtcp_wrappers/tcp_wrappers-devel 在 CentOS 中是集成在它们的主软件包中的 (比如 cracklib, quota 和 tcp_wrappers), 因此不需要安装任何 *-devel 软件包(也获取不到这些软件包)。为了满足依赖关系,automakeautoconf 会自动安装。

2. 准备构建环境

如果还不存在,那么必须创建以下目录。

mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

<!> 第二个命令会覆盖任何系统中可能已经存在的 .rpmmacros 文件。

然后下载并安装源代码 rpm。我从 kojipkgs.fedoraproject.org 下载了 64 位的 V2.0.5 版本。需要根据目标架构选择合适的 rpm。

wget http://kojipkgs.fedoraproject.org/packages/netatalk/2.0.5/2.fc13/src/netatalk-2.0.5-2.fc13.src.rpm
rpm -ivh --nomd5 netatalk-2.0.5-2.fc13.src.rpm

<!> 注意: 我安装的时候产生了 "MD5 sum mismatch" 的错误,因此我使用了 --nomd5 来忽略这个问题。

上文中已经提到,cracklib, quota 和 tcp_wrappers 的 -devel 软件包是集成在主软件包中的,在进行后续工作前,首先需要适当地修改 netatalk.spec(在 ~/rpmbuild/SPECS 下)文件中的 BuildRequires 行的内容 。在我的系统上,编辑之后的行看起来如下:

BuildRequires: cracklib openssl-devel pam quota libtool automake autoconf db4-devel pam-devel \
tcp_wrappers libgcrypt-devel

rpmbuild 命令必须可用以构建 rpm (你的系统中可能存在 rpm 命令,而不是 rpmbuild)。如果 rpmbuild 还没有安装,那么也需要进行安装。

sudo yum install rpm-build

3. 安装源代码 rpm

切换目录到 SPECS,执行如下命令以安装 netatalk 软件包。

cd ~/rpmbuild/SPECS
rpmbuild -ba netatalk.spec
cd ../RPMS/`uname -i`/
sudo rpm -ivh netatalk-2.0.5-2.x86_64.rpm

大功告成!!如果一切进展良好,在按照需求修改了 [/etc/atalk/] afpd.confAppleVolumes.default 之后,这个版本的 Netatalk 应该可以完美的开始工作。

<!> 注意: 对于 Netatalk 2.0,默认的安装选项是 --without-logfile,只有在使用了 --with-logfile 构建 Netatalk 时日志功能才能使用。因此, /var/log/messages 和 /var/log/secure 一定没有任何东西。要启用日志,必须要在构建完成之后在 afpd.conf 中增加 -setuplog,之后日志的内容应该出现在 /var/log/messages 中。

Translation of revision 22

zh/TipsAndTricks/UsingNetatalk (last edited 2019-12-09 09:11:30 by anonymous)