narou.rbをUbuntuへインストールする (改造版AozoraEpub3)

# 目的
1. 改造版AozoraEpub3の最新版を使用する (2025.01.27時点で 1.1.1b30Q)
1. 読書端末はKindle PaperWhiteとする
1. Javaも含めて最新版(あればLTS)を使用する
1. 無職転生　- 異世界行ったら本気だす - の変換がEPUBで完了すること
1. できる限りnarou.rbで設定しているCSSスタイルに準拠すること

## 手順として参考にしたサイト

https://wiki.chobits.com/?Linux%E3%81%A7%E5%B0%8F%E8%AA%AC%E5%AE%B6%E3%81%AB%E3%81%AA%E3%82%8D%E3%81%86

## 2024/03/11時点で採用したバージョン
* [jp.ubuntu.comm](https://jp.ubuntu.com/download)から ubuntu-24.04.1-desktop-amd64.iso
* rbenv環境を使用し3.4.2をインストール
* openjdk-21-jdk
* [改造版AozoraEpub3](https://github.com/kyukyunyorituryo/AozoraEpub3)から AozoraEpub3-1.1.1b30Q.zip 

## 実際のインストール手順

### Ubuntu
Ubuntuのインストール手順は本筋と関係ないので割愛、以下インストール後の環境
``` shell
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=nobel
DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"
```

### ruby 3.3.0
rbenv環境の構築を含めて
``` shell
$ cd
$ sudo apt install git
** rbenvをクローンするのにgitが必要

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bashrc
$ source ~/.bashrc
** rbenvを使用出来るように.bashrcへ設定を追記した後に設定を読み直し

$ sudo apt install autoconf patch build-essential rustc libssl-dev \
  libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev \
  libffi-dev libgdbm6 libgdbm-dev libdb-dev uuid-dev
** ruby-buildコマンドを導入する為に必要なパッケージをインストール

$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
** ruby-buildコマンドを導入できたので、これ以降はrbenvを使用したruby 3.3.0のインストール

$ rbenv install -l
3.1.6
3.2.7
3.3.7
3.4.2
jruby-9.4.12.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.1.2
truffleruby+graalvm-24.1.2

Only latest stable releases for each Ruby implementation are shown.
Use `rbenv install --list-all` to show all local versions.
$ rbenv install 3.4.2
NOTE: to activate this Ruby version as the new default, run: rbenv global 3.4.1
$ rbenv global 3.4.2
$ ruby -v
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x86_64-linux]
```

### openjdk-21-jdk
``` shell
$ cd
$ sudo apt install openjdk-21-jdk
** openJDK21のインストール概要
$ java --version
openjdk 21.0.6 2025-01-21
OpenJDK Runtime Environment (build 21.0.6+7-Ubuntu-124.04.1)
OpenJDK 64-Bit Server VM (build 21.0.6+7-Ubuntu-124.04.1, mixed mode, sharing)
```

### 改造版AozoraEpub3のインストール
AozoraEpub3-1.1.1b30Q.zip をユーザーディレクトリ直下にAozoraEpub3として解凍する

``` shell
$ cd
$ wget https://github.com/kyukyunyorituryo/AozoraEpub3/releases/download/v1.1.1b30Q/AozoraEpub3-1.1.1b30Q.zip
$ unzip AozoraEpub3-1.1.1b30Q.zip -d AozoraEpub3
$ cd AozoraEpub3
$ java -cp AozoraEpub3.jar AozoraEpub3 --help
usage: AozoraEpub3 [-options] input_files(txt,zip,cbz)
version : 1.1.1b30Q
```

### narou.rbをインストールする

``` shell
$ cd
$ gem install tilt -v 2.4.0
$ gem install narou
$ narou version
3.9.1
```

:::note warn
正式対応までの暫定手順として、gem install tilt -v 2.4.0 を追記
この対応でWEB UI起動時のエラーを回避可能
:::

#### パッチの適用
:::note info
この作業は2025/03/04時点で必要、公式にマージされれば不要になるのでいずれ削除するかも
:::

``` shell
$ cd
$ wget https://github.com/kokotaro/narou/releases/download/PR446/narou_PR446.zip

narouの場所を確認
$ gem which narou
/home/user/.rbenv/versions/3.4.2/lib/ruby/gems/3.4.0/gems/narou-3.9.1/lib/narou.rb

$ unzip -o narou_PR446.zip -d /home/user/.rbenv/versions/3.4.2/lib/ruby/gems/3.4.0/gems/narou-3.9.1/webnovel/
Archive:  narou_PR446.zip
  inflating: /home/user/.rbenv/versions/3.4.2/lib/ruby/gems/3.4.0/gems/narou-3.9.1/webnovel/ncode.syosetu.com.yaml
  inflating: /home/user/.rbenv/versions/3.4.2/lib/ruby/gems/3.4.0/gems/narou-3.9.1/webnovel/novel18.syosetu.com.yaml
上書き設定なので確認したい場合には-o オプションを削除
```

### narou.rbの初期化作業

``` shell
$ cd
$ mkdir MyNovel
$ cd MyNovel
$ narou init
... 中略
AozoraEpub3のあるフォルダを入力して下さい:
(未入力でスキップ)
>~/AozoraEpub3
... 中略
(未入力で 1.8 を採用)
>

(次のファイルを書き換えました)
/home/user/AozoraEpub3/chuki_tag.txt

(次のファイルをコピーor上書きしました)
/home/user/AozoraEpub3/AozoraEpub3.ini
/home/user/AozoraEpub3/template/item/style_custom/font.css
AozoraEpub3の設定を終了しました
初期化が完了しました！
現在のフォルダ下で各種コマンドが使用出来るようになりました。
まずは narou help で簡単な説明を御覧ください。
```

:::note info
"MyNovel"の命名は任意で問題ないが、全角文字やスペース等が無い名称を推奨します
:::

### 無職転生のダウンロードと変換
以下のようにePUBの変換にエラーがなければ完了
``` shell
$ narou download n9669bk
...
ID:0　無職転生　- 異世界行ったら本気だす - の変換を開始
小説状態の調査結果を 調査ログ.txt に出力しました（エラー：0件、警告：43件、INFO：4件）
縦書用の変換が終了しました
AozoraEpub3でEPUBに変換しています...........変換しました
[理不尽な孫の手] 無職転生　- 異世界行ったら本気だす -.epub を出力しました
EPUBファイルを出力しました
小説の保存フォルダを開きますか (y/n)?: n
```

# 結論
残課題はWindows版と同様に5.のスタイルの適用があるが、他の目的は達成したと思っている。Linux版のkindlegenは正規版としてはダウンロード不可なので、ここでは取り扱わないがどこかに転がっているしWindows版と手順は変わらないので自己責任で。