2010/03/07

CentOS5.X 設定 No.10 netatalk (AFP over TCP) No.01 追記有

Mac OSとの通信の為、AFPを実装しようと思います。

ファイルサーバの場合、
対Windowsなら、Samba
対Linuxなら、NFS
対Mac OSなら、AFP
という形になると思います。
Mac OSはNFSも使用できるので、NFSで代用する事も可能ですが、Macでの自動マントがうまく行かなかったので、AFPを実装してみようと思います。
各プロトコル等の説明や設定は以下を参照して下さい。
「netatalk and samba」

参考にしたサイトは
notohirogさんの「CentOS 5でAFPを使ってファイル共有を行うには」
うえちょこ@ぼろぐさんの「[mac]netatalk でmacのEclipseからVMware上のCentOSにアクセス」
です。

[root@CentOS]# wget http://www003.upp.so-net.ne.jp/hat/files/fedora/12/SRPMS/netatalk-2.1.0-0.1.69.beta1.fc12.src.rpm
[root@CentOS]# rpm -ivh netatalk-2.1.0-0.1.69.beta1.fc12.src.rpm
[root@CentOS]# cp -p /usr/src/redhat/SPECS/netatalk.spec /usr/src/redhat/SPECS/netatalk.spec.back
[root@CentOS]# vi /usr/src/redhat/SPECS/netatalk.spec
37行目に「# If you use CentOS, remove tcp_wrappers-libs」とあるので、39行目を以下のように変更します。
Requires: pam cracklib openssl cups-libs krb5-libs perl libgcrypt tcp_wrappers tcp_wrappers-libs

Requires: pam cracklib openssl cups-libs krb5-libs perl libgcrypt tcp_wrappers

47〜50行目に
# If you use CentOS, replace
# quota-devel -> quota
# cracklib-devel -> cracklib
# tcp_wrappers-devel -> tcp_wrappers
とあるので、52行目を以下のように変更する。
BuildRequires: pam libtool automake autoconf openssl-devel pam-devel cups-devel krb5-devel libgcrypt-devel quota-devel cracklib-devel tcp_wrappers-devel

BuildRequires: pam libtool automake autoconf openssl-devel pam-devel cups-devel krb5-devel libgcrypt-devel quota cracklib tcp_wrappers

# viで行数を指定するには「:set nu」
# 指定行にジャンプするには「指定行G」
# 「/CentOS」で検索した方が早いかもしれませんが。

[root@CentOS]# rpmbuild -bb /usr/src/redhat/SPECS/netatalk.spec
「エラー:ビルド依存性の失敗:」と出たら、パッケージが足りないので、yumでインストールして下さい。
因に自分は、pam-devel, cups-devel, libgcrypt-devel, db4-devel >= 4.6 が足りないと言われました。

db4-develは4.6以上でないといけないらしいが、CentOS5.4では4.3.29がインストールされる。
という事で、今までの方法では無理。
打開策として、netatalkのバージョンを下げる事にしよう。

参考サイトは
M.C.P.C.さんの「x86_64のCentOS 5.3にnetatalk 2.05RC1を入れてみた」
HATさんの「netatalk 2.1beta1 リリース [netatalk]」
「netatalk2.0.5のRPM置き場」を辿ると、ここまで来る。

[root@CentOS]# wget http://kojipkgs.fedoraproject.org/packages/netatalk/2.0.5/2.fc13/src/netatalk-2.0.5-2.fc13.src.rpm
[root@CentOS]#rpm -ivh netatalk-2.0.5-2.fc13.src.rpm
「エラー: アーカイブの伸長に失敗:」「MD5 チェックサムが適合しません。」だと。
[root@CentOS]# rpm -ivh --nomd5 netatalk-2.0.5-2.fc13.src.rpm
でMD5をチェックしないようにして回避。
警告はいくつか出ますが、気にせずに行きましょう。

/usr/src/redhat/SPECS/netatalk.specの内容で
「quota-devel」は「quota」に。
「cracklib-devel」は「cracklib」に。
「tcp_wrappers-libs」と「tcp_wrappers-devel」は「tcp_wrappers」に変更します。
[root@CentOS]# cp -p /usr/src/redhat/SPECS/netatalk.spec /usr/src/redhat/SPECS/netatalk.spec.back
[root@CentOS]# vi /usr/src/redhat/SPECS/netatalk.spec
[root@CentOS]# rpmbuild -bb /usr/src/redhat/SPECS/netatalk.spec
/usr/src/redhat/RPMS/配下にRPMが3つあればO.K.
[root@CentOS]# rpm -ivh /usr/src/redhat/RPMS/i386/netatalk-*2.0.5-2.i386.rpm
「エラー: 依存性の欠如:」「/usr/local/bin/perl は netatalk-2.0.5-2.i386 に必要とされています」
とでたので、「/usr/local/bin/perl」が必要らしい。
[root@CentOS]# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
とでるので、リンクはあるはず。
という訳で、
[root@CentOS]# rpm -ivh --nodeps /usr/src/redhat/RPMS/i386/netatalk-2.0.5-2.i386.rpm
でインストール。

/etc/atalk/配下が設定ファイルらしい。
後は適宜に変更する。
参考サイトは
らむの備忘録さんの「CentOS でAppleTalkServerを動かしてみる」
[root@CentOS]# cp -p /etc/atalk/netatalk.conf /etc/atalk/netatalk.conf.back
[root@CentOS]# vi /etc/atalk/netatalk.conf
ATALK_MAC_CHARSET='MAC_ROMAN'
↓日本語環境だから
ATALK_MAC_CHARSET='MAC_JAPANESE'

ATALK_UNIX_CHARSET='LOCALE'
↓サーバはUTF-8で統一しているから
ATALK_UNIX_CHARSET='UTF8'

ATALKD_RUN=yes
↓Apple TalkではなくTCPを使用するため?
ATALKD_RUN=no

[root@CentOS]# cp -p /etc/atalk/afpd.conf /etc/atalk/afpd.conf.back
[root@CentOS]# vi /etc/atalk/afpd.conf
最後に以下を追記
- -uamlist uams_dhx.so -savepassword -maccodepage MAC_JAPANESE -unixcodepage UTF8
[root@CentOS]# cp -p /etc/atalk/atalkd.conf /etc/atalk/atalkd.conf.back
[root@CentOS]# vi /etc/atalk/atalkd.conf
ポートが複数ある場合は、最後に使用するLANポートを追記
eth0
[root@CentOS]# cp -p /etc/atalk/AppleVolumes.default /etc/atalk/AppleVolumes.default.back
[root@CentOS]# vi /etc/atalk/AppleVolumes.default
最後に共有するフォルダの絶対パスを追記

[root@CentOS]# /etc/rc.d/init.d/atalk start
[root@CentOS]# chkconfig atalk on
iptablesを使用しているならば、TCPとUDPで548番を開ける事。
Macから「command + k」で「afp://[サーバのIP]」で接続できるはず。
自分は駄目だったので、設定の見直しですね。

追記
netatalk2.0.Xではシンボリックリンクが辿れないという問題はSambaと一緒。
2.1以降で辿れるようになっているらしい。
という訳で、現時点におけるnetatalkを実装する意味なし。
NFSを自動マウントする設定の見直しを優先事項としたいと思います。

3 件のコメント:

  1. atalkdを止めてるんだから、atalkd.confを設定する意味がありません。

    db4.6以上をソースからインストールしてやれば、たぶんnetatalk 2.1beta1もソースからインストールできると思います。

    返信削除
  2. hatさんへ
    >atalkdを止めてるんだから、atalkd.confを設定する意味がありません。
    なるほど。

    >db4.6以上をソースからインストールしてやれば
    そうなんですけど。
    なんか気が抜けたので、今回は見送りました。
    CentOSでdb4.6が出る前に、ソースからインストールしてみたいと思います。

    返信削除
  3. NFSだとNFDの問題が出ますよ。

    返信削除