Netatalk 3 は他バージョンと共存できないので、以前に Netatalk の古いバージョンを使ったことがあるなら、 “Netatalk 2 からのアップグレード”の章をまず読んでいただきたい!!!
この件の最新の情報は GitHub の netatalk のページを一読いただきたい。
https://github.com/Netatalk/netatalk
Netatalk のバイナリーパッケージは、いくつかの Linux、Unix ディストリビューションに含まれている。通常の配布元も見たいだろうと思う。
第三者が提供しているパッケージ リポジトリも参照する手もある。例えば、Red Hat 派生 Linux ディストリビューションの為のrpmfind Solaris 系 OS の為の OpenCSW 又は macOS の為の Homebrew か MacPorts 。
tar で固めた Netatalk 安定版ソースコードは GitHub の Netatalk リリースページにある。
Git レポジトリ のダウンロードは迅速で容易である:
Git がインストールしてあることを確認する。which git は git のパスを示してくれるはずである。
$
which git
/usr/bin/git
ソースを取得してみよう。
$
git clone https://github.com/Netatalk/netatalk.git netatalk-code
Cloning into 'netatalk-code'... remote: Enumerating objects: 41592, done. ... Resolving deltas: 100% (32227/32227), done.
上記で Git リポジトリから、Netatalk のソース全体の完全でまっさらのコピーを含む
netatalk-code
という名前のローカルディレクトリが作成される。
ブランチやタグを指定しない場合は、最先端の開発コードが取得さる。例えば、最新の安定した Netatalk 3.1 コードを入手するには、「branch-netatalk-3-1」という名前のブランチをチェックアウトする:
$
git checkout branch-netatalk-3-1
レポジトリのコピーを最新の状態にしておきたい場合、適宜以下を実行する。
$
git pull
書き込みの時に最低でもバージョン 4.6 が必要となる。
推奨バージョンは 5.3 である Sleepycat ライセンスで提供された最終リリースである。
Libgcrypt
OS X 10.7 とそれ以降で必須となった DHX2 のために Libgcrypt が必要である。
libevent
netatalk サービス コントローラー デーモンの内部イベント コールバックは、 libevent バージョン 2 に基づいて構築されている。
Netatalk はその機能性を拡充するために以下のサードパーティソフトウェアを使用することができる。
OpenSSL / LibreSSL / WolfSSL
OpenSSL 1.1 又は LibreSSL は、Classic Mac OS に最も強力なパスワード暗号化を提供する DHCAST128 (別名 DHX) UAM に必要。Random Number UAM もこのライブラリを使用している。
netatalk 3.2.0 以降は、バンドルされている WolfSSL ライブラリがデフォルトの DHX プロバイダーとして netatalk とともに配布されている。
Netatalk はメタデータのバックエンドとして Tracker を使用する。最近の Linux ディストリビューションには、Tracker のバージョン 0.7 以来使用可能な libtracker-sparql が提供されている。
Samba プロジェクトの talloc ライブラリと、bison の様な Yacc パーサ、 そして flex の様な字句解析ツールも必要になる。
Bonjour(Zeroconf としても知られる)のための mDNSresponderPOSIX または Avahi
サービス探索のために Mac OS X 10.2 及び以降のバージョンは Bonjour(Zeroconf としても知られる)を使用する。AFP ファイルサーバー又は Time Machine サービスをクライアントに通知することができる。
Avahi は DBUS サポートのもとで (
--enable-dbus
) ビルドされなければならない。
TCP wrappers
TCPD または LOG_TCP としても知られる Wietse Venema のネットワークロガー。
セキュリティオプションは: ホストごとドメインごとかつ/ないしはサービスごとのアクセス制御; ホスト名のなりすましあるいはホストアドレスのなりすまし検出; 早期警告システムを実装するブービートラップ;である。
PAM はユーザー認証の柔軟な機構を実現する。PAM は SUN Microsystems によって作り出された。 Linux-PAM はアプリケーションがどのようにユーザーを認証するのかを選択できるようなローカルシステム管理を実現する共有ライブラリーのセットである。
Kerberos V
Kerberos v5 は、マサチューセッツ工科大学で発明されたクライアント サーバー ベースの認証プロトコルである。 Kerberos ライブラリを使用すると、netatalk は既存の Kerberos インフラストラクチャで認証するための GSS UAM ライブラリを生成できる。
ACL と LDAP
LDAP は ACL の高度な権限スキームと連携して動作する、オープンな業界標準のユーザー ディレクトリ プロトコルである。 一部のオペレーティング システムでは、ACL および LDAP ライブラリがシステムに組み込まれているが、 他のオペレーティング システムでは、この機能を有効にするためにサポート パッケージをインストールする必要がある。
MySQL
MySQL 互換のクライアント ライブラリを活用することで、拡張性と信頼性の高い MySQL CNID バックエンドを使用して netatalk を構築できる。 管理者は、このバックエンドで使用する別のデータベース インスタンスを提供する必要がある。
D-Bus と GLib バインディング
afpstats
ツールに使われ、afpd サーバ状況を参照する子ができる。
iconv
iconv はたくさんの文字エンコーディングの変換ルーチンを提供する。Netatalk は iconv を使用して内蔵されていない ISO-8859-1 のようなキャラクターセット変換を実現する。 glibc システムでは glibc の提供する iconv 実装を使うことができる。さもなくば GNU libiconv 実装を使うことができる。
CrackLib
Random Number UAM と netatalk の固有パスワード管理ツール
afppasswd
を使用する際、CrackLib を使う事によって
弱いパスワードの設定を防ぐことができる。
Perl
afpstats
、
apple_dump
、
asip-status
又は
macusers
という管理者向けツールは Perl 5.8 以降の実行環境を
使用している。下記 Perl モジュールは必須:
IO::Socket::IP (asip-status) 又は
Net::DBus (afpstats)。
DocBook XSL と xsltproc
本マニュアル含めての netatalk ドキュメンテーションは XML 様式に作成され DocBook XSL スタイルシートを適用し生成されている。フォーマット変換は xsltproc で実施している。
ビルドシステムの使い方、コードのコンフィグ又はビルドの手順書は INSTALL ファイルを参考してください。
特定の OS に対しての具体的なビルド事例は Netatalk をソースコードからコンパイルする 付録を参考してください。
Netatalk の配布物は、
いくつかのオペレーティングシステム固有のスタートアップ・スクリプト・テンプレートを備えている。
これらテンプレートは、コンパイル前に指定できる。
現時点で、systemd、openrc、Linux、BSD、Solaris、そして macOS 向けのテンプレートが用意されている。
ビルドスクリプトにシステムタイプを指示することで、どのスタートアップスクリプト
を生成してインストールするのか選ぶことができる。
スタートアップスクリプトを自動でインストールさせるには、
with-init-style
オプションで有効なものを加える。
Linux ディストリビューションの新しいリリースは頻繁に出てくるし、 上記で触れたようなほかのシステムのスタートアップの手続きもまた変わりうる。 それ故、盲目的にスタートアップスクリプトをインストールするのではなく、 自分のシステムで動作するであろうかということをまず見てみる、というのがおそらくいい考えである。
Linux ディストリビューションの RPM あるいは BSD のパッケージのような所定のセットアップの一部として使用する場合、 諸々の事は概ねよしなに取り計らわれるだろう。 それ故、Netatalk そのものをコンパイルするユーザーには概ね下記のことが当てはまる。
いかなるスタートアップスクリプト機構を使っていても、下記のデーモンは必要である:
スタートアップスクリプトは無くても、root ユーザとして netatalk デーモンを実行し、 使い終わったら SIGTERM で終了させることができす。
加えて、設定ファイル afp.conf
が正しい場所にあるか確認する。