ホーム > その他 > mpdをソースコードからビルドする

mpdをソースコードからビルドする

僕は、現在Ubuntuでmpdを使っています。Ubuntu環境において、mpdを最新のバージョンにするための手順です。
もっとスマートな方法があるとは思いますが、この手順が一番楽だと思います。
Ubuntuのインストール方法については、省略します。ここで中途半端なことを書くよりも、本家サイトや山のようにある雑誌やムックを読むほうが確実かつわかりやすいと思います。

まずは、Ubuntuのmpdパッケージをインストールします。
以下を実行します。

sudo apt-get install mpd

これで、mpdがインストールされます。
この段階で、mpdからちゃんと音が出る状態に設定を行っておきます。
最初にmpdのパッケージをインストールするのは、起動ファイルや設定ファイルなどをそのまま使用するためです。
Ubuntuに開発環境をインストールします。
以下を実行します。

sudo apt-get install build-essential dpkg-dev autoconf automake libboost-dev libicu-dev

これで、mpdをソースコードからビルドするのに必要なパッケージはインストールされると思います。
次に、mpdのビルド時に必要になるパッケージをインストールします。

sudo apt-get build-dep mpd

これで、flacやmp3などの楽曲ファイルのエンコーダーなどのライブラリ、mpdをビルドするために必要なライブラリがインストールされます。
mpdのソースコードを取得します。
https://www.musicpd.org/download.html
から、ソースコードファイルをダウンロードするか、gitで取得します。
gitからの取得については、その筋のサイトで調べてください。
取得したソースコードは、適当なディレクトリで展開してください。

次に以下を実行します。

./configure

必要なライブラリやパッケージが全てインストールされていると、だ〜っとメッセージが表示されて、最後に、

MPD is ready for compilation, type "make" to begin.

と表示されて、処理が終了します。

細かなオプションを設定してmpdをビルドしたい場合は、

./configure --help

を実行すると、mpdビルド時に選択可能なオプションが表示されますので、オプションを選択してconfigureします。
ビルド時のオプションを変更する場合は、一旦

make clean

を実行します。
オプションを指定してconfigureを実行した際に、途中で止まってしまう場合は関連するビルドに必要なライブラリがインストールされていない可能性があります。
たとえば、標準状態では、以下を実行するとエラーになります。

./configure --enable-libmpdclient

これは、libmpdclient-devがインストールされていないからです。
autogen.shもしくはconfigureを実行したら、次は、コンパイルです。

make

を実行します。PCの処理速度にもよりますが、数分でビルドは完了します。
エラーが起きなければ、最後に、

make[1]: ディレクトリ `インストール先ディレクトリ' から出ます

と表示して終了します。
次は、mpdのインストールです。

sudo make install

configureとmakeはユーザーで実行できますが、make installはスーパーユーザーで実行しなければなりません。
これで、ビルドされたmpdの実行ファイルがインストールされました。
通常であれば、インストール先は

/usr/local/bin/mpd

です。
いよいよ仕上げに入ります。
現在動いているUbuntuのパッケージからインストールしたmpdを止めます。

sudo service mpd stop

そして、起動mpdのスクリプトを書き換えます。

/etc/init.d/mpd

内の
DAEMON=/usr/bin/mpd
の部分を
DAEMON=/usr/local/bin/mpd
に書き換えます。
そしてmpdを再起動させます。

sudo service mpd start

これで、mpdが最新バージョンに切り替わりました。

※ 2015/02/19追記

autogen.shの記述を削除しました。
mpd 0.19あたりから、libboost-dev、libglib2.0-devが必要になったようです。

※ 2017/04/29追記

mpd 0.20とUbuntu 16.04の組み合わせについては、こちらを参照してください。