2014/10/11 2014/10/12
昨日の夜に嫁から一部番組が予約しても録れてなかったとクレームが入った為、試しにchinachu updaterをかけてみたら5月にも発生して逃げれたと思っていた現象が再発したので対応の覚書を。
chinachu updaterをかけ、
Do you want to run chinachu installer (fast) [Y/n]?
をyで進めたあと、以下の様な感じでexecSyncのrebuildで落ちます。
Installing Node Modules using NPM…
npm WARN package.json opts@1.2.2 No repository field.
npm http GET https://registry.npmjs.org/execsync/0.0.5
npm http 304 https://registry.npmjs.org/execsync/0.0.5execsync@0.0.5 install /home/chinachu/Chinachu/node_modules/execsync
node-gyp rebuildTraceback (most recent call last):
File "/home/chinachu/Chinachu/.nave/installed/0.10.26/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py", line 18, in
sys.exit(gyp.script_main())
AttributeError: 'module' object has no attribute 'script_main'
gyp ERR! configure error
gyp ERR! stack Error:gyp
failed with exit code: 1〜以下省略〜
5月の時は作者の方に助けを求めてbuild済のexecSyncを頂き、これを当てた所治りました。
その後、gccが4.7以上じゃないとダメという事が分かり、4.8.2に上げた所、普通にchinachu updaterで上がるようになっていました。
CentOSは6.5でもgcc 4.4.7だったので手動で4.8を入れないとダメだったのいうのがオチと。
ただ、今回はその状態でもchinachu updaterが同じ事象で落ちました。
execSyncとnode-gypが落ちます。
という事で、一旦npmをインストールしてローカルにインストールしたブツをchinachuのnode_modulesに移植する形を取ってみました。
まずはyumでインストール出来るように細工して、yumよりインストール。
rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install nodejs npm --enablerepo=epel
これてnpmが使えるようになるので、execSyncとnode-gypをインストール。
npm install execSync npm install node-gyp
記録を残し忘れましたが、WRNが出てパッケージが足りないものが出たりしたのでそれは同様にインストールした上で再度トライすれば入りました。
これで/usr/lib/node_modules配下にモジュールが置かれます。
で、chinachuは独自で.nave/installed/0.10.26/lib/node_modules/npm/node_modules配下にモジュールを置いているので、
.nave/installed/0.10.26/lib/node_modules/npm/node_modulesから
cp -pRf /usr/lib/node_modules/execSync ./ cp -pRf /usr/lib/node_modules/node-gyp ./
でコピーした上でchinachu installerから
5) Node.js Modulesを選んで上げたらちゃんと進みました。
これでサービスが上げられる状態になりました。
ただ、chinachu updaterだと.nave/installed/0.10.26/lib/node_modules/npm/node_modules配下を再ダウンロードしてrebuildしているみたいなので
また再発します。
これの解消はもう少し調べてみます。
で、そもそものクレームの内容がこれで解決できたかというと出来てません。
録画は正しく行えていたことはChinachuのログから確認出来ました。
録画後にtssplit.pyを動かして不要な情報を消してファイルサイズの縮小を図っているのですが、なぜかTBSの番組だけ実番組がシェイプアップにより削除されている事が判明・・・
なにげにTBSって滅多に録画してなかったみたい。
とりあえず番組情報から録画したファイルがTBSだった場合はtssplit.pyを通さない形にしました。
多分tssplit.pyに手を入れないといけないんだと思われます。
コメントとトラックバック
コメントはありません