2015年9月22日火曜日

NASの自作 Part40

今日はComicCafeのインストールとMacからの移行をテストしようと思います。
なにわともあれJavaをインストールします。開発ではOracleのJDKを使っているので、今回はOpenJDKをインストールしてみます。

# 開発はしないので実行環境のみをインストール
apt-get install openjdk-7-jre
# インストールしたJavaのバージョンの確認
java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-1~deb7u1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

ComicCafeサーバーはここにあるjarファイルをダウンロードすればOKなのですが、今回は開発中のまだリリースしてないバージョンを使います。
Macで運用しているComicCafeからOMVに移行する時に問題になりそうな懸念事項は2つあります。
  1. MacではファイルシステムにHFS+を使っているのですが、これはLinuxを生みの親であるLinus Torvalds氏が怒るぐらいファイル名の扱いなどが特殊です。これが原因でComicCafeがファイルを正しく認識できない可能性があります。
  2. Macでは外付けHDDを使って自炊ファイルを保存していたので、今回OMVにあたって自炊ファイルのパス(保存ドライブ)が変わります。ComicCafeではDBにファイルのパスを保持しているのでDBのデータを書き換える必要があります。

この2つの問題をパスすることができれば、移行後に自炊ファイルを再インポートしないですみます。今回はテストなので、Mac上に100ファイルぐらいの自炊ファイルをインポートしたComicCafeサーバーを用意して、それをOMVに移行してみたいと思います。
まず、Mac上でComicCafeサーバーを起動して、外付けHDDに保存されている自炊ファイルをインポートします。Mac上でのパスは以下になります。
/Volumes/SiliconPower-1TB/漫画

インポート後にComicCafeクライアントから自炊ファイルが読めることを確認します。次に漫画ディレクトリをOMVにコピーします。そしてOMV上のパスを確認します。
# RAIDがマウントされているパスを確認(md0)
df
Filesystem                                               1K-blocks    Used   Available Use% Mounted on
rootfs                                                   110664528 1819608   103223468   2% /
udev                                                         10240       0       10240   0% /dev
tmpfs                                                      3297064     796     3296268   1% /run
/dev/disk/by-uuid/6445948c-2f87-4c3c-a949-38a617780bc8   110664528 1819608   103223468   2% /
tmpfs                                                         5120       0        5120   0% /run/lock
tmpfs                                                      7551960       0     7551960   0% /run/shm
/dev/md0                                               23347791696 8943868 23338847828   1% /media/74a33bfa-edae-4b56-92cc-33fa5c44ba82
# sharedディレクトリ配下に先ほどコピーした漫画ディレクトリが存在することを確認
ls /media/74a33bfa-edae-4b56-92cc-33fa5c44ba82/shared
漫画

OMV上でComicCafeサーバーを起動してWeb画面にアクセスできるか確認します。動作確認後にComicCafeを停止します。comic-cafe-server.jarと同じディレクトリにcacheとh2dbというディレクトリが作成されているはずなので削除します。
# ComicCafeを起動する
java -Xms512M -Xmx1024M -jar ./comic-cafe-server.jar &
# ComicCafeのプロセスIDを検索
ps -ef | grep java
root      4401     1 56 07:46 pts/0    00:01:05 java -Xms512M -Xmx1024M -jar ./comic-cafe-server.jar
root      4519  4082  0 07:48 pts/0    00:00:00 grep java
# プロセスを停止
kill -9 4401
# cacheディレクトリとh2dbディレクトリが作成されているのを確認
ls -l
total 57440
drwxrwsrwx+ 2 root   users     4096 Sep 23 07:46 cache
-rw-rw-rw-+ 1 root   users     7815 Sep 23 07:46 comic-cafe.log
-rwxrwxr-x+ 1 nobody users 58795543 Apr 21 00:00 comic-cafe-server.jar
drwxrwsrwx+ 2 root   users     4096 Sep 23 07:46 h2db
-rwxrwxr-x+ 1 nobody users       72 Sep 22 22:43 launch.sh
# ディレクトリを削除する
rm -rf cache
rm -rf h2db

つづいてMac上のComicCafeサーバーのデータベースの内容を書き換えます。ここを参考にしてMac上のH2DBに接続して以下のSQLでパスをOMV用に更新します。この作業の前に念のためH2DBディレクトリ丸ごとバックアップしておいたほうがいいと思います。

update CATEGORY set PATH = REPLACE(PATH, '/Volumes/SiliconPower-1TB/', '/media/74a33bfa-edae-4b56-92cc-33fa5c44ba82/shared/');
update SERIES set PATH = REPLACE(PATH, '/Volumes/SiliconPower-1TB/', '/media/74a33bfa-edae-4b56-92cc-33fa5c44ba82/shared/');
update BOOK set FILE_PATH = REPLACE(FILE_PATH, '/Volumes/SiliconPower-1TB/', '/media/74a33bfa-edae-4b56-92cc-33fa5c44ba82/shared/');
update IGNORE_FILE set FILE_PATH = REPLACE(FILE_PATH, '/Volumes/SiliconPower-1TB/', '/media/74a33bfa-edae-4b56-92cc-33fa5c44ba82/shared/');
commit;

SQLでパスを書き換えたら、Mac上のComicCafeとH2DBを停止して、h2dbディレクトリをOMVのcomic-cafe-server.jarと同じディレクトリにコピーします。cacheディレクトリはコピーする必要はありません。OMV上のComicCafeサーバーを起動後、自炊ファイルが読めることを確認できました。懸念してた濁点を含むファイル名なども問題なく移行できたようです。この移行方法はPCを買い換えた時や外付けHDDを変えた場合などにも使えるテクニックなので参考になれば幸いです。

0 件のコメント:

コメントを投稿