Music Player Daemon(MPD)で遊んでみる 2

(以下は過去Qiitaに投稿していた内容です。)

ということで、さっそく MPD と遊んでみます。 RaspberryPi で実験すればよいのですが、勉強がてら CentOS8 を使ってみます。

とりあえず、CentOS8 で...

CentOS8 の場合、 「RPM Fusion for EL 8」にパッケージがありました。

# dnf info mpd
CentOS-8 - AppStream                                                                                         7.4 kB/s | 4.3 kB     00:00
CentOS-8 - Base                                                                                              9.5 kB/s | 3.9 kB     00:00
CentOS-8 - Extras                                                                                            4.4 kB/s | 1.5 kB     00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64                                                        27 kB/s | 8.2 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                                                26 kB/s | 4.4 kB     00:00
The Netwide Assembler                                                                                        3.1 kB/s | 3.0 kB     00:00
RPM Fusion for EL 8 - Free - Updates                                                                         3.4 kB/s | 3.7 kB     00:01
利用可能なパッケージ
名前         : mpd
エポック     : 1
バージョン   : 0.21.23
リリース     : 1.el8
Arch         : x86_64
サイズ       : 713 k
ソース       : mpd-0.21.23-1.el8.src.rpm
リポジトリー : rpmfusion-free-updates
概要         : The Music Player Daemon
URL          : https://www.musicpd.org
ライセンス   : GPLv2+
説明         : Music Player Daemon (MPD) is a flexible, powerful, server-side application for
             : playing music. Through plugins and libraries it can play a variety of sound
             : files (e.g., OGG, MP3, FLAC, AAC, WAV) and can be controlled remotely via its
             : network protocol. It can be used as a desktop music player, but is also great
             : for streaming music to a stereo system over a local network. There are many
             : GUI and command-line applications to choose from that act as a front-end for
             : browsing and playing your MPD music collection.
# dnf deplist mpd

実行結果

package: mpd-1:0.21.23-1.el8.x86_64
  dependency: (mpd-firewalld = 1:0.21.23-1.el8 if firewalld)
   provider: mpd-firewalld-1:0.21.23-1.el8.x86_64
  dependency: /bin/sh
   provider: bash-4.4.19-10.el8.x86_64
  dependency: libFLAC.so.8()(64bit)
   provider: flac-libs-1.3.2-9.el8.x86_64
  dependency: libWildMidi.so.2()(64bit)
   provider: wildmidi-libs-0.4.3-3.el8.x86_64
  dependency: libadplug-2.2.1.so.0()(64bit)
   provider: adplug-2.2.1-10.el8.x86_64
  dependency: libao.so.4()(64bit)
   provider: libao-1.2.0-10.el8.x86_64
  dependency: libao.so.4(LIBAO4_1.1.0)(64bit)
   provider: libao-1.2.0-10.el8.x86_64
  dependency: libasound.so.2()(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libasound.so.2(ALSA_0.9)(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libasound.so.2(ALSA_0.9.0)(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libasound.so.2(ALSA_0.9.0rc4)(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libaudiofile.so.1()(64bit)
   provider: audiofile-1:0.3.6-23.el8.x86_64
  dependency: libavahi-client.so.3()(64bit)
   provider: avahi-libs-0.7-19.el8.x86_64
  dependency: libavahi-common.so.3()(64bit)
   provider: avahi-libs-0.7-19.el8.x86_64
  dependency: libavcodec.so.58()(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavcodec.so.58(LIBAVCODEC_58)(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavformat.so.58()(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavformat.so.58(LIBAVFORMAT_58)(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavutil.so.56()(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavutil.so.56(LIBAVUTIL_56)(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libbz2.so.1()(64bit)
   provider: bzip2-libs-1.0.6-26.el8.x86_64
  dependency: libc.so.6(GLIBC_2.28)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libcdio.so.18()(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libcdio.so.18(CDIO_18)(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libcdio_cdda.so.2()(64bit)
   provider: libcdio-paranoia-10.2+0.94+2-3.el8.x86_64
  dependency: libcdio_paranoia.so.2()(64bit)
   provider: libcdio-paranoia-10.2+0.94+2-3.el8.x86_64
  dependency: libcurl.so.4()(64bit)
   provider: libcurl-7.61.1-11.el8.x86_64
   provider: libcurl-minimal-7.61.1-11.el8.x86_64
  dependency: libdbus-1.so.3()(64bit)
   provider: dbus-libs-1:1.12.8-9.el8.x86_64
  dependency: libdbus-1.so.3(LIBDBUS_1_3)(64bit)
   provider: dbus-libs-1:1.12.8-9.el8.x86_64
  dependency: libexpat.so.1()(64bit)
   provider: expat-2.2.5-3.el8.x86_64
  dependency: libfaad.so.2()(64bit)
   provider: faad2-libs-1:2.8.8-6.el8.x86_64
  dependency: libfluidsynth.so.1()(64bit)
   provider: fluidsynth-libs-1.1.11-6.el8.x86_64
  dependency: libgcc_s.so.1()(64bit)
   provider: libgcc-8.3.1-4.5.el8.x86_64
  dependency: libgcc_s.so.1(GCC_3.0)(64bit)
   provider: libgcc-8.3.1-4.5.el8.x86_64
  dependency: libgcrypt.so.20()(64bit)
   provider: libgcrypt-1.8.3-4.el8.x86_64
  dependency: libgcrypt.so.20(GCRYPT_1.6)(64bit)
   provider: libgcrypt-1.8.3-4.el8.x86_64
  dependency: libicui18n.so.60()(64bit)
   provider: libicu-60.3-2.el8_1.x86_64
  dependency: libicuuc.so.60()(64bit)
   provider: libicu-60.3-2.el8_1.x86_64
  dependency: libid3tag.so.0()(64bit)
   provider: libid3tag-0.15.1b-30.el8.x86_64
  dependency: libiso9660.so.11()(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libiso9660.so.11(ISO9660_11)(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libixml.so.10()(64bit)
   provider: libupnp-1.8.4-3.el8.x86_64
  dependency: libjack.so.0()(64bit)
   provider: jack-audio-connection-kit-1.9.12-8.el8.x86_64
  dependency: libm.so.6()(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libm.so.6(GLIBC_2.15)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libm.so.6(GLIBC_2.2.5)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libmad.so.0()(64bit)
   provider: libmad-0.15.1b-24.el8.x86_64
  dependency: libmikmod.so.3()(64bit)
   provider: libmikmod-3.3.11.1-7.el8.x86_64
  dependency: libmms.so.0()(64bit)
   provider: libmms-0.6.4-8.el8.x86_64
  dependency: libmodplug.so.1()(64bit)
   provider: libmodplug-1:0.8.9.0-9.el8.x86_64
  dependency: libmp3lame.so.0()(64bit)
   provider: lame-libs-3.100-6.el8.x86_64
  dependency: libmpdclient.so.2()(64bit)
   provider: libmpdclient-2.16-1.el8.x86_64
  dependency: libmpdclient.so.2(libmpdclient2)(64bit)
   provider: libmpdclient-2.16-1.el8.x86_64
  dependency: libmpg123.so.0()(64bit)
   provider: mpg123-libs-1.25.10-2.el8.x86_64
  dependency: libnfs.so.13()(64bit)
   provider: libnfs-4.0.0-1.el8.x86_64
  dependency: libogg.so.0()(64bit)
   provider: libogg-2:1.3.2-10.el8.x86_64
  dependency: libopenal.so.1()(64bit)
   provider: openal-soft-1.18.2-7.el8.x86_64
  dependency: libopus.so.0()(64bit)
   provider: opus-1.3-0.4.beta.el8.x86_64
  dependency: libpcre.so.1()(64bit)
   provider: pcre-8.42-4.el8.x86_64
  dependency: libpthread.so.0()(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpthread.so.0(GLIBC_2.12)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpthread.so.0(GLIBC_2.3.2)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpulse.so.0()(64bit)
   provider: pulseaudio-libs-11.1-23.el8.x86_64
  dependency: libpulse.so.0(PULSE_0)(64bit)
   provider: pulseaudio-libs-11.1-23.el8.x86_64
  dependency: libsamplerate.so.0()(64bit)
   provider: libsamplerate-0.1.9-1.el8.x86_64
  dependency: libsamplerate.so.0(libsamplerate.so.0.0)(64bit)
   provider: libsamplerate-0.1.9-1.el8.x86_64
  dependency: libshout.so.3()(64bit)
   provider: libshout-2.2.2-19.el8.x86_64
  dependency: libsmbclient.so.0()(64bit)
   provider: libsmbclient-4.10.4-101.el8_1.x86_64
  dependency: libsmbclient.so.0(SMBCLIENT_0.1.0)(64bit)
   provider: libsmbclient-4.10.4-101.el8_1.x86_64
  dependency: libsndfile.so.1()(64bit)
   provider: libsndfile-1.0.28-8.el8.x86_64
  dependency: libsndfile.so.1(libsndfile.so.1.0)(64bit)
   provider: libsndfile-1.0.28-8.el8.x86_64
  dependency: libsoxr.so.0()(64bit)
   provider: soxr-0.1.3-4.el8.x86_64
  dependency: libsqlite3.so.0()(64bit)
   provider: sqlite-libs-3.26.0-4.el8_1.x86_64
  dependency: libstdc++.so.6()(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.11)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.3)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.8)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.9)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libsystemd.so.0()(64bit)
   provider: systemd-libs-239-18.el8_1.5.x86_64
  dependency: libsystemd.so.0(LIBSYSTEMD_209)(64bit)
   provider: systemd-libs-239-18.el8_1.5.x86_64
  dependency: libtwolame.so.0()(64bit)
   provider: twolame-libs-0.3.13-11.el8.x86_64
  dependency: libupnp.so.13()(64bit)
   provider: libupnp-1.8.4-3.el8.x86_64
  dependency: libvorbis.so.0()(64bit)
   provider: libvorbis-1:1.3.6-2.el8.x86_64
  dependency: libvorbisenc.so.2()(64bit)
   provider: libvorbis-1:1.3.6-2.el8.x86_64
  dependency: libwavpack.so.1()(64bit)
   provider: wavpack-5.1.0-9.el8.x86_64
  dependency: libyajl.so.2()(64bit)
   provider: yajl-2.1.0-10.el8.x86_64
  dependency: libz.so.1()(64bit)
   provider: zlib-1.2.11-10.el8.x86_64
  dependency: libzzip-0.so.13()(64bit)
   provider: zziplib-0.13.68-7.el8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.28-72.el8_1.1.i686
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: shadow-utils
   provider: shadow-utils-2:4.6-8.el8.x86_64
  dependency: systemd
   provider: systemd-239-18.el8_1.5.i686
   provider: systemd-239-18.el8_1.5.x86_64
[root@home ~]# dnf deplist mpd
メタデータの期限切れの最終確認: 0:03:45 時間前の 2020年06月02日 03時07分33秒 に実施しました。
package: mpd-1:0.21.23-1.el8.x86_64
  dependency: (mpd-firewalld = 1:0.21.23-1.el8 if firewalld)
   provider: mpd-firewalld-1:0.21.23-1.el8.x86_64
  dependency: /bin/sh
   provider: bash-4.4.19-10.el8.x86_64
  dependency: libFLAC.so.8()(64bit)
   provider: flac-libs-1.3.2-9.el8.x86_64
  dependency: libWildMidi.so.2()(64bit)
   provider: wildmidi-libs-0.4.3-3.el8.x86_64
  dependency: libadplug-2.2.1.so.0()(64bit)
   provider: adplug-2.2.1-10.el8.x86_64
  dependency: libao.so.4()(64bit)
   provider: libao-1.2.0-10.el8.x86_64
  dependency: libao.so.4(LIBAO4_1.1.0)(64bit)
   provider: libao-1.2.0-10.el8.x86_64
  dependency: libasound.so.2()(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libasound.so.2(ALSA_0.9)(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libasound.so.2(ALSA_0.9.0)(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libasound.so.2(ALSA_0.9.0rc4)(64bit)
   provider: alsa-lib-1.1.9-4.el8.x86_64
  dependency: libaudiofile.so.1()(64bit)
   provider: audiofile-1:0.3.6-23.el8.x86_64
  dependency: libavahi-client.so.3()(64bit)
   provider: avahi-libs-0.7-19.el8.x86_64
  dependency: libavahi-common.so.3()(64bit)
   provider: avahi-libs-0.7-19.el8.x86_64
  dependency: libavcodec.so.58()(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavcodec.so.58(LIBAVCODEC_58)(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavformat.so.58()(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavformat.so.58(LIBAVFORMAT_58)(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavutil.so.56()(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libavutil.so.56(LIBAVUTIL_56)(64bit)
   provider: ffmpeg-libs-4.2.3-2.el8.x86_64
  dependency: libbz2.so.1()(64bit)
   provider: bzip2-libs-1.0.6-26.el8.x86_64
  dependency: libc.so.6(GLIBC_2.28)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libcdio.so.18()(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libcdio.so.18(CDIO_18)(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libcdio_cdda.so.2()(64bit)
   provider: libcdio-paranoia-10.2+0.94+2-3.el8.x86_64
  dependency: libcdio_paranoia.so.2()(64bit)
   provider: libcdio-paranoia-10.2+0.94+2-3.el8.x86_64
  dependency: libcurl.so.4()(64bit)
   provider: libcurl-7.61.1-11.el8.x86_64
   provider: libcurl-minimal-7.61.1-11.el8.x86_64
  dependency: libdbus-1.so.3()(64bit)
   provider: dbus-libs-1:1.12.8-9.el8.x86_64
  dependency: libdbus-1.so.3(LIBDBUS_1_3)(64bit)
   provider: dbus-libs-1:1.12.8-9.el8.x86_64
  dependency: libexpat.so.1()(64bit)
   provider: expat-2.2.5-3.el8.x86_64
  dependency: libfaad.so.2()(64bit)
   provider: faad2-libs-1:2.8.8-6.el8.x86_64
  dependency: libfluidsynth.so.1()(64bit)
   provider: fluidsynth-libs-1.1.11-6.el8.x86_64
  dependency: libgcc_s.so.1()(64bit)
   provider: libgcc-8.3.1-4.5.el8.x86_64
  dependency: libgcc_s.so.1(GCC_3.0)(64bit)
   provider: libgcc-8.3.1-4.5.el8.x86_64
  dependency: libgcrypt.so.20()(64bit)
   provider: libgcrypt-1.8.3-4.el8.x86_64
  dependency: libgcrypt.so.20(GCRYPT_1.6)(64bit)
   provider: libgcrypt-1.8.3-4.el8.x86_64
  dependency: libicui18n.so.60()(64bit)
   provider: libicu-60.3-2.el8_1.x86_64
  dependency: libicuuc.so.60()(64bit)
   provider: libicu-60.3-2.el8_1.x86_64
  dependency: libid3tag.so.0()(64bit)
   provider: libid3tag-0.15.1b-30.el8.x86_64
  dependency: libiso9660.so.11()(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libiso9660.so.11(ISO9660_11)(64bit)
   provider: libcdio-2.0.0-3.el8.x86_64
  dependency: libixml.so.10()(64bit)
   provider: libupnp-1.8.4-3.el8.x86_64
  dependency: libjack.so.0()(64bit)
   provider: jack-audio-connection-kit-1.9.12-8.el8.x86_64
  dependency: libm.so.6()(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libm.so.6(GLIBC_2.15)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libm.so.6(GLIBC_2.2.5)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libmad.so.0()(64bit)
   provider: libmad-0.15.1b-24.el8.x86_64
  dependency: libmikmod.so.3()(64bit)
   provider: libmikmod-3.3.11.1-7.el8.x86_64
  dependency: libmms.so.0()(64bit)
   provider: libmms-0.6.4-8.el8.x86_64
  dependency: libmodplug.so.1()(64bit)
   provider: libmodplug-1:0.8.9.0-9.el8.x86_64
  dependency: libmp3lame.so.0()(64bit)
   provider: lame-libs-3.100-6.el8.x86_64
  dependency: libmpdclient.so.2()(64bit)
   provider: libmpdclient-2.16-1.el8.x86_64
  dependency: libmpdclient.so.2(libmpdclient2)(64bit)
   provider: libmpdclient-2.16-1.el8.x86_64
  dependency: libmpg123.so.0()(64bit)
   provider: mpg123-libs-1.25.10-2.el8.x86_64
  dependency: libnfs.so.13()(64bit)
   provider: libnfs-4.0.0-1.el8.x86_64
  dependency: libogg.so.0()(64bit)
   provider: libogg-2:1.3.2-10.el8.x86_64
  dependency: libopenal.so.1()(64bit)
   provider: openal-soft-1.18.2-7.el8.x86_64
  dependency: libopus.so.0()(64bit)
   provider: opus-1.3-0.4.beta.el8.x86_64
  dependency: libpcre.so.1()(64bit)
   provider: pcre-8.42-4.el8.x86_64
  dependency: libpthread.so.0()(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpthread.so.0(GLIBC_2.12)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpthread.so.0(GLIBC_2.3.2)(64bit)
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: libpulse.so.0()(64bit)
   provider: pulseaudio-libs-11.1-23.el8.x86_64
  dependency: libpulse.so.0(PULSE_0)(64bit)
   provider: pulseaudio-libs-11.1-23.el8.x86_64
  dependency: libsamplerate.so.0()(64bit)
   provider: libsamplerate-0.1.9-1.el8.x86_64
  dependency: libsamplerate.so.0(libsamplerate.so.0.0)(64bit)
   provider: libsamplerate-0.1.9-1.el8.x86_64
  dependency: libshout.so.3()(64bit)
   provider: libshout-2.2.2-19.el8.x86_64
  dependency: libsmbclient.so.0()(64bit)
   provider: libsmbclient-4.10.4-101.el8_1.x86_64
  dependency: libsmbclient.so.0(SMBCLIENT_0.1.0)(64bit)
   provider: libsmbclient-4.10.4-101.el8_1.x86_64
  dependency: libsndfile.so.1()(64bit)
   provider: libsndfile-1.0.28-8.el8.x86_64
  dependency: libsndfile.so.1(libsndfile.so.1.0)(64bit)
   provider: libsndfile-1.0.28-8.el8.x86_64
  dependency: libsoxr.so.0()(64bit)
   provider: soxr-0.1.3-4.el8.x86_64
  dependency: libsqlite3.so.0()(64bit)
   provider: sqlite-libs-3.26.0-4.el8_1.x86_64
  dependency: libstdc++.so.6()(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.11)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.3)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.8)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(CXXABI_1.3.9)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
   provider: libstdc++-8.3.1-4.5.el8.x86_64
  dependency: libsystemd.so.0()(64bit)
   provider: systemd-libs-239-18.el8_1.5.x86_64
  dependency: libsystemd.so.0(LIBSYSTEMD_209)(64bit)
   provider: systemd-libs-239-18.el8_1.5.x86_64
  dependency: libtwolame.so.0()(64bit)
   provider: twolame-libs-0.3.13-11.el8.x86_64
  dependency: libupnp.so.13()(64bit)
   provider: libupnp-1.8.4-3.el8.x86_64
  dependency: libvorbis.so.0()(64bit)
   provider: libvorbis-1:1.3.6-2.el8.x86_64
  dependency: libvorbisenc.so.2()(64bit)
   provider: libvorbis-1:1.3.6-2.el8.x86_64
  dependency: libwavpack.so.1()(64bit)
   provider: wavpack-5.1.0-9.el8.x86_64
  dependency: libyajl.so.2()(64bit)
   provider: yajl-2.1.0-10.el8.x86_64
  dependency: libz.so.1()(64bit)
   provider: zlib-1.2.11-10.el8.x86_64
  dependency: libzzip-0.so.13()(64bit)
   provider: zziplib-0.13.68-7.el8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.28-72.el8_1.1.i686
   provider: glibc-2.28-72.el8_1.1.x86_64
  dependency: shadow-utils
   provider: shadow-utils-2:4.6-8.el8.x86_64
  dependency: systemd
   provider: systemd-239-18.el8_1.5.i686
   provider: systemd-239-18.el8_1.5.x86_64

結構たくさん依存関係があります。ソースからビルドしてみたかったですが、なんか大変そうなので素直にパッケージを使用することにします。あるとよさげな alsa-utils もインストールします。

# dnf install mpd 
# dnf install alsa-utils

インストールされたので、次は /etc/mpd.conf を編集します。以下を参考にしました。 * User’s Manual — Music Player Daemon 0.22 documentation * mpd.conf(5): Music Player Daemon config file - Linux man page * MPD (MUSIC PROTOCOL DAEMON)のインストール

設定のポイントは、

  1. ディレクトリ設定
  2. デーモンの listen 設定
  3. auto_update の ON/OFF
  4. Avahi の Zeroconf 設定
  5. Database セクションの設定
  6. Input セクションの設定
  7. Audio Output セクションの設定

です。デフォルトの mpd.conf から大きく変えるところは少なそうです。 とりあえず全く変更せず起動してみると、TCP/6600 で起動しました。

# systemctl start mpd.service 
# systemctl status mpd.service
● mpd.service - Music Player Daemon
   Loaded: loaded (/usr/lib/systemd/system/mpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-06-03 01:09:29 EDT; 2s ago
     Docs: man:mpd(1)
           man:mpd.conf(5)
 Main PID: 21163 (mpd)
    Tasks: 3 (limit: 26213)
   Memory: 7.7M
   CGroup: /system.slice/mpd.service
           mq21163 /usr/bin/mpd --no-daemon

 6月 03 01:09:28 example.net systemd[1]: Starting Music Player Daemon...
 6月 03 01:09:29 example.net mpd[21163]: Jun 03 01:09 : exception: bind to '0.0.0.0:6600' failed (continuing anyway, because binding to '[::]:6600' succeeded): Failed to bind socket: Address already in use

なんかエラー出てるけど、まぁいいか。

早速音を出してみたいと思います。ターミナルからだと、mpc, ncmpc, ncmpcpp があるとのことですが、

# dnf search mpc

libmpc.x86_64 : C library for multiple precision complex arithmetic
libmpc.i686 : C library for multiple precision complex arithmetic
libmpc.x86_64 : C library for multiple precision complex arithmetic
mpc-qt.x86_64 : A clone of Media Player Classic reimplemented in Qt
stompclt.noarch : Versatile STOMP client
libmpcdec.i686 : Musepack audio decoding library
libmpcdec.x86_64 : Musepack audio decoding library
snmpcheck.noarch : An utility to get information via SNMP protocols

mpc-qtってのがありますね。でもこれって GUI ですね。パッケージないのかな?

mpc は、mpd と同一グループでの開発のようで、いわば標準的ってやつのようです。ただソース落としてきてみてみると、Meson と Ninja というビルドシステムが必要のようで、勉強不足でよくわかんないものを入れるのに抵抗ありで、スルーしました。

鳴らすだけなら、スマホとか Windows アプリで mpd にアクセスするのもありでしょうが、やっぱりコンソールからうごかしてみたいので ncmpcpp をコンパイルして入れてみます。

ncmpcpp のコンパイル

ソースをとってきます。

wget https://rybczak.net/ncmpcpp/stable/ncmpcpp-0.8.2.tar.bz2

https://rybczak.net/ncmpcpp/ に書いてある依存のあるものを入れていきます。

  • boost-devel
  • ncurses-devel
  • readline-devel
  • libcurl-devel
  • fftw-devel
  • taglib-devel (パッケージリポジトリに無い...)
  • libicu-devel (上記ページに書いてないけど configureのログより...)
  • libmpdclient-devel (上記ページに書いてないけど、そりゃいるよねぇ...)
# dnf install boost-devel ncurses-devel readline-devel libcurl-devel fftw-devel libicu-devel libmpdclient-devel

taglib だけ -devel がないんだけど、ヘッダとかふくまれているのかな?

# dnf search taglib
=========================================================== 名前 完全一致: taglib ===========================================================
taglib.i686 : Audio Meta-Data Library
taglib.x86_64 : Audio Meta-Data Library
========================================================= 名前 & 概要 一致: taglib ==========================================================
taglib-extras.x86_64 : Taglib support for other formats
taglib-extras-devel.x86_64 : Development files for taglib-extras

# dnf download taglib

# rpm -qlp taglib-1.11.1-8.el8.x86_64.rpm
/usr/lib/.build-id
/usr/lib/.build-id/48
/usr/lib/.build-id/48/80624d22411e88d54105a67a303615e23c140b
/usr/lib/.build-id/7d
/usr/lib/.build-id/7d/fa7bc4ab31566b156b3a715dc80a7c3bc2869c
/usr/lib64/libtag.so.1
/usr/lib64/libtag.so.1.17.0
/usr/lib64/libtag_c.so.0
/usr/lib64/libtag_c.so.0.0.0
/usr/share/doc/taglib
/usr/share/doc/taglib/AUTHORS
/usr/share/doc/taglib/NEWS
/usr/share/licenses/taglib
/usr/share/licenses/taglib/COPYING.LGPL
/usr/share/licenses/taglib/COPYING.MPL

ヘッダ入ってません。残念。もしあとで困ったらソースからビルドすることとします。

さっそく configure & make & make install です。

# ./configure
# make
# # たばこた~いむ
# make install

動かしてみます。

# ncmpcpp

曲を置いてないため、曲リストが空っぽでした。 /var/lib/mpd/music に適当にファイルを設置してたあと、ブラウザ画面へ移り[2]キー、データベース更新[u]キーを押すと、それらがでてきました。 でも再生しません。曲の再生がすぐにストップしてしまいます。

/var/log/mpd/mpd.logをみてみると以下のような出力があります。

Jun 03 02:51 : exception: Failed to enable output "My Pulse Output" (pulse)
Jun 03 02:51 : exception: nested: pa_context_connect() has failed: Connection refused

mpd.conf を修正する必要がありそうです。

mpd.conf の設定

audio_output セクションを編集してみます。

pulseaudio を無効にし、alsa を有効にします。

# diff -u /etc/mpd.conf.orig /etc/mpd.conf
--- /etc/mpd.conf.orig  2020-06-02 03:26:30.748940801 -0400
+++ /etc/mpd.conf       2020-06-03 03:14:50.911571804 -0400
@@ -203,15 +207,16 @@
 #
 # An example of an ALSA output:
 #
-#audio_output {
-#      type            "alsa"
-#      name            "My ALSA Device"
-##     device          "hw:0,0"        # optional
+audio_output {
+       type            "alsa"
+       name            "My ALSA Device"
+       device          "hw:1,0"        # optional
+       mixer_type      "software"
 ##     mixer_type      "hardware"      # optional
 ##     mixer_device    "default"       # optional
 ##     mixer_control   "PCM"           # optional
 ##     mixer_index     "0"             # optional
-#}
+}
 #
 # An example of an OSS output:
 #
@@ -275,12 +280,12 @@
 #
 # An example of a pulseaudio output (streaming to a remote pulseaudio server)
 #
-audio_output {
-       type            "pulse"
-       name            "My Pulse Output"
-##     server          "remote_server"         # optional
-##     sink            "remote_server_sink"    # optional
-}
+#audio_output {
+#      type            "pulse"
+#      name            "My Pulse Output"
+###    server          "remote_server"         # optional
+###    sink            "remote_server_sink"    # optional
+#}
 #
 # An example of a winmm output (Windows multimedia API).
 #

alsa の出力先デバイスの設定である device "hw:1,0" の部分は、前もって aplay -l または aplay -L で調べておきます。

# ( LANG=C; aplay -l )
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

あらためて ncmpcpp を動かしますが、それでもなりません。うーん。

以下のコマンドを使って直接 alsa で音をだそうとしてみましたがうんともすんともいいません。

# aplay --device=hw:1,0 test.wav
# speaker-test -c2 -D hw:1,0

少し検索するとヒントを発見しました。 Linuxで音が出ないときに確認するポイント

ALSAじたいもミュートの設定をもっているので,そちらも確認する 下のように,MasterとPCMが0より大きくてミュートになっていないならOK

# alsamixer

ncurses な画面ですが使い方がよくわからない。TeraTermからだと激しく文字化けします。F6サウンドカード選択 してオンボードサウンドカードを選択してみると、まさにこれでした。Master の 値が 0 で、さらにミュートになってました。

左右キーで Master を選択し、上下で値を変更します。あと m キーでミュートの ON/OFF 切り替えです。

調整した後、あらためて ncmpcpp を動かします。おお、鳴りました。

その後いろいろググってみると、以下のコマンドでも同じ事ができました。

# amixer -c1 sset Master 80% unmute

最初は音がでないもんですから、ちょっと焦っちゃいましたけど、ざっと見返してみると、さほど難しい要素もなく動かせました。