iTuneServerを構築して音楽共有
気分がのらないけど、
どうしてもやっつけなくてはならない仕事(あんまり頭使わなくていいやつ)は
音楽聴きながらだーっとやる。
てなときにはiTunes立ち上げてるんですが、
- ノートPCでディスク容量も少ないためでかい音楽データはおきたくない。
- 同じネットワーク内で共有できたらいいよね。
ということで、あいてる開発サーバにiTuneServerを立てることにしました。
CentOS4.3にいれてみた。
howlインストール
http://www.porchdogsoft.com/products/howl/download.html
# wget http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz # tar xzvf howl-1.0.0.tar.gz # cd ./howl-1.0.0 # ./configure # make # make install
zlibインストール
※最初から入っていたので今回はやってない。
# cd /usr/lcoal/src # wget http://www.gzip.org/zlib/zlib-1.2.1.tar.gz # tar zxvf zlib-1.2.1.tar.gz # cd zlib-1.2.1 # ./configure # make # make install
libid3tagインストール
ID3タグ関連のライブラリらしい。いれるときに上のzlibが必要らしい。
# cd /usr/lcoal/src # wget prdownloads.sourceforge.net/mad/libid3tag-0.15.1b.tar.gz?download # tar zxvf libid3tag-0.15.1b.tar.gz # cd libid3tag-0.15.1b # ./configure # make # make install
ライブラリをシステムに認識させる。
# vi /etc/ld.so.conf /usr/X11R6/lib /usr/lib #以下追加。 /usr/local/lib
# ldconfig -v
ところでldconfigってなんだろ。。。
ldconfigは、動的リンカ(/lib/ld.so)による実行時の結合関係を設定する。
共有ライブラリ(/lib,/usr/libなど)に対して必要なリンクを作成。
上記から実行時の動的リンカの設定をこのldconfigコマンドで設定する。ということが読み取れる。
対象となるディレクトリを/etc/ld.so.configに記述する。通常は/etc/ld.so.confと/lib, /usr/libが対象。
./configureを実行して環境設定を行う際に、次のようなエラーメッセージが表示されることがある。
$ ./configure
(省略)
checking for XINE-LIB version >= 0.9.9... no
*** Could not run XINE test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding XINE or finding the wrong
*** version of XINE. If it is not finding XINE, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
***
configure: error: *** You should install xine-lib first ***
これは、必要なライブラリがインストールされていないか、
インストールしたライブラリがシステムに認識されていないときに発生する。
もし、ライブラリをインストールしていない場合は、必要なライブラリをインストールする。設定ファイルは以下。
/etc/ld.so.conf
なるほどー。
mt-daapdのインストール
http://www.mt-daapd.org/
いまはfireflyという名前になってるみたい。
http://www.fireflymediaserver.org/
http://sourceforge.net/project/showfiles.php?group_id=98211&package_id=105189
# cd /usr/local/src # wget http://downloads.sourceforge.net/mt-daapd/mt-daapd-0.2.4.2.tar.gz?modtime=1208618689&big_mirror=0 # tar xzvf mt-daapd-0.2.4.2.tar.gz # cd mt-daapd-0.2.4.2 # ./configure # make # make install
/usr/local/sbin/mt-daapd にインストールされた。
# cp contrib/mt-daapd /etc/init.d/ # cp contrib/mt-daapd.conf /etc/ # cp contrib/mt-daapd.playlist /etc/
mt-daapdの起動スクリプトファイルが少し間違っているので修正。
[ -e /etc/daapd.conf ]
の行を
[ -e /etc/init.d/mt-daapd.conf ]
に修正。
daemon mt-daapd
となっているところを
daemon /usr/local/sbin/mt-daapd
に修正。
キャッシュの場所確保
# mkdir /var/cache/mt-daapd # touch /var/cache/mt-daapd/songs.gdb
AACとかMP3おくための場所確保
曲をアップするユーザもついでに作った。
# /usr/sbin/adduser itunes # passwd itunes # mkdir /home/itunes/music # chown itunes.itunes /home/itunes/music
参考にさせていただき、設定ファイルに設定を書いた。
mt-daapd によるiTune Serverの構築
# vi /etc/mt-daapd.conf #管理画面のドキュメントルート /usr/local/share/mt-daapd/admin-root #音楽ファイル格納ディレクトリ mp3_dir /home/itunes/music #管理者パスワード admin_pw xxxxxxxx #itunesサーバ名 servername iTune Server #ログファイル。 logfile /var/log/mt-daapd.log # ライブラリ内に追加/削除されたファイルを自動でスキャンするインターバル # デフォルトではファイルが追加されても自動で更新してくれない # 管理画面(Webブラウザ)からその都度、ライブラリを更新することもできる rescan_interval 300
自動起動設定。
# chkconfig mt-daapd on # /sbin/chkconfig --list mt-daapd
いざ起動。
# /etc/init.d/mt-daapd start Starting DAAP server: [ OK ]
ログ見てみるとしっぱしいてるっぽい。
# cat /var/log/mt-daapd.log 2008-05-20 18:57:20: Starting rendezvous daemon 2008-05-20 18:57:20: Starting signal handler 2008-05-20 18:57:21: Loading playlists 2008-05-20 18:57:21: Initializing database 2008-05-20 18:57:21: Starting mp3 scan 2008-05-20 18:57:21: Error scanning MP3 files: Permission denied 2008-05-20 18:57:21: Aborting 2008-05-20 18:57:21: Rendezvous socket closed (daap server crashed?) Aborting. 2008-05-20 18:57:21: Aborting
おっとパーミッションがねー。
#chmod 755 /home/itunes # /etc/init.d/mt-daapd stop # /etc/init.d/mt-daapd start # cat /var/log/mt-daapd.log 2008-05-20 19:01:24: Starting rendezvous daemon 2008-05-20 19:01:24: Starting signal handler 2008-05-20 19:01:25: Loading playlists 2008-05-20 19:01:25: Initializing database 2008-05-20 19:01:25: Starting mp3 scan 2008-05-20 19:01:25: Starting web server from /usr/local/share/mt-daapd/admin-root on port 3689 2008-05-20 19:01:25: Registering rendezvous names 2008-05-20 19:01:25: Scanned 0 songs in 1 seconds # /usr/sbin/lsof -i:3689 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME mt-daapd 7321 nobody 4u IPv4 10038556 TCP *:3689 (LISTEN)
うごいた。
ポートあける。
# /sbin/iptables -I RH-Firewall-1-INPUT 12 -p tcp -m state --state NEW -m tcp --dport 3689 -j ACCEPT # /etc/init.d/iptables save # /etc/init.d/iptables restart # /sbin/iptables -L -v
管理サーバアクセスしてみる。
http://xxxxxx.com:3689/
ユーザはadmin、パスワードは/etc/mt-daapd.confで設定したパスワード。
おおおー。
statusのタブで、曲のスキャンを手動で開始したり
接続中のユーザがどの曲再生しているか知ることができる。
しかし、曲名が激しく文字化け。。。
調べてみると、mt-daapd ShiftJIS/UTF-8両対応パッチ、src.rpmを公開されている方がいた。
404 Not Found
# wget http://ouchi.nahi.to/~kaidempa/mt-daapd/mt-daapd-0.2.4-1j1.src.rpm # rpm -i mt-daapd-0.2.4-1j1.src.rpm
src.rpmってなんだろ?
調べてみた。
rpmで指定(-i)をすると,「/usr/src/redhat/」ディレクトリ下に該当ファイルがインストールされる。
このディレクトリ下には次のようなサブディレクトリがあり,それぞれの目的別に分類される。# cd /usr/src/redhat
# ls
BUILD RPMS SOURCES SPECS SRPMS■BUILD
最終的にRPMパッケージを作成する際に使用される。
例えば,パッケージ作成(ビルド)途中にエラーが生じた場合には,
このBUILD/下にあるファイルで状況判断ができる
■RPMS
BUILD/下で生成されるファイルにエラーが無かった場合,
このディレクトリ下にあるi386/,i686/,noarch/に最終的なパッケージが作成される。
この際,下に挙げるspecファイルに従った条件になる
■SOURCES
RPMパッケージを生成するためのソースファイルを置いておく。
上記のようにrpm -i apache-1.3.22-2.src.rpmでインストールをすると,specファイル以外はここに含まれる■SPECS
RPMパッケージをどのようなディレクトリ先,アンインストールを行う際の振る舞いなど,
すべての動きを記述するファイルspecが置かれる
■SRPMS
RPMSディレクトリ下に正常にパッケージが生成されると,このディレクトリ下にはsrc.rpmパッケージが作成される
なるほどー。
# cat /usr/src/redhat/SPECS/mt-daapd.spec
でみてみると、./configureとか、インストールのコマンドが書いてある。
んでやってみる。
いったんとめる
# /etc/init.d/mt-daapd stop # rpm --rebuild /usr/src/redhat/SPECS/mt-daapd.spec --rebuild: unknown option
できない。。。しらべてみるとあった。
rpm自身のVersionによって違います。No.15967 投稿時間:2004年05月14日(Fri) 16:04 投稿者名:ハル URL:
rpm自身のVersionによって違います。
3.xまででしたら
rpm --rebuild ・・・
4.x以降は
rpmbuild --rebuild
となります。
間違えやすいですよね。
なるほどー。
# rpm --version RPM バージョン 4.3.3
ということで、
# rpmbuild --rebuild /usr/src/redhat/SPECS/mt-daapd.spec
うーんよくわからない。
src.rpmに入っていたソースにパッチを当てることにする。
patchのあてかた
Patch でバージョンアップ - オープンソース・フリーソフトのコンパイル&インストール --- Compile & Install for Open Source / Free Software
# cd /usr/src/redhat/SOURCES/ # cp -p ./* /usr/local/src/ # tar xzvf mt-daapd-0.2.4.tar.gz # cd /usr/local/src/mt-daapd-0.2.4/src # mv ../../mt-daapd-0.2.1.1-cp932-3.patch ./ # patch < mt-daapd-0.2.1.1-cp932-3.patch # cd ../ # make # make install # /etc/init.d/mt-daapd start
いったんつくりなおす。
# rm /var/cache/mt-daapd/songs.gdb # touch /var/cache/mt-daapd/songs.gdb # /etc/init.d/mt-daapd start
できたー!
itunesを立ち上げてみると、左側の「共有」の部分に自動的に共有サーバがでてきた。