Calibre-Web on TS-220

抗えない Python3 への移行
web
qnap
ts220
calibreweb
python
公開

2021年6月30日

概要

TS-220 バージョン 4.3.3.1677 (2021/06/08) 上で Calibre-Web を動作させる.すべての操作は QNAP で言うところの admin ユーザで行う.

Entware-std のインストール

※作業はクライアント側からブラウザ経由

  1. AppCenter にリポジトリを追加 [設定] - [アプリリポジトリ] より https://www.qnapclub.eu/en/repo.xml を追加.

  2. qnapclub.eu から Entware-std をインストール Entware-std 1.03 ※ Python3 系のみ

共有フォルダの作成

※作業はクライアント側からブラウザ経由

[コントロールパネル] - [共有フォルダ] より Calibre-Web を作成.

[自動的にパスを指定] で /share/MD0_DATA/Calibre-Web に生成される.

レイアウトは下記を想定.

Calibre-Web
├── .venv
└── Calibre Library

パッケージのインストール

※作業はクライアント側から SSH 経由

gcc

opkg install gcc

不要かも知れない.

python 関連

opkg install python3-dev
opkg install python3-pip

Python 仮想環境の作成

※作業はクライアント側から SSH 経由

システムの Python 環境に影響しないよう仮想環境を作成する.

1. 作業ディレクトリに移動

cd /share/MD0_DATA/Calibre-Web

2. 仮想環境を作成

python -m venv .venv --without-pip

--without-pip を省くとエラーが発生する.

3. 仮想環境をアクティブに

source .venv/bin/activate

4. 仮想環境の確認

which python
which pip

pip が仮想環境下にないことを確認.

5. pip をインストール

curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py

6. 仮想環境を非アクティブ → アクティブに

deactivate
source .venv/bin/activate

7. 仮想環境の再確認

which python
which pip

pip が仮想環境下にあることを確認.

※ pip の位置が仮想環境下にない場合,pip install が意図しない動作になるので注意.

Calibre-Web のインストール

※作業はクライアント側から SSH 経由

1. インストール

仮想環境がアクティブになっていることを確認し

pip install calibreweb

途中 /root/.cache の容量を圧迫しシステムが不安定になるかも知れない.その場合 /root/.cache 以下を削除.

2. 確認

which cps

/share/MD0_DATA/Calibre-Web/.venv/bin/cps

この時点で Calibre-Web は起動可能.

Calibre Library の配置

※作業はクライアント側から FTP や同期アプリ経由

/share/MD0_DATA/Calibre-Web/Calibre Library に配置.

自動起動の設定

※作業はクライアント側から SSH 経由

1. autorun.sh の作成

/share/MD0_DATA/.qpkg/autorun/autorun.sh を作成.

autorun.sh
#!/bin/sh
/share/MD0_DATA/Calibre-Web/.venv/bin/cps

2. qpkg.conf の編集

/etc/config/qpkg.conf に [Autorun] ブロックを追加.

qpkg.conf
[Autorun]
Name = Autorun
Version = 0.1
Author = hasenpfote
QPKG_FILE = Autorun.qpkg
Date = 2021-06-30
Shell = /share/MD0_DATA/.qpkg/autorun/autorun.sh
Install_Path = /share/MD0_DATA/.qpkg/autorun
Enable = TRUE

Calibre-Web の動作確認

※作業はクライアント側からブラウザ経由

  1. http://<NASのアドレス>:8083 へアクセス
  2. Location of Calibre Database /share/MD0_DATA/Calibre-Web/Calibre Library
  3. ログイン(デフォルト) admin / admin123

※ DBを更新した場合,[Admin] - [Administration] - [Restart] などで反映.

その他

作業コマンド

pip 全消去

pip freeze > piplist.txt
pip uninstall -y -r piplist.txt

opkg 確認

opkg list-installed

opkg アンインストール

opkg remove <package> –force-removal-of-dependent-packages

特定のユーザで操作を行う

もしも特定のユーザで操作を行うなら…

※ opkg で sudo コマンドをインストールしないこと

1. sudoers の編集

/usr/etc/sudoers直接編集

例えば特定グループ(administrators)に適用する場合は次の行を追加.

sudoers
%administrators ALL=(ALL) ALL

特定グループ所属のユーザがコマンドを実行すると,そのユーザのパスワードを入力する形式になる.

2. profile の編集

~/.profile に次の行を追加.

.profile
export PATH=/opt/bin:$PATH

参考

トップに戻る