skip to content
/var/log/little-things
Search any posts

Calibre-Web on TS-220

抗えない Python3 への移行

概要

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 を作成。

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

2. qpkg.conf の編集

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

[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)に適用する場合は次の行を追加。

%administrators ALL=(ALL) ALL

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

2. profile の編集

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

export PATH=/opt/bin:$PATH

参考