Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

CentOS6.8へRhinoBot(Discord用MusicBot)をインストールする

ゲーム中にDiscordのルームに入れると音楽を流してくれる
RhinoBot(参考)を導入しようと思ったのですが、
見事にDebian系の説明しかネット上に転がっていない(?)ので
CentOS6でのインストール手順を記載します。

インストール手順が説明されているものたち

https://github.com/Just-Some-Bots/MusicBot/wiki
Win,Ubuntu,OSX,RasberryPi,Debian,Docker
Dockerを使いこなせたらカッチョいいですが、地道にCentOSに入れていきます。
参考にするのはUbuntu

私のインストール環境

・CentOS6.8
・しなびたノートパソコン
・rootアカウント(コマンドは全てroot権限から実行)

RhinoBotに必要なものの準備

Ubuntuのインストール手順を見る限り、必要そうなのは
- git
- python3.5
- pip
- (python3.5-dev:不要?)
- libffi-dev
- libopus-dev
- libsodium-dev
- ffmpeg

・git

yum install git
ですんなり落ちてきました。

・Python 3.5

さくらVPSの標準OS(CentOS 6.7)にPython3.5.0をインストールするを参考に。
Warningはいっぱい吐きましたが、最終的に動作すればOKです。
gccがないと makeに頭から躓くので、その場合はyum install gccしましょう。
また、僕の環境ではmake後に

Substitution happens here, as the completely-expanded BINDIR is not available in configure ...

というエラーが出ましたが、一応今回の目的では問題なく動作しているので無視。
pythonを叩いてバージョンを確認。3.5以外ならPATHがうまく設定できていないので
PATH=/usr/local/bin:$PATH
export PATH

あたりで切り替えましょう。

・pip

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python3.5が動いたらpipの導入。
転んでしまうときは
yum -y install gcc gcc-c++ kernel-devel
yum -y install python-devel

を試してみてください。

・libffi-dev

yum install libffi-devel
で素直に。バージョンは3.0.5が落ちてきました。

・libopus-dev

こちらを使用。LinuxTECHというリポジトリをvi /etc/yum.repos.d/linuxtech.repoから追加。内容は

[linuxtech]
name=LinuxTECH
baseurl=http://pkgrepo.linuxtech.net/el6/release/
enabled=1
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET

念のためyum updateしてから
yum install libopus-devel

・libsodium-dev

配布元?の手順通り。Tarで固めてあるのがここに転がっているので
libsodium-1.0.10.tar.gzを選定。
cd /tmp
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.10.tar.gz
tar -xfvz libsodium-1.0.10.tar.gz
cd ./libsodium-1.0.10
./configure
make && make check
make install

でOK。

・ffmpeg

yum install ffmpeg
すんなり落ちてきました。

動作まで

本体を落とす

まずMusicBot本体をインストールしたい場所へgitを使ってクローン。僕は何も考えずに~へ。

cd ~
git clone https://github.com/Just-Some-Bots/MusicBot.git MusicBot -b master

設定、Botをサーバーに追加

記事の「準備」部分を進めていきます。
テキストエディタ云々はviでもvimでもemacsでもnanoでもいいです。

あと、リンク先では~/MusicBot/config/example_options.iniを編集していますが、
その後の実行時に内容が適用されてない感じだったので、私は直接options.iniを編集しました。
この段階でDiscordにMusicBotが追加され、OwnerID等々動作に必要なものが設定されましたね。

マトモなサーバーならiptables等々でポートを絞っているはずですが、
DiscordはTCP 443番をテキストチャットに使っている模様です。
疎通ができない場合、その辺りから疑うと良いのかも。

Bot自体の依存関係処理

次にPython上でのBotそのものに必要な依存関係をなんとかしていきます。
cd ~/MusicBot
python -m pip install -U -r requirements.txt

この際、僕の環境ではPyNaClのインストール部分にすこし時間(5分程?)が掛かりました。
この作業時、フリーズしてるように見えたのでCtrl-Cで中断したところ、pipのアプデが出来ると通知されました。
アプデしたところ、表示方法が変わってフリーズしていないことがわかるようになりました。
その後待っていたら進んだので、少しだけ待つと良さそうです。

動かしてみる

python ~/MusicBot/run.py
でMusicBotが起動します。エラーが出た場合は、かなり親切に教えてくれるので指示に従いましょう。
MusicBotの中身が起動するとDiscord側でBotがオンラインになります。
あとはDiscord側から「!play」などのコマンドを使って操作出来るでしょう。

screen or tmux

バカ正直にpythonコマンドで叩いているので、Botの動作中はずっと端末を握られっぱなしになります。
端末を落とすとBotも落ちてしまうので、このままでは実用に耐えません。
screenかtmuxを導入すると良いでしょう。
yum list | grep tmux で何も見えなかったので
yum install screen
あとはここらへんを参考にしつつscreenを作ってBotを叩き、デタッチすれば完了です。

それでは、よいゲーミングライフを!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?