2015年8月22日土曜日

CentOS7 に tmux をインストール

CentOS7 に tmux をインストールした際のメモです

資材

  • tmux
    • http://tmux.github.io/
    • https://github.com/tmux/tmux/releases/download/2.0/tmux-2.0.tar.gz
  • libevent
    • http://libevent.org/
    • https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
環境
gcc バージョン 4.8.2 20140120 (Red Hat 4.8.2-16)

ダウンロード

オリジナルソースはいつも /usr/local/src に置いています

# cd /usr/local/src/
# wget https://github.com/tmux/tmux/releases/download/2.0/tmux-2.0.tar.gz
# wget https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz

libeventのインストール

注意:我が家のCentOSは netinstall の minimal版です。環境によりlibeventが先行でインストールされている可能性があるので適宜処理してください

# cd /usr/local/src/
# tar -zxvf libevent-2.0.22-stable.tar.gz
# cd libevent-2.0.22-stable
# ./configure
# make
# make install
ldconfig の パスを追加し ldconfig をリロード
# echo /usr/local/lib >> /etc/ld.so.conf.d/libevent.conf
# ldconfig
pkgconfig の検索パスにlibeventも追加
# ln -s /usr/local/lib/pkgconfig/libevent.pc /usr/lib/pkgconfig/libevent.pc
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
以上で libevent の導入終わり

tmuxのインストール

# tar -zxvf tmux-2.0.tar.gz
# cd tmux-2.0
# ./configure --prefix=/opt/tmux-2.0.22

checking for LIBEVENT... yes

が通っていることを確認する
失敗してたら pkgconfig の設定を見直すこと
# make 
# make install
最後に /usr/local/bin にシンボリックリンクを通して終了
ln -s /opt/tmux-2.0.22/bin/tmux /usr/local/bin/tmux

個人的には アップグレードの際に 旧バージョンを残してきり戻せるようにするのが好きなので
/opt下にバージョンごとのディレクトリを用意して PATHのbinにシンボリックリンクを張るようにしています

2015年2月1日日曜日

CentOS7でDLNAサーバー(minidlna)を構築 -サービス設定編-

CentOS7 を DLNAサーバーに でインストールした minidlna をサービス登録&
firewallへの追加を行います

minidlna を systemctl へ登録


CentOS7 より systemv が 廃止?され サービスは systemctl 経由で行われるようになりました
minidlna はまだ 対応していないため自前で作る必要があります

作り方はいたって簡単

/usr/lib/systemd/system/ に 以下の service ファイルを設置するだけ

# cat /usr/lib/systemd/system/minidlna.service
[Unit]
Description=minidlna server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
PIDFile=/var/run/minidlna/minidlna.pid
EnvironmentFile=/etc/sysconfig/minidlna
ExecStart=/usr/local/sbin/minidlnad -R -f $CONFIG_FILE
ExecStop=/bin/kill -SIGTERM $MAINPID
ここに書かれるのは 起動/停止コマンドと環境ファイルのみとなるため
起動に必要な引数は EnvironmentFile に記載します
起動引数に -R をつけて ライブラリをスキャンしなおすようにしています
EnvironmentFile の中身は
# cat /etc/sysconfig/minidlna
CONFIG_FILE=/etc/minidlna.conf
だけです
minidlna.conf の中身は前回作ったものです
これで
systemctl start minidlna
systemctl stop minidlna
が成功すればOK

# systemctl status minidlna
minidlna.service - minidlna server
   Loaded: loaded (/usr/lib/systemd/system/minidlna.service; static)
   Active: active (running) since 日 2015-02-01 14:45:40 JST; 5h 56min ago
 Main PID: 12790 (minidlnad)
   CGroup: /system.slice/minidlna.service
           └─12790 /usr/local/sbin/minidlnad -R -f /etc/minidlna.conf

 2月 01 14:45:40 localhost.localdomain systemd[1]: Started minidlna server.

firewalld への追加


DLNAサービスで必要なポートは
  • udp 1900
  • tcp 5000
です
そのほか minidlna.conf で 指定したWEBポートを必要あればあけます
一つ一つ
# firewall-cmd --add-port=XXXX --permanent
とかしてもいいんですが
今回は service として登録してしまいました
/usr/lib/firewalld/services/
には service 毎の設定が入っているため同じようにファイルを作ります
内容は以下のとおり
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>minidlna</short>
  <description></description>
  <port protocol="udp" port="1900"/>
  <port protocol="tcp" port="5000"/>
</service>
これで
# firewall-cmd --add-service=minidlna --permanent
# firewall-cmd --reload
とすれば ポートが開放されるので 他のDLNA機器から検索できるか確認してみましょう

CentOS7でDLNAサーバー(minidlna)を構築 -インストール編-

CentOS7にDLNAサーバーをインストールしたのでメモ
当初 mediatomb を インストールしようとしたが コンパイル時にエラーとなるためあえなく撤退し minidlna をインストールしました

大まかな流れ

1. minidlna のコンパイル&インストール
2. systemctl への追加
3. firewalld への登録

minidlna のコンパイル&インストール

資材

  • minidlna-1.1.4.tar.gz
  • ffmpeg
必要なRPMをインストール

sudo yum install libjpeg-turbo-devel libid3tag-devel libogg-devel libvorbis-devel flac-libs flac-devel

ffmpeg から 各種ランタイムの調達

ffmpeg を git から調達
基本的に minidlna で使用するライブラリ群しかほしくなかったのでライブラリのみをコンパイルインストールしました
$ git clone git://source.ffmpeg.org/ffmpeg.git
$ cd ffmpeg
$ ./configure --enable-shared --disable-programs
$ make
$ sudo make install
で /usr/local/lib に soファイルが配備されます

minidlna の コンパイルインストール

$ tar -zxvf minidlna-1.1.4.tar.gz
$ cd minidlna-1.1.4
$ ./configure
$ make
$ sudo make install

ld パスの追加

ffmpeg のライブラリインストールで各種モジュールが /usr/local/lib に配置されたので配置先もldパスに追加し
/etc/ld.so.conf.d/ 配下に /usr/local/lib を記述したファイルを配置し読み込みなおす
$ sudo echo '/usr/local/lib' > /etc/ld.so.conf.d/minidlna.conf
$ sudo ldconfig

設定ファイルの配置


minidlna.conf が ソースディレクトリにいるので /etc/ に配置
$ sudo cp minidlna.conf /etc/

/etc/minidlna.conf を 自分の環境に合わせて変更してください
以上で sudo /usr/local/sbin/minidlnad -f /etc/minidlna,conf を叩けば minidlna が起動できます。