Linux Mint 20.1にCherryTree(アウトラインプロセッサ)をビルドしてインストールする
Mint18くらいまではaptで入れれたのに20.1にした途端にデフォルト状態ではFlatpack版しか選択肢がなくなったCherryTreeをビルドしてインストールします。
ちなみにFlatpack版はMint18からグレードアップで20.1にしたら日本語入力出来るという謎現象も起きてます。
わざわざビルドした経緯
aptから消えたので以下のプロジェクトサイトを参考にMintはありませんでしたがUbuntuの手順が大体の場合においてそのまま適用できるのでadd-apt-repositoryで追加してインストールしようと試みました
すると以下のエラーが出ました
次の PPA を追加しようとしています:
詳しい情報: https://launchpad.net/~giuspen/+archive/ubuntu/ppa
続けるには Enter キーを、キャンセルするには Ctrl + C を入力してください
Executing: /tmp/apt-key-gpghome.WkQbN5bGmx/gpg.1.sh --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys A98E8BBCABCF6A49A5DA2F43B8668B055FE1EFE4
gpg: 鍵B8668B055FE1EFE4: 公開鍵"Launchpad PPA for giuspen"をインポートしました
gpg: 処理数の合計: 1
gpg: インポート: 1
gpg: invalid key resource URL '/tmp/apt-key-gpghome.WkQbN5bGmx/home:manuelschneid3r.asc.gpg'
gpg: keyblock リソース'(null)': 一般エラーです
gpg: key 1488EB46E192A257: 鍵がないため1個の署名は検査しません
gpg: key 1488EB46E192A257: 鍵がないため1個の署名は検査しません
gpg: key A6616109451BBBF2: 鍵がないため12個の署名は検査しません
gpg: key 3B4FE6ACC0B21F32: 鍵がないため3個の署名は検査しません
gpg: key D94AA3F0EFE21092: 鍵がないため3個の署名は検査しません
gpg: key C8CAB6595FDFF622: 鍵がないため2個の署名は検査しません
gpg: key 871920D1991BC93C: 鍵がないため1個の署名は検査しません
gpg: 処理数の合計: 11
gpg: スキップした新しい鍵: 11
まぁコレ系はapt-keyでキー受信したらいけるやろって思ってやりましたがそんなもん無いぞって言われてだめでした。。。
ちなみにDockerコンテナ上のUbuntuだと何の問題も出ずにaptでインストールできたのでMint特有の問題かと思います。
そしてググっていたら同様の事象が起きているFAQを発見しそこに対応しますとは書かれていましたが(適当にタブ開きまくってたら見失ってそのURL見つけられなくなった。。。)
それが去年の話で今まだ直ってないということはそういうことなのでしょう。。。
対応すると言ってる以上そのうちaptでインストールできる時代が来るのでしょう
この記事をみて先走って次の手順を試す前に出来るかどうか試してみる価値はあります。
という訳で他の方法を試していきます
気を取り直してFlatpack版を入れる→日本語入力不可
気を取り直してsnap版を入れる→日本語入力不可
虚ろな目で無気力にビルドする。。。→イマココ
という訳でその時の手順を残しておきます。
ビルド手順
手順は以下です。
いらんもん入れたくないのでとりあえずDockerのUbuntuコンテナ内でビルドしてビルド結果をホストOSで動かします。
マルチステージビルドのインストール先がホストOS版みたいな感じだと思えばわかりやすいか?
$ docker run -it -v /usr/local/lib:/usr/local/lib --rm ubuntu bash
root@3231ee9e3af0:/# cd /usr/local/lib/
日本語ロケールでビルドしたいのでコンテナを日本語ロケールにしときましょう
root@3231ee9e3af0:/# cd /usr/local/lib/
root@3231ee9e3af0:/usr/local/lib# apt-get update -y
root@3231ee9e3af0:/usr/local/lib# apt install -y language-pack-ja systemd
〜略〜
Configuring tzdata
------------------
Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located.
1. Africa 2. America 3. Antarctica 4. Australia 5. Arctic 6. Asia 7. Atlantic 8. Europe 9. Indian 10. Pacific 11. SystemV 12. US 13. Etc
Geographic area: 6
Please select the city or region corresponding to your time zone.
1. Aden 9. Baghdad 17. Chita 25. Dushanbe 33. Irkutsk 41. Kashgar 49. Macau 57. Omsk 65. Rangoon 73. Taipei 81. Ujung_Pandang 89. Yekaterinburg
2. Almaty 10. Bahrain 18. Choibalsan 26. Famagusta 34. Istanbul 42. Kathmandu 50. Magadan 58. Oral 66. Riyadh 74. Tashkent 82. Ulaanbaatar 90. Yerevan
3. Amman 11. Baku 19. Chongqing 27. Gaza 35. Jakarta 43. Khandyga 51. Makassar 59. Phnom_Penh 67. Sakhalin 75. Tbilisi 83. Urumqi
4. Anadyr 12. Bangkok 20. Colombo 28. Harbin 36. Jayapura 44. Kolkata 52. Manila 60. Pontianak 68. Samarkand 76. Tehran 84. Ust-Nera
5. Aqtau 13. Barnaul 21. Damascus 29. Hebron 37. Jerusalem 45. Krasnoyarsk 53. Muscat 61. Pyongyang 69. Seoul 77. Tel_Aviv 85. Vientiane
6. Aqtobe 14. Beirut 22. Dhaka 30. Ho_Chi_Minh 38. Kabul 46. Kuala_Lumpur 54. Nicosia 62. Qatar 70. Shanghai 78. Thimphu 86. Vladivostok
7. Ashgabat 15. Bishkek 23. Dili 31. Hong_Kong 39. Kamchatka 47. Kuching 55. Novokuznetsk 63. Qostanay 71. Singapore 79. Tokyo 87. Yakutsk
8. Atyrau 16. Brunei 24. Dubai 32. Hovd 40. Karachi 48. Kuwait 56. Novosibirsk 64. Qyzylorda 72. Srednekolymsk 80. Tomsk 88. Yangon
Time zone: 79
〜略〜
root@3231ee9e3af0/usr/local/lib# update-locale LANG=ja_JP.UTF-8
root@3231ee9e3af0:/usr/local/lib# export LANG=ja_JP.UTF-8
root@3231ee9e3af0:/usr/local/lib# date
2021年 3月 24日 水曜日 10:50:49 JST
OKですね続いて必要なモジュールをインストール
root@3231ee9e3af0:/usr/local/lib# apt install -y build-essential cmake ninja-build libgtkmm-3.0-dev libgtksourceviewmm-3.0-dev libxml++2.6-dev libsqlite3-dev gettext libgspell-1-dev libcurl4-openssl-dev libuchardet-dev libfmt-dev libspdlog-dev gnome-icon-theme git
gitからソースを落としてきてビルド
root@3231ee9e3af0:/usr/local/lib# git clone https://github.com/giuspen/cherrytree.git
root@3231ee9e3af0:/usr/local/lib# cd cherrytree
root@3231ee9e3af0:/usr/local/lib/cherrytree# git submodule update --init
root@3231ee9e3af0:/usr/local/lib/cherrytree# ./build.sh
これが長いんだよ。。。
aptでバイナリ落とせたらこんな事しなくていいのに。。。
最悪Flatpackでもいいけどちゃんと動く状態でリリースしろよ。。。
こんなんだからいつまで経ってもWindowsに勝てずにChromeOSにユーザ食われんだよ。。。
とかグダグダ怨念を垂れ流していたら終わりました。
途中途中Faildとか接続を拒否とか見たくないワードが出てましたが最終的にtestがPASSってなってたんで良しとしました。
で,このビルドしたコンテナはホストOSの/usr/local/libをマウントしてるのでコンテナ落としてもビルドしたモジュールはホストOS側に残ります。
なのでコンテナを落としてビルドした物以外全部消して実際にアプリを動かすホストOSで動作確認します。
root@3231ee9e3af0:/usr/local/lib/cherrytree# exit
1 dev@dev-virtual-machine:/tmp$ /usr/local/lib/cherrytree/build/cherrytree
** Message: 11:10:39.440: Language overwrite = ja (localedir = /usr/local/lib/cherrytree/po)
(process:188525): Gtk-WARNING **: 11:10:39.443: Locale not supported by C library.
Using the fallback 'C' locale.
[2021-03-24 11:10:39.486] [ ] [debug] /home/dev/.config/cherrytree/config.cfg parsed
[2021-03-24 11:10:39.569] [ ] [debug] autosave is started
いけてるいけてる
たまたまライブラリ揃ってたからすんなり動いたけどこれで動かない時はlddで足りてないライブラリを確認して追加でインストールするだけで動くと思います。
後はMintのメニューにこいつを登録して
MintMateの場合はmozoってアプリがメニューの編集をしてくれるよ
メニューに登録するアイコンは
/usr/local/lib/cherrytree/icons
から好きなの選べばいいと思うよ
ランチャから見えるようになってればOKっと
というわけで無事動きました
ただ自分が一番信用できないのでaptの問題が解決していたらaptで入れ直そうと思います。
その時は/usr/local/lib/cherrytreeディレクトリを削除して登録したメニューを消すだけです
むかしまっこう、さるまっこう、さるのつべはぎんがりこ
Discussion