予約録画ツールで苦労する

作業開始:2016/05/21 掲載:2016/06/25

NTPクライアント

予約録画ツール導入に先立って、時計の正確性を保つためにNTPクライアントを導入しておく。
こちらを参考に、「chrony」をインストール。

$ su
# apt-get install chrony

この「chrony」、NTPクライアントとサーバの両方の機能を持っているそうだが、今回はクライアントとしてのみ使う。

# nano /etc/chrony/chrony.conf

設定ファイルを書き換え。NTPサーバの参照設定を変更する。
元々の記述を下記の通りコメントアウト。

# server 0.debian.pool.ntp.org offline minpoll 8
# server 1.debian.pool.ntp.org offline minpoll 8
# server 2.debian.pool.ntp.org offline minpoll 8
# server 3.debian.pool.ntp.org offline minpoll 8

で、下記を追加。これはプロバイダがOCNの場合。この辺は人によって違ってくる。

server ntp-tk01.ocn.ad.jp iburst minpoll 10 maxpoll 14
server ntp-tk02.ocn.ad.jp iburst minpoll 10 maxpoll 14
server ntp-tk03.ocn.ad.jp iburst minpoll 10 maxpoll 14

設定オプションについて:
 iburst・・・起動直後、一定間隔で4回の問い合わせを行う。同期が早くなる。
 minpoll・・・最短修正間隔の指定。単位は2を底とした[秒]の対数。ここでは値として "10" を指定しているので、最短 2^10=1024[秒]ごとに時刻修正が入ることになる。
 maxpoll・・・最長修正間隔の指定。設定値の意味はminpollと同じ。ここでは 2^14=16384[秒]≒4時間半ごとの時刻修正となる。

参照先NTPサーバの優先順位としては、

  1. 自分の利用しているプロバイダが用意しているサーバ
  2. 国内の公開NTPサーバ

で選ぶ。これはWindowsだろうがUNIXだろうが同じ。
海外のサーバは除外。というかわざわざ選ぶメリットはない。
参考: プロバイダが用意しているサーバの一覧 国内の公開サーバ一覧

設定を書き変えたらファイルを保存。
反映させるためにサービスを再起動。

# /etc/init.d/chrony restart

確認。

# date

表示される時刻が正しければ、一応Ok。

Chinachu

Linux上で動く予約録画ツールはいくつか知られているが、その中で、「そこそこ軽く、クセがなさそう」という印象からこれを選んだ。
何と読むのか。やっぱり「ちなちゅ」?。
アニメが元ネタだそうだがソフト自体はアニメに特化しているワケではなく、普通に様々な番組の録画に使えるそうな。

僕も高校くらいまでは結構なマンガ・アニメオタクだったんだが、ハタチ過ぎた頃からアニメとはだいぶ縁遠くなってしまった。
マンガは今でも人並み以上に読むけれども。
昔は「きれいなもの」というか、「現実とはかけ離れた美しい物語」的なもの(要は女の子がかわいいやつ)に惹かれたものだが、
いまはそう言ったものにはあまり感情移入できなくて、それよりも「しょうもない現実を笑い飛ばしてやれ」的なマンガを面白く感じる。
ちなみに最近一番笑ったのは「波よ聞いてくれ」。

話がそれた。Chinachuのインストールである。
rootでインストールしてはいけないそうなので一般ユーザーで作業。Chinachu専用のユーザーを作って作業すると、のちのち何かと扱いやすい。

# adduser chinachu

Linuxに初めて触ったころ読んだハウツー本には「ユーザーの追加はuseraddコマンド」とあって、僕は今回ついついそうしてしまったが、
この場合「useradd」よりは「adduser」がお薦め。
useradd」はコマンド一発、必要な設定をオプションとして与えてなければならないのに対し、
adduser」は対話形式で聞いてきてくれるのでラク。
聞かれたことに対しては何も入力せずEnter(=デフォルト設定)でかまわない。パスワードくらいは設定した方が良いとは思うけど。

まずはリポジトリのコピー。

# su - chinachu
$ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
Cloning into '/home/chinachu/chinachu'...
remote: Counting objects: 8110, done.
remote: Total 8110 (delta 0), reused 0 (delta 0), pack-reused 8109
Receiving objects: 100% (8110/8110), 11.34 MiB | 2.00 MiB/s, done.
Resolving deltas: 100% (3195/3195), done.
Checking connectivity... done.

コピーした中にはインストール用のシェルスクリプト "chinachu" が含まれている。
$ cd ~/chinachu/
$ ll
合計 184
drwxr-xr-x 7 chinachu chinachu  4096 6月 11 16:46 ./
drwxr-xr-x 8 chinachu chinachu  4096 6月 11 16:46 ../
drwxr-xr-x 8 chinachu chinachu  4096 6月 11 16:46 .git/
-rw-r--r-- 1 chinachu chinachu   200 6月 11 16:46 .gitignore
-rw-r--r-- 1 chinachu chinachu   471 6月 11 16:46 .gitmodules
-rw-r--r-- 1 chinachu chinachu   290 6月 11 16:46 .travis.yml
-rw-r--r-- 1 chinachu chinachu  1107 6月 11 16:46 LICENSE
-rw-r--r-- 1 chinachu chinachu   303 6月 11 16:46 README.md
drwxr-xr-x 2 chinachu chinachu  4096 6月 11 16:46 api/
-rw-r--r-- 1 chinachu chinachu 26528 6月 11 16:46 app-cli.js
-rw-r--r-- 1 chinachu chinachu 16537 6月 11 16:46 app-operator.js
-rw-r--r-- 1 chinachu chinachu 33594 6月 11 16:46 app-scheduler.js
-rw-r--r-- 1 chinachu chinachu 22322 6月 11 16:46 app-wui.js
-rwxr-xr-x 1 chinachu chinachu 14899 6月 11 16:46 chinachu*
    ←これ。
-rw-r--r-- 1 chinachu chinachu  2565 6月 11 16:46 config.sample.json
drwxr-xr-x 3 chinachu chinachu  4096 6月 11 16:46 node_modules/
-rw-r--r-- 1 chinachu chinachu  1196 6月 11 16:46 package.json
-rw-r--r-- 1 chinachu chinachu   656 6月 11 16:46 rules.sample.json
drwxr-xr-x 2 chinachu chinachu  4096 6月 11 16:46 test/
drwxr-xr-x 6 chinachu chinachu  4096 6月 11 16:46 web/

インストールスクリプトを走らせる。

$ ./chinachu installer
Chinachu Installer Menu:
[!] These are installed under all /home/chinachu/chinachu/...
[!] Recommend the Auto installation.
1) Auto (full)          4) Node.js Environment  7) ffmpeg
2) Auto (fast)          5) Node.js Modules
3) submodule            6) epgdump
what do you install? >
1  ←1)の "Auto(full)" を選択。
selected: Auto (full)

選択肢 "1) Auto (full)" 、つまりフルインストールを指定。ところが
ここでハマった。

wgetが・・・

インストールの過程で以下のメッセージが出た。

・・・ここまでは順調

Installing Node using Nave...
--2016-06-11 17:40:27-- https://github.com/isaacs/nave/archive/v0.5.1.tar.gz
github.com (github.com) をDNSに問いあわせています... 192.30.252.131
github.com (github.com)|192.30.252.131|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... ヘッダ内で読み込みエラー(The request is invalid.)です
再試行しています。

--2016-06-11 17:40:29-- (試行: 2) https://github.com/isaacs/nave/archive/v0.5.1.tar.gz
github.com (github.com)|192.3031|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... ヘッダ内で読み込みエラー(The request is invalid.)です
再試行しています。

・・・試行20回の末失敗。

Installing epgdump from
--2016-06-11 17:43:08-- https://github.com/stz2012/epgdump/archive/master.tar.gz
github.com (github.com) をDNSに問いあわせています... 192.30.252.131
github.com (github.com)|192.30.252.131|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... ヘッダ内で読み込みエラー(The request is invalid.)です
再試行しています。

・・・同じく、試行20回の末失敗。

シェルスクリプト "chinachu" の中で、"Nave" と "epgdump" をダウンロードしているが、それが失敗しているようだ。
"epgdump" は名前からして番組表関係のプログラムだと思うが、 "Nave" は皆目見当が付かない。ググってみても「Node.js」とか
「サーバーサイドJavaScript」とか、見慣れない言葉のオンパレード。

最初は相手方が混んでるとかの問題かと思い、時間をおいて再チャレンジするも状況は変わらず。
仕方ないのでスクリプトの内容を読んでみる。

Naveのダウンロードは157行目。

wget -O - https://github.com/isaacs/nave/archive/v0.5.1.tar.gz | tar zxvf - -C $NAVE_DIR nave-0.5.1/nave.sh

epgdumpのダウンロードは185〜188行目。

local EPGDUMP_TB="https://github.com/stz2012/epgdump/archive/master.tar.gz"

echo "Installing epgdump from $EPGDUMP_GIT"
wget -O - $EPGDUMP_TB | tar zxvf - -C $USR_DIR/src/epgdump

これらを見ても何が問題なのか、僕にはさっぱり分からない。
・・・というか、"chinachu" スクリプト自体に問題は無いわな。

ファイルのダウンロードツールとして、"wget" が使われている。これがうまく働いていないようだ。
試しにコマンドプロンプトから手動で同じことをしてみると、やはり失敗する。

$ wget https://github.com/isaacs/nave/archive/v0.5.1.tar.gz
--2016-06-11 21:02:20-- https://github.com/isaacs/nave/archive/v0.5.1.tar.gz
github.com (github.com) をDNSに問いあわせています... 192.30.252.131
github.com (github.com)|192.30.252.131|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... ヘッダ内で読み込みエラー(The request is invalid.)です
再試行しています。

だがwgetがまるっきりダメというわけでもない。同じ "chinachu" スクリプトの中で、217〜219行目あたりでもwgetによるダウンロードが行われているが、
こちらは問題なくできている。

local FFMPEG_XZ="http://johnvansickle.com/ffmpeg/releases/${FFMPEG_FN}.tar.xz"

wget $FFMPEG_XZ

つまり「https://」からのダウンロードに限りコケているように見える。
こういう場合真っ先に疑うのは、「必要なモジュールが足りない」「設定が正しくない」といったソフト的な問題だが、正直、僕には皆目見当が付かない。
"wget" "https" "The request is invalid" でググってみても、同じような事例が1つ2つヒットしただけで、明確な解決方法には辿り着けなかった。
事例も英語どころかドイツ語(たぶん)だったりして、正直よく分からない。

ふと思い立って、別のパソコンで全く同じ手順を踏んでみた。OSのインストールからchinachuの導入までを、手元にあったノートPC
(CeleronM 1.5GHzのやや骨董品)に対してやってみたのだ。

Installing Node using Nave...
--2016-06-15 11:36:12-- https://github.com/isaacs/nave/archive/v0.5.1.tar.gz
github.com (github.com) をDNSに問いあわせています... 192.30.252.129
github.com (github.com)|192.30.252.129|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://codeload.github.com/isaacs/nave/tar.gz/v0.5.1 [続く]
--2016-06-15 11:36:13-- https://codeload.github.com/isaacs/nave/tar.gz/v0.5.1
codeload.github.com (codeload.github.com) をDNSに問いあわせています... 192.30.253.120
codeload.github.com (codeload.github.com)|192.30.253.120|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK

普通にインストールできてしまった。

こりゃおかしい、と、本機(FMV−TC5210のことね)でもう一度OSのインストールから注意深くやり直すも、やはり同じところでコケる。
つまりwgetの動作の違いは、ハードウェア構成の違いに起因している可能性がある。

←戻る:録画ツール導入  ↑トップ  次へ:苦労の末・・・→