2013/10/09

VortexBoxでMPDがビルドできない? その2

VortexBoxでMPDがビルドできない?」ではyumコマンドでインストールできなかったパッケージは無視していたのですが、今回はこれらをソースからインストールします。

VortexBoxインストール直後からMPD最適化パッチを当てるまでの手順」の「(3) MPDのビルドに必要なものをそろえる」の手順まで終えていることが前提です。

(1) MPDのインストールに必要なパッケージを取得
2013/10/9 の時点では幾つか取得できないパッケージがあるようです。

[vortexbox.localdomain ~]# sudo yum install autoconf automake alsa-lib-devel audiofile-devel avahi-glib-devel bzip2-devel faad2-devel ffmpeg-devel flac-devel fluidsynth-devel jack-audio-connection-kit-devel libao-devel curl-devel libcdio-devel libffado-devel libid3tag-devel libmad-devel libmms-devel libmodplug-devel musepack-tools-devel libmusicbrainz-devel libogg-devel libsamplerate-devel libsidplay-devel libshout-devel libvorbis-devel mikmod-devel mpg123-devel pulseaudio-lib-devel sqlite-devel systemd-units twolame-devel wavpack-devel wildmidi-devel zlib-devel zziplib-devel libsndfile-devel 

〜 省略 〜

パッケージ faad2-devel は利用できません。
パッケージ ffmpeg-devel は利用できません。
パッケージ libmad-devel は利用できません。
パッケージ libmms-devel は利用できません。
パッケージ musepack-tools-devel は利用できません。
パッケージ systemd-units-37-25.fc16.i686 はインストール済みか最新バージョンです
パッケージ twolame-devel は利用できません。

〜 省略 〜

完了しました!


(2) (1)で取得できなかったパッケージのソースファイルを入手する
LAMEも必要のようなので取得します。

[vortexbox.localdomain ~]# mkdir ~/src/
[vortexbox.localdomain ~]# cd ~/src
[vortexbox.localdomain src]# wget http://archive.ubuntu.com/ubuntu/pool/universe/f/faad2/faad2_2.7.orig.tar.gz
[vortexbox.localdomain src]# wget http://archive.ubuntu.com/ubuntu/pool/universe/libm/libmad/libmad_0.15.1b.orig.tar.gz
[vortexbox.localdomain src]# wget http://archive.ubuntu.com/ubuntu/pool/universe/libm/libmms/libmms_0.6.2.orig.tar.gz
[vortexbox.localdomain src]# wget http://archive.ubuntu.com/ubuntu/pool/universe/libm/libmpc/libmpc_0.1~r459.orig.tar.gz
[vortexbox.localdomain src]# wget http://archive.ubuntu.com/ubuntu/pool/universe/t/twolame/twolame_0.3.13.orig.tar.gz
[vortexbox.localdomain src]# wget http://archive.ubuntu.com/ubuntu/pool/universe/l/lame/lame_3.99.5+repack1.orig.tar.gz
[vortexbox.localdomain src]# wget http://www.ffmpeg.org/releases/ffmpeg-1.2.4.tar.bz2


(3) faad2のインストール

[vortexbox.localdomain src]# tar xzvf faad2_2.7.orig.tar.gz 
[vortexbox.localdomain src]# cd faad2-2.7/
[vortexbox.localdomain faad2-2.7]# ./configure --prefix=/usr/local
[vortexbox.localdomain faad2-2.7]# make
[vortexbox.localdomain faad2-2.7]# sudo make install
[vortexbox.localdomain faad2-2.7]# sudo ldconfig
[vortexbox.localdomain faad2-2.7]# cd ..
[vortexbox.localdomain src]# 


(4) libmadのインストール
gcc-c++が必要なのでまず入手します。

[vortexbox.localdomain src]# sudo yum install gcc-c++

[vortexbox.localdomain src]# tar xzvf libmad_0.15.1b.orig.tar.gz 
[vortexbox.localdomain src]# cd libmad-0.15.1b/
[vortexbox.localdomain libmad-0.15.1b]# ./configure --prefix=/usr/local

このままmakeすると途中でエラーになってしまいました。
なので、Makefileを修正してmakeが通るようにします。
(こんなことしていいのか分かりませんが…)

CFLAGSで始まる行から--fforce-memを削除します。

[vortexbox.localdomain libmad-0.15.1b]# vi Makefile

CFLAGS = -Wall -march=i486 -g -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations gmove -fschedule-insns2 -fstrength-reduce

の行を下記のように-fforce-memを削除します。

CFLAGS = -Wall -march=i486 -g -O -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations gmove -fschedule-insns2 -fstrength-reduce

[vortexbox.localdomain libmad-0.15.1b]# sudo make install
[vortexbox.localdomain libmad-0.15.1b]# sudo ldconfig
[vortexbox.localdomain libmad-0.15.1b]# cd ..
[vortexbox.localdomain src]# 


(5) libmmsのインストール

[vortexbox.localdomain src]# tar xzvf libmms_0.6.2.orig.tar.gz 
[vortexbox.localdomain src]# cd libmms-0.6.2/
[vortexbox.localdomain libmms-0.6.2]# ./configure --prefix=/usr/local
[vortexbox.localdomain libmms-0.6.2]# make
[vortexbox.localdomain libmms-0.6.2]# sudo make install
[vortexbox.localdomain libmms-0.6.2]# sudo ldconfig
[vortexbox.localdomain libmms-0.6.2]# cd ..
[vortexbox.localdomain src]# 


(6) libmpcのインストール
musepackとはこれで良いのか疑問ですがとりあえずインストールします。

[vortexbox.localdomain src]# tar xzvf libmpc_0.1~r459.orig.tar.gz 
[vortexbox.localdomain src]# cd libmpcs-0.1/
[vortexbox.localdomain libmpcs-0.1]# ./configure --prefix=/usr/local
[vortexbox.localdomain libmpcs-0.1]# make
[vortexbox.localdomain libmpcs-0.1]# sudo make install
[vortexbox.localdomain libmpcs-0.1]# sudo ldconfig
[vortexbox.localdomain libmpcs-0.1]# cd ..
[vortexbox.localdomain src]# 


(7) twolameのインストール

[vortexbox.localdomain src]# tar xzvf twolame_0.3.13.orig.tar.gz 
[vortexbox.localdomain src]# cd twolame-0.3.13/
[vortexbox.localdomain twolame-0.3.13]# ./configure --prefix=/usr/local
[vortexbox.localdomain twolame-0.3.13]# make
[vortexbox.localdomain twolame-0.3.13]# sudo make install
[vortexbox.localdomain twolame-0.3.13]# sudo ldconfig
[vortexbox.localdomain twolame-0.3.13]# cd ..
[vortexbox.localdomain src]# 


(8) FFMPEGの入手とインストール
まずFFMPEGのビルドに必要なyasm-develをインストールします。

[vortexbox.localdomain src]# sudo yum install yasm-devel

FFMPEGのインストールをします。

[vortexbox.localdomain src]# tar xjvf ffmpeg-1.2.4.tar.bz2
[vortexbox.localdomain src]# cd ffmpeg-1.2.4/
[vortexbox.localdomain ffmpeg-1.2.4]# ./configure --enable-shared --prefix=/usr/local
[vortexbox.localdomain ffmpeg-1.2.4]# make
[vortexbox.localdomain ffmpeg-1.2.4]# sudo make install
[vortexbox.localdomain ffmpeg-1.2.4]# sudo ldconfig
[vortexbox.localdomain ffmpeg-1.2.4]# cd ..
[vortexbox.localdomain src]# 


(9) LAMEのインストール

[vortexbox.localdomain src]# tar xzvf lame_3.99.5+repack1.orig.tar.gz
[vortexbox.localdomain src]# cd lame-3.99.5+repack1/
[vortexbox.localdomain lame-3.99.5+repack1]# ./configure --prefix=/usr/local
[vortexbox.localdomain lame-3.99.5+repack1]# make
[vortexbox.localdomain lame-3.99.5+repack1]# sudo make install
[vortexbox.localdomain lame-3.99.5+repack1]# sudo ldconfig
[vortexbox.localdomain lame-3.99.5+repack1]# cd ..
[vortexbox.localdomain src]# 


(10) MPDのインストール
・MPDのソースと最適化パッチを取得する

[vortexbox.localdomain src]# mkdir mpd
[vortexbox.localdomain src]# cd mpd
[vortexbox.localdomain mpd]# wget http://www.musicpd.org/download/mpd/0.17/mpd-0.17.4.tar.xz
[vortexbox.localdomain mpd]# wget http://www.symphonic-net.com/kubotayo/cgi-bin/downlog.cgi?edata/mpd-0.17git-20120226rtopt.diff.gz

・MPDのソースを解凍しパッチを当てる

[vortexbox.localdomain mpd]# tar xJvf mpd-0.17.4.tar.xz
[vortexbox.localdomain mpd]# cd mpd-0.17.4/
[vortexbox.localdomain mpd-0.17.4]# zcat ../mpd-0.17git-20120226rtopt.diff.gz |patch -p1
patching file Makefile.am
Hunk #1 succeeded at 221 (offset 1 line).
Hunk #2 succeeded at 402 with fuzz 2 (offset 10 lines).
patching file configure.ac
Hunk #3 succeeded at 1584 (offset 8 lines).
patching file src/conf.c
Hunk #1 succeeded at 102 (offset -1 lines).
patching file src/conf.h
patching file src/decoder_thread.c
Hunk #2 succeeded at 464 (offset 4 lines).
patching file src/main.c
Hunk #2 succeeded at 314 (offset -3 lines).
Hunk #3 succeeded at 324 (offset -3 lines).
Hunk #4 succeeded at 381 (offset -3 lines).
Hunk #5 succeeded at 487 (offset -3 lines).
patching file src/output_internal.h
patching file src/output_thread.c
Hunk #1 succeeded at 32 with fuzz 2 (offset 1 line).
Hunk #2 succeeded at 584 (offset 5 lines).
patching file src/player_thread.c
Hunk #2 succeeded at 1087 (offset 27 lines).
patching file src/rt_opt.c
patching file src/rt_opt.h
patching file src/update.c
Hunk #1 succeeded at 33 (offset 2 lines).
Hunk #2 succeeded at 76 (offset 5 lines).

・MPDをビルドし、インストールする
./configure時にPKG_CONFIG_PATH=/usr/local/lib/pkgconfigを指定しないと途中でエラーになってしまいました。

[vortexbox.localdomain mpd-0.17.4]# ./autogen.sh
[vortexbox.localdomain mpd-0.17.4]# PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --enable-wildmidi --enable-fluidsynth --enable-mikmod --enable-bzip2 --enable-zzip --enable-iso9660 --enable-pipe-output --enable-lastfm --enable-rtopt --prefix=/usr/local

〜 省略 〜

########### MPD CONFIGURATION ############

Archive support:
        (+bzip2) (+ISO9660) (+ZIP) 
Autodiscovery support:
        (+Avahi) (-Bonjour) 
Client support:
        (+IPv6) (+TCP) (+UNIX Domain Sockets) 
File format support:
        (+AAC) (-C64 SID) (+FFMPEG) (+FLAC) (+FluidSynth) (-GME) (+libsndfile) 
        (+MikMod) (+MODPLUG) (+MAD) (+MPG123) (+MP4) (+Musepack) 
        (-OggTremor) (+OggVorbis) (+WAVE) (+WavPack) (+WildMidi) 
Other features:
        (+libsamplerate) (+inotify) (+SQLite) (+rtopt) 
Metadata support:
        (+ID3) 
Playback support:
        (+ALSA) (-FFADO) (+FIFO) (+File Recorder) (+HTTP Daemon) (+JACK) 
        (+libao) (-Media MVP) (+OSS) (-OpenAL) (-OS X) (+Pipeline) 
        (+PulseAudio) (-ROAR) (+SHOUTcast) (-Solaris) (-WinMM) 
Streaming encoder support:
        (+FLAC) (+LAME) (+Ogg Vorbis) (+TwoLAME) (+WAVE) 
Streaming support:
        (+CDIO_PARANOIA) (+CURL) (-Despotify) (+Last.FM) (-Soundcloud) 
        (+MMS) (-SOUP) 

##########################################

〜 省略 〜

[vortexbox.localdomain mpd-0.17.4]# make
[vortexbox.localdomain mpd-0.17.4]# sudo make install

ここでインストールしたmpdを起動しようとしたところFFMPEG関連のライブラリが見つからないとのエラーが出ました。

そこで、/etc/ld.so.confに/usr/local/lib の記述を追加します。

[vortexbox.localdomain mpd-0.17.4]# sudo vi /etc/ld.so.conf
/usr/lib/nvidia-graphics-304.51
include ld.so.conf.d/*.conf
/usr/local/lib

[vortexbox.localdomain mpd-0.17.4]# sudo ldconfig


後は「VortexBoxインストール直後からMPD最適化パッチを当てるまでの手順」の「(7) MPDの起動スクリプトを修正する」の手順から行えば終了です。

2 件のコメント:

SPOTIFY さんのコメント...

ハナグロさん、こんばんは。
なるほど!!このようにして、ライブラリーをいれるのですか!!
lameが入ったので、PANDORAは、聞けるようになりましたが、SPOTIFY
が雑音で聞けませんでした。調べたところ、
libopusが必要とのとのことで
opus-1.0.3.tar.gzをダウンロードして、
インストールできたのですが、configure --enable-opusを実行しても、
opusは、うまくconfigureできませんでした。 VORTEXBOX2,2をインストールした後は、聞けるのでまだ、何かあるのですね。 mpd-Vからは、ライブラリーの違いが分かりませんでした。 ご教示頂けると幸いです。

ハナグロ さんのコメント...

SPOTIFYさん、こんにちは。

MPDで./configure --helpを見たところ--enable-opusというオプションは無いようなのでMPDが直接libopusを使っているのでは無いのかもしれません。

調べるとFFMPEGが外部ライブラリとしてlibopusを使用しているとのことなので見たところ、configureのオプションとして--enable-libopusというのがありました。

ですのでFFMPEGのconfigure時に
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --enable-shared --enable-libopus --prefix=/usr/loccal
としてやると良いのかもしれません。

確かなことは言えませんが…。