Ubuntu 9.10にnetatalk 2.1.2インストール[追記・訂正あり]
PowerMac G4/MDDのUbuntu 9.10に、netatalk 2.1.2をインストールしました。まだ、Ubuntuが9.10なのは、アップグレードするのが面倒だからです。そのうち、アップグレードします。
netatalkの知識が無いときに、netatalkをapt-getでインストールしました。
$ sudo apt-get install netatalk
それによってインストールされたのは、2.0.4beta2と言うバージョン。古いです。
$ /usr/sbin/afpd -V afpd 2.0.4beta2 - Apple Filing Protocol (AFP) daemon of Netatalk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please see the file COPYING for further information and details. afpd has been compiled with support for these features: AFP3.1 support: Yes Transport layers: TCP/IP DDP CNID backends: cdb dbd-txn last SLP support: No TCP wrappers support: Yes Quota support: Yes Admin group support: Yes Valid shell checks: Yes cracklib support: Yes Dropbox kludge: No Force volume uid/gid: No afpd.conf: /etc/netatalk/afpd.conf AppleVolumes.system: /etc/netatalk/AppleVolumes.system AppleVolumes.default: /etc/netatalk/AppleVolumes.default UAM search path: /usr/lib/netatalk/
色々勉強して、netatalkを最新の物にすることにしました。
まずは、既存のnetatalkの削除です。
$ sudo /etc/init.d/netatalk stop $ sudo apt-get remove netatalk
インストールは、次のページを参考にしています。ありがとうございます。
netatalkのインストールに必要となるソフトが入っているか、調べてみました。
$ dpkg -l ii libslp1 1.2.1-7.5 OpenSLP libraries ii avahi-daemon 0.6.25-1ubuntu5.1 Avahi mDNS/DNS-SD daemon ii openssl 0.9.8g-16ubuntu3.1 Secure Socket Layer (SSL) binary and related ii libgcrypt11 1.4.4-2ubuntu2 LGPL Crypto library - runtime library ii db4.7-util 4.7.25-7ubuntu2 Berkeley v4.7 Database Utilities
必要な物は揃っていそうです。(実は、間違いでした。)
次の所から、netatalkのソースをダウンロードします。~/Downloads/に置きました。
ダウンロードしたファイルを展開し、configureします。
$ cd $ mkdir netatalk $ cd neteatalk $ tar xvzf ~/Downloads/netatalk-2.1.2.tar.gz $ cd netatalk-2.1.2 $ ./configure --enable-debian
うーん、configure失敗です。必要なソフトが入っていませんでした。やりなおします。
$ sudo apt-get install libdb4.6-dev $ sudo apt-get install libssl-dev (uams_dhx.soを使う時に必要) $ sudo apt-get install libgcrypt11-dev (uams_dhx2.soを使う時に必要) $ sudo apt-get install libslp-dev
avahi-daemonは、やはりインストール済みの様です。Berkley DBに、4.6を使っているのは、このバージョンで動くかを確かめたかったからです。
$ ./configure --enable-debian ¥ > --enable-srvloc ¥ > --prefix=/usr ¥ > --sysconfdir=/etc ¥ > --with-uams-path=/usr/lib/netatalk/uams ¥ > --with-message-dir=/usr/lib/netatalk/msg
うまく行きました。
Using libraries: LIBS = -L$(top_srcdir)/libatalk CFLAGS = -I$(top_srcdir)/include -D_U_="__attribute__((unused))" -g -O2 -I$(top_srcdir)/sys SSL: LIBS = -lcrypto CFLAGS = -I/usr/include/openssl LIBGCRYPT: LIBS = -lgcrypt CFLAGS = BDB: LIBS = -ldb-4.6 CFLAGS = SRVLOC: LIBS = -lslp CFLAGS = Configure summary: Install style: debian AFP: AFP 3.x calls activated: yes Large file support (>2GB) for AFP3: yes Extended Attributes: ad | sys DDP enabled: yes CNID: backends: dbd last tdb UAMS: DHX ( SHADOW) DHX2 ( SHADOW) RANDNUM ( SHADOW) passwd ( SHADOW) guest Options: CUPS support: no SLP support: yes tcp wrapper support: no 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 ACL support: no
–enable-srvlocをつけないと、SLP supportがyesになりませんでした。–prefix=/usr –sysconfdir=/etc –with-uams-path=/usr/lib/netatalk/uams –with-message-dir=/usr/lib/netatalk/msgは、apt-getでインストールされるnetatalkとなるべく合わせています。
いよいよ、コンパイル&インストールです。
$ make $ sudo make install
バージョンを確認します。
$ /usr/sbin/afpd -V afpd 2.1.2 - Apple Filing Protocol (AFP) daemon of Netatalk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please see the file COPYING for further information and details. afpd has been compiled with support for these features: AFP3.x support: Yes Transport layers: TCP/IP DDP CNID backends: dbd last tdb SLP support: Yes TCP wrappers support: No Quota support: Yes Admin group support: Yes Valid shell checks: Yes cracklib support: No Dropbox kludge: No Force volume uid/gid: No afpd.conf: /etc/netatalk/afpd.conf afp_signature.conf: /etc/netatalk/afp_signature.conf AppleVolumes.system: /etc/netatalk/AppleVolumes.system AppleVolumes.default: /etc/netatalk/AppleVolumes.default UAM search path: /usr/lib/netatalk/uams/ Server messages path: /usr/lib/netatalk/msg/
各種設定をします。
$ cd /etc/netatalk $ sudo vi afpd.conf $ sudo mv netatalk.conf /etc/default/netatalk $ sudo vi /etc/default/netatalk $ sudo vi AppleVolumes.default
/etc/netatalk/afpd.confには、次の内容を設定しました。
- -transall -uamlist uams_guest.so,uams_clrtxt.so,uams_dhx.so -maccodepage MAC_JAPANESE -unixcodepage UTF8 -slp
(追記 2010-07-02 00:16 SLPの為には、-slpが必要との事です。)
/etc/default/netatalkには、次の内容を設定しました。変更点のみ、列挙します。
AFPD_MAX_CLIENTS=50 ATALK_NAME=`/bin/hostname --short` ATALK_MAC_CHARSET='MAC_JAPANESE' ATALK_UNIX_CHARSET='UTF8' AFPD_UAMLIST="-U uams_guest.so,uams_clrtxt.so,uams_dhx.so"
/etc/netatalk/AppleVolumes.defaultには、次の内容を設定しました。
:DEFAULT: options:upriv,usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 dperm:0700 fperm:0600 ea:sys /home/username "username" allow:@username deny:admin /home/u_capsule "Ubuntu Capsule" options:tm volsizelimit:5000
元々設定されていた"~"は、コメントアウトします。
/home/usernameは、ログインディレクトリです。
/home/u_capsuleは、Time Machineのバックアップ用です。volsizelimit:5000は、5GiBと言う事です。実態に合わせて変更してください。
$ sudo mkdir /home/u_capsule $ sudo chown nobody:nogroup /home/u_capsule $ sudo chmod 775 /home/u_capsule
起動します。
$ sudo /etc/init.d/netatalk start
これで、アドレスを指定すれば、Macからマウントできる様になります。
書き疲れたので、avahi-daemonの設定は、また別の記事にします。avahi-daemonを設定しておくと、Macからの使い勝手が向上します。
(追記 2010-07-01 22:53)avahi-daemonの設定の記事を書きました。
(追記 2010-07-02 00:16)HATさんから、コメントで指摘がありました。ご指摘の通り、この記事のatalkd.confの設定は古いです。理由は、LANDISK HDL4-Gの設定をまねているからです。
(追記 2010-07-13 22:17)HATさんからコメントをいただきました通り、SLPの有効化には、/etc/netatalk/afpd.confに-slpオプションが必要でした。
avahiを切った状態で、SLPを有効化し、Tigerのマシンから見える事を確認しました。
ディスカッション
かなり古い設定を参考にしているようにみえます。
-transallだとAppleTalkも有効になりますが、これが必要なほど古いMacを持ってますか?
SLPを使うにはafpd.confで-slpをつけないと動作しません。これも古いMacじゃないと意味がありません。
uams_clrtxt.soは最近のMacではデフォルトで禁止になっているので、これも古いMacじゃないと意味がありません。
uams_dhx2.soを指定しないとlibgcryptを入れた意味がありません。
netatalk 近状
netatalk 2.1.2が出てます。 netatalk | Get netatalk at SourceForge.net Snow Leopardのバグにより、netatalk 2.0.xに接続すると問題が発生するので、2.1.2をおすすめします。(Solaris以外) 2.1.2は、(Openじゃない方の)Solarisでタイムアウトするバグがあります。これ以外のバグは特に報告されてないと思います。 インストール手順や設定については、以下のページをご覧ください。 Netatalk an…
HATさんへ、いつもコメントありがとうございます。
ご指摘の通り、古い設定を参考にしています。今回は、NAS(LANDISK Home)と設定を合わせる事に注力しています。
ですが、「AppleTalkは不要」に書かれています通り、今回の設定は、半端な物になっています。
見直してみようと思います。