.
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

Netatalk2 - UTF-8 パッチとインストール

以前公開していた FedoraCore2 /4 を CentOS-4.4 クリーンインストール環境で新たに書き起こしました。(2006/10/22)

Netatalkインストールにあたって

CentOS 4 / 4.4 では、Netatalk パッケージは提供されていません。また、FedoraCore で提供される Netatalk パッケージも OS9 を含めた相互乗り入れ環境は実現できません。

Netatalk のソースに、下記 ゴーゴー! 幕之介さん のサイトで紹介されているパッチを充てるか、srpm (ソースパッケージ)を参考にパッチファイルを作成し、rpmファイルを作成する必要があります。

※捕捉
パッチ処理が面倒な場合は、こちらでパッチ済パッケージが配布されていました。
インストール後に設定ファイルを修正するだけなので、楽です。 (試してません)
設定ファイルは、FC2パッケージと同じ、/etc/atalk となります。
http://wiki.fedora.jp/?Rpms%2Fnetatalk

自分で対応版rpmを作成する場合は、FC2のアップデートディレクトリから最新のソースパッケージを入 手し、ここで配布されているパッチファイルを specファイルに記述することでrpmパッケージを作成します。

ただし、apt や yum アップグレードを行うと書き換えられてしまうので注意が必要です。 アップグレード対象から外す場合は、specファイルでバージョン名は異なるものにしなければ、アップデートを行うとまた最初からやり直す必要がでてきます。上記で配布されているパッケージもパッケージ名を変えるように配慮されています。

必要なパッチ

導入にあたって下記の ゴーゴー! 幕之介さん のサイトを参考にさせて頂きました。 先に熟読されることをお勧めします。

参考 => netatalk2 & samba3

OS間の文字コードについて、パッチファイルの入手先 EUCファイル名から移行の際の注意点など、とても丁寧に紹介されています。

しかも特殊文字に関する問題を極力回避することが出来ます。DTP業界では、MacOS が必要とされるケースもあるようなので、とても有用な情報です。

詳細についてはそちらを参照頂くとして FedoraCore2 で異なる点ついてまとめています。尚、ここでは最初から UTF8環境で構築しますので EUC-JPからの移行についての問題については取上げていません。新規導入です。

FedoraCore2/4 CentOS 4 /4.4 の場合

  • RHELでは、gilbcとなります。CP932パッチに関しては現行バージョンで対応済なので、パッチを当てる必要はありません。
  • Samba3に関しても、対応バージョンの gilibc でインストールされるため、提供パッケージで対応できます。
  • Berkeley DBも現行バージョンで対応できますので、コンフィグオプションは必要ありません。自動で認識されました。 BerkeleyDBパス /usr/include/db4
  • OpenSLPに関してもパッケージが用意されているのでそれを利用しました。
    (DNS登録なしでホスト名指定が出来ます)

Linuxサーバに事前に必要なパッケージ

ここでは、CentOS 4.4 クリーンインストール環境でテストしました。以前紹介していた、FC2 / FC4 / CentOS-4 も共通します。(rpmのバージョンの差はある)

Netatalk と パッチ以外は、いずれも CentOS 4.4の標準パッケージで間に合います。

Berkeley DB (必須)

Berkeley DB が必要になります。CentOS や FedoraCore など RHEL系Linux では組み込まれていると思います。バージョンを選ぶようなので、詳細は ゴーゴー! 幕之介 さんのサイトを参照して下さい。

CentOS 4.4 では、パスを指定しなくても適切に認識します。

OpenSLP (無くても目的は果たせます)

FedoraCore や CentOS で KDE をインストールしている場合は入っていると思います。(konqueror が使用しているので) ただし、openslp-devel はインストールする必要があるかもしれません。

  • openslp-1.2.1-0.2.el4.rf
  • openslp-devel-1.2.1-0.2.el4.rf

OpenSLP を使用すると TCP オンリーで通常の AppleTalk ネットワークからアイコンをクリックする事で Netatalk サーバへ接続できるようになります。

また openslp-devel がないと、configure 時に openslp を検出できません。configure 時に以下のエラーが出ます。

configure: error: SLP installation not found

Netatalk をコンパイルする前に、先にインストールしておいてください。

# yum install openslp-devel

補足 ~ OpenSLPの必要性について

ネットワークブラウザから、ローカルネットワークでNetatalk ファイルサーバがホスト名で表示できるようになります。利用しない場合は、セレクタから IP アドレスを入力する事で接続可能ですので必ずしも SLP は必要ではありません。

いずれの場合も、マウントしたショートカットを利用する方が多いと思いますので、ネットワークブラウザに表示させる必要がない場合は必要ありません。大所帯でリテラシーの乏しいユーザーがいる場合は、使えた方が便利です。

また、複数のサーバでnetatalk でファイルサーバを構築する場合、サーバの host neme が重複しては接続する事が出来なくなりますので注意して下さい。

/etc/hosts

OpenSSL (無くても目的は果たせます)

通常のインストールで含まれていると思います。無ければ同様にインストールして下さい。 AppleShare では、バージョン より DHX をサポートしています。これは、認証をSSL暗号化で保護します。OS 8.6 以前の旧世代の Mac OS では多くの AppleShare が存在しておりクライアント側も DHX をサポートした AppleShare を使用します。

UTF-8 準拠 Netatalk ソースの準備

必要なソース(Netatalk と パッチ)の調達、パッチの適用方法は ゴーゴー! 幕之介 さんのサイトを参考に必要なソースを調達して下さい。

面倒な方は CVS 版 がお勧めです。また、同じ手順で rpm を作成されている方もいます。自分は試していません。

依存コード解決にはゴーゴー! 幕之介さんの提供するパッチが必要です。utf8.c / util_unistr.c のバージョンは合わせて下さい。バージョンが異ると make 出来ないと思います。

コンパイルとインストール

必要なソースが準備できたら、コンパイルを行ないます。ここでは、SSL による認証時の暗号化保護、Shadow パスワード(格納パスワードの暗号化)を使用し安全性に考慮します。また、SLP 対応でコンパイルします。

尚、SSL による暗合化を行ないたい場合は、クライアント側が対応している必要があります。具体的には、DHX に対応した AppleShare 機能拡張が必要になります。

展開したディレクトリへ移動し、以下のオプションを指定してコンパイルします。

# ./configure --enable-srvloc=/usr/sbin --sysconfdir=/etc --enable-redhat --with-ssl-dir=/usr/lib

主要なコンパイルオプションの内容は以下の通りです。

  • --enable-srvloc=/usr/sbin
    • slpd (OpenSLP) のパスを指定します。
  • --sysconfdir=/etc
    • 設定ファイルを格納するディレクトリを指定します。指定しない場合は /usr/local/netatalk になります。
  • --enable-redhat
    • ディストリビューションを指定します。CentOS やFedoraCore では redhat になります。適切な起動スクリプトがインストールされます。必須オプションです。指定できるディストリビューションにはsuse / gentoo / cobalt / netbsd / debian があります。
  • --with-pam --with-shadow
    • pam認証、shadow パスワードを使用します。最近のディストリビューションでは利用可能です。つまり、Linux アカウントを使用します。自動で認識されるので指定の必要はありません。
  • --with-ssl-dir=/usr/lib
    • SSLに対応します。HDX に対応させるためのオプションではないようです。DHX は openssl がインストールされていれば 指定しなくても利用可能になります。
  • --with-logfile=/var/log/netatalk.log
    • このオプションをつけた場合、/var/log/messages 出力されるログをnetatalk.log にも出力するようになります。このオプションはバグを引き起こす可能性が高いそうで、指定しないようにして下さい。

その他のコンパイルオプションは、以下のコマンドで確認して下さい。面白そうなオプションもあります。

# ./configure --help

無事、コンパイルが通ったら以下のように表示されます。

Using libraries:
LIBS = -lnsl -ldl -L$(top_srcdir)/libatalk
CFLAGS = -I$(top_srcdir)/include -g -O2 -I$(top_srcdir)/sys
SSL:
LIBS = -lcrypto
CFLAGS = -I/usr/include/openssl
PAM:
LIBS = -lpam
CFLAGS =
WRAP:
LIBS = -lwrap
CFLAGS =
BDB:
LIBS = -ldb-4.2
CFLAGS = -I/usr/include/db4
SRVLOC:
LIBS = -lslp
CFLAGS =
CUPS:
LIBS = -lcups -lssl -lcrypto -lnsl
CFLAGS =
Configure summary:
Install style:
redhat
AFP:
AFP 3.x calls activated: yes
Large file support (>2GB) for AFP3: yes
DDP enabled: yes
CNID:
backends: cdb dbd last
UAMS:
DHX (PAM SHADOW) ← SSL 認証対応
RANDNUM (PAM SHADOW)
passwd (PAM SHADOW)
guest
Options:
CUPS support: yes
SLP support: yes ← SLP 対応
tcp wrapper support: yes
quota support: yes
admin group support: yes
valid shell check: yes
cracklib support: no
dropbox kludge: no
force volume uid/gid: no
Apple 2 boot support: no

無事、configure が修了したら、この内容でコンパイルします。

# make

以前に使用していたNetatalk がある場合は、設定ファイルをバックアップ

# mv /etc/netatalk /etc/netatalk.bk

インストールします。

# make install
# make clean

続いて Netatalk のデーモンについて説明します。

bottom_mark
ページ最上部
ページ最上部 前のページ