netatalk 3.1.3をdebian化してUbuntu 14.04にdpkgでインストール[追記あり]
一年前、netatalk 3.0のプライベートdebianパッケージを作ってインストールしています。
「debian化」と言っているのは、debianパッケージを作る事を指しています。私が勝手に呼んでいます。
今回、netatalk 3.1.3でdebian化をしようと思ったのは、前回作ったnetatalk 3.0用のパッケージでは、netatalk 3.1.3をインストールできないと言うコメントを貰ったためです。今回作ったパッケージは、上手く動いている様です。
最初に断っておきますが、私はdebianのメインテナーではあります。なので、やっつけ仕事的にdebパッケージを作っています。
debianパッケージの方は、2.2.x系から進展がありません。どうされてしまったのでしょうか? 3月頃から、3.1.x系に動きがあるらしいですが…。
本記事では、次のページのやり方を基本としています。ありがとうございます。
netatalk 3.1.3をdebian化して、Ubuntu 14.04にインストールする方法は次の通りです。
- debianパッケージを作るために必要なパッケージをインストール
- ビルドの準備
- netatalkのインストールに必要なパッケージをインストール
- debianパッケージの作成
- 出来上がったdebinaパッケージのインストール
- netatalk (afp.conf) の設定
- netatalkの起動
- netatalkの動作確認
何か質問があれば、コメントをお願いします。
1. debianパッケージを作るために必要なパッケージをインストール
まず、debianパッケージを作るために必要とされるパッケージをインストールします。
$ sudo apt-get install build-essential dpkg-dev fakeroot dh-make
2. ビルドの準備
次に、ダウンロードしておいたnetatalk 3.1.3とオリジナルのnetatalk 2.2.2用のパッケージを展開します。
$ tar xvjf netatalk-3.1.3.tar.bz2 $ tar xvzf netatalk_2.2.2-1ubuntu2.debian.tar.gz
netatalk 3.1.3とnetatalk 2.2.2 debianパッケージは、以下のウェブサイトからダウンロード出来ます。
(追記 2014-07-19 10:54 netalk 2.2.2のソースパッケージは、次の方法でも取得できます。
$ apt-get source netatalk $ ls netatalk-2.2.2 netatalk_2.2.2-1ubuntu2.debian.tar.gz netatalk_2.2.2-1ubuntu2.dsc netatalk_2.2.2.orig.tar.gz
“netatalk_2.2.2-1ubuntu2.debian.tar.gz"を使って下さい。
)
次に、dh_makeで、debianパッケージを作る環境を準備します。
$ ls debian netatalk-3.1.3 netatalk-3.1.3.tar.bz2 netatalk_2.2.2-1ubuntu2.debian.tar.gz $ cd netatalk-3.1.3/ $ dh_make --createorig --single Maintainer name : oichi Email-Address : oichi@example.com Date : Sun, 13 Jul 2014 11:10:16 +0900 Package Name : netatalk Version : 3.1.3 License : blank Type of Package : Single Hit to confirm: Done. Please edit the files in the debian/ subdirectory now. netatalk uses a configure script, so you probably don't have to edit the Makefiles.
そして、オリジナルの"rules"と"control"を、2.2.2パッケージからコピーします。
$ cp -p ../debian/rules debian/rules $ cp -p ../debian/control debian/control
まずは、debian/rulesを修正します。
040|DEB_CONFIGURE_EXTRA_FLAGS := \
041| --with-init-style=debian \
042| --with-cracklib \
043| --enable-krbV-uam \
044| --with-pam-confdir=/etc/pam.d \
045| --with-dbus-sysconf-dir=/etc/dbus-1/system.d \
046| --with-tracker-pkgconfig-version=0.16 \
047| --enable-fhs \
実は、ここだけではなく他にも直す所がたくさんあります。また、debian/controlも修正する必要があります。パッチを用意しましたので、右クリックでダウンロードしてから、お使い下さい。
パッチの当て方は、次の様にします。
$ patch -p0 < ~/Downloads/debian-netatalk-3.1.3.patch
3. netatalkのインストールに必要なパッケージをインストール
netatalkに必要なパッケージをインストールします。debianパッケージ用の物も含んでいます。
$ sudo apt-get install cdbs devscripts debhelper dh-buildinfo libltdl3-dev d-shlibs libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libmysqlclient-dev libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev tracker libtracker-sparql-0.16-dev libtracker-miner-0.16-dev hardening-includes
4. debianパッケージの作成
パッケージをビルドします。
$ dpkg-buildpackage -us -uc -rfakeroot -d
ちょっと時間がかかります。
“-us -uc"は、サインしないオプションです。オプション無しのパッケージをアップロードされる事は禁止されています。また、"-d"オプションは、依存関係を無視するためです。
5. 出来上がったdebinaパッケージのインストール
一つ上のディレクトリに、debianパッケージができているはずです。dpkg -iコマンドでインストールします。
$ cd .. $ ls debian netatalk_2.2.2-1ubuntu2.debian.tar.gz netatalk_3.1.3-1_amd64.changes netatalk-3.1.3 netatalk_3.1.3-1.debian.tar.gz netatalk_3.1.3-1_amd64.deb netatalk-3.1.3.tar.bz2 netatalk_3.1.3-1.dsc netatalk_3.1.3.orig.tar.xz $ sudo dpkg -i netatalk_3.1.3-1_amd64.deb
インストールされたパッケージを確認します。
$ which afpd /sbin/afpd $ afpd -V afpd 3.1.3 - 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: AFP versions: 2.2 3.0 3.1 3.2 3.3 3.4 CNID backends: dbd last tdb mysql Zeroconf support: Avahi TCP wrappers support: Yes Quota support: Yes Admin group support: Yes Valid shell checks: Yes cracklib support: Yes EA support: ad | sys ACL support: Yes LDAP support: Yes D-Bus support: Yes Spotlight support: Yes DTrace probes: Yes afp.conf: /etc/afp.conf extmap.conf: /etc/extmap.conf state directory: /var/netatalk/ afp_signature.conf: /var/netatalk/afp_signature.conf afp_voluuid.conf: /var/netatalk/afp_voluuid.conf UAM search path: /lib/netatalk/ Server messages path: /var/netatalk/msg/
6. netatalk (afp.conf) の設定
afp.confを書き換える前に、netatalkサービスを止めます。afp.confは、/etcにあります。
$ sudo service netatalk stop $ sudo vi /etc/afp.conf
上記のインストール例の通りに設定します。動作確認には十分です。
[Global]
mac charset = MAC_JAPANESE
[Homes]
basedir regex = /home
[Test Volume]
path = /export/test1
[My Time Machine Volume]
path = /export/timemachine
time machine = yes
ディレクトリも準備しておきます。
$ sudo mkdir -p /export/test1 $ sudo chmod 777 /export/test1/ $ sudo mkdir /export/timemachine $ sudo chmod 777 /export/timemachine/
ACLとEA(拡張属性)を使いますので、/etc/fstabで設定していない場合は、次の様に設定して下さい。
$ vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/sda1 during installation
UUID=oooooooo-oooo-oooo-oooo-oooooooooooo / ext4 defaults,user_xattr,acl,errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=oooooooo-oooo-oooo-oooo-oooooooooooo none swap sw 0 0
修正が終わったら、"/"を再マウントします。
$ sudo mount -o remount /
これで、ACLとEAが使える様になったはずです。
7. netatalkの起動
netatalkを起動します。また、Finderで見つけられる様に、avahi-daemonも動かします。.
$ sudo service avahi-daemon start $ sudo service netatalk start
これで、FinderからUbuntuのnetatalkを見つけられるはずです。
8. netatalkの動作確認
私は、netatalkをインストールした時は、いつも次の確認をしています。
OS X 10.9.4 | |
---|---|
サーバーを見つけられるか? | OK |
フォルダを作れるか? | OK |
MacからUbuntuにコピーできるか? | OK |
UbuntuからMacにコピーできるか? | OK |
コピーされたファイルのパーミッションはどうか? | OK |
コピーされたファイルのタイムスタンプはどうか? | OK |
ファイルの拡張属性はどうか? | OK |
“:”の様な特殊文字はどうか? | OK |
長いファイル名はどうか? | OK |
TimeMachineでバックアップできるか? | OK |
動いている様です。
付録: パッチ適用済み"rules"と"control"
パッチ適用済み"rules"(抜粋)。
040|DEB_CONFIGURE_EXTRA_FLAGS := \
*041| --with-init-style=debian \
*042| --with-cracklib \
*043| --enable-krbV-uam \
*044| --with-pam-confdir=/etc/pam.d \
*045| --with-dbus-sysconf-dir=/etc/dbus-1/system.d \
*046| --with-tracker-pkgconfig-version=0.16 \
*047| --enable-fhs \
048|
*049|#DEB_INSTALL_EXAMPLES_netatalk = debian/examples/*
077|# Rename files w/ manpage references to avoid namespace conflicts
078|# * uniconv → netatalk-uniconv
079|# * install netatalk-uniconv as system binary
080|bindir=debian/netatalk/usr/bin
081|man1dir=debian/netatalk/usr/share/man/man1
*082|binary-post-install/netatalk::
*083|#mv $(bindir)/uniconv $(bindir)/../sbin/netatalk-uniconv
*084|#perl -p -e 's/(?>!Title: )(uniconv)\\b/netatalk(?(1)\\-)$$2/g;s/(TH "UNICONV" )"1"/$$1"8"/' <$(man1dir)/uniconv.1 >$(man1dir)/../man8/netatalk-uniconv.8
086|#rm $(man1dir)/uniconv.1
092|# Remove unnecessary files
*093|binary-post-install/netatalk::
*094|#rm debian/netatalk/usr/bin/netatalk-config
095|#rm debian/netatalk/usr/lib/libatalk.*
096|rm debian/netatalk/usr/share/man/man1/afppasswd.1
097|rm -r debian/netatalk/usr/include
*098|rm -r debian/netatalk/usr/share/aclocal
*099|#rm -r debian/netatalk/var
100|#rm debian/netatalk/usr/lib/netatalk/*.la
パッチ適用済み"control"(抜粋)。
006|Build-Depends: autotools-dev,
007| cdbs (>= 0.4.72~),
008| devscripts,
009| debhelper,
010| dh-buildinfo,
*011| libltdl3-dev,
*012| d-shlibs,
013| libssl-dev,
*014| libgcrypt11-dev,
*015| libkrb5-dev,
*016| libpam0g-dev,
*017| libwrap0-dev,
*018| libdb-dev,
019| libmysqlclient-dev,
020| libavahi-client-dev,
*021| libacl1-dev,
*022| libldap2-dev,
*023| libcrack2-dev,
*024| systemtap-sdt-dev,
*025| libdbus-1-dev,
*026| libdbus-glib-1-dev,
*027| libglib2.0-dev,
*028| tracker,
*029| libtracker-sparql-0.16-dev,
030| libtracker-miner-0.16-dev,
031| hardening-includes
[amazonjs asin="4877833579" locale="JP"]
ディスカッション
コメント一覧
まだ、コメントがありません