Linux あれこれ

Linux 関連の備忘録です。

「Xubuntu 22.04 LTS」にて「Geany」をビルドしてインストール〈H137-5〉

登録日: 2022-05-22 更新日: 2022-06-09

UEFI 立ち上げのPCに、安定版の「Xubuntu 20.04.4 LTS」をインストール設定 して使っています。

-

そのホストOS の「VirtualBox」に、公開された ばかりの「Xubuntu 22.04 LTS」をインストールしました。 その環境で、「Geany」をビルドしてインストールしました。その備忘録です。

-

ホストOS : Xubuntu 20.04.4 LTS

ゲストOS : Xubuntu 22.04 LTS   ←(今回の作業)

-

-

使用したPC は「ASUS Chromebox CN60 」で、 プロセッサは第4世代の「Intel Celeron 2955U 」です。UEFI 立ち上げです。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

以前の作業:

1. 「Xubuntu 22.04 LTS のインストール」

2. 「Xubuntu 22.04 LTS の設定」

3. 「Xubuntu 22.04 LTS の追加の設定」

-

今回の作業:

1. 「Geany のソースのダウンロード」

2. 「Geany のソースのカスタマイズ」

3. 「Geany をビルドしてインストール」

4. 「まとめ へ」

-

「目次詳細 へ」

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -

Xubuntu 22.04」の画面:

-

全画面で表示:

→ホストOS の「Xubuntu 20.04.4 LTS」にて、「Xubuntu 22.04 LTS」を起動しているところ。
別の壁紙に変えています。

ホストOS のパネルは画面下で、「Xubuntu 22.04 LTS」のパネルは上側(デフォルト)です。

-

-


現在のバージョンを表示:

-

ホストOS : Xubuntu 20.04.4 LTS

2022-06-09 現在

カーネル:

$ uname -r
5.13.0-48-generic

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"

-

ゲストOS : Xubuntu 22.04 LTS

2022-06-09 現在

カーネル:

$ uname -r
5.15.0-37-generic

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS"

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --

1. 「Geany」のソースのダウンロード:

-

Fedora で「Geany」をビルドするので、事前に「Xubuntu 22.04 LTS」でビルドできるか確認しました。
ついでに、日付日時の挿入が使いやすいように個人的にソースを少し修正。自己責任です。

-

1). 公式サイト:

Geany - The Flyweight IDE

-

2). 「curl」のインストール:

$ sudo apt install curl

-

3). ソースファイルのダウンロード

-

参考:

Source (tar.gz) : geany-1.38.tar.gz

-

(1). ダウンロード:
$ mkdir -p ~/ダウンロード/geany
$ cd ~/ダウンロード/geany/

$ curl -OL https://download.geany.org/geany-1.38.tar.gz

-

参考:「curl」コマンドは、オプションがないと「ファイルの中身を標準出力する」だけです。

オプションをつけることでファイルをダウンロードできます。

「-O (--remote-name) 」: Write output to a file named as the remote file
  →標準出力には出力せず、リモートのファイル名でファイルをダウンロード。

「-L (--location) 」: Follow redirects
  →URLからのリダイレクトに対応。

-

(2). ダウンロードされたか確認:
$ ls ~/ダウンロード/geany/
geany-1.38.tar.gz

-

(3). チェックサムの確認:
$ sha256sum geany-1.38.tar.gz
e91e903924b993b79ef88f33708372dc7c79aee78e15a02e728338695e9dc155  geany-1.38.tar.gz

→表示された値が同じことを確認。

-

4). ソースファイルの展開:

$ cd ~/ダウンロード/geany/
$ tar -zxvf geany-1.38.tar.gz

-

$ ls ~/ダウンロード/geany/geany-1.38/
AUTHORS             TODO                geany.pc.in
COPYING             aclocal.m4          geany_private.rc
ChangeLog           autogen.sh          icons
ChangeLog.pre-1-22  build-aux           intltool-extract.in
HACKING             config.h.in         intltool-merge.in
INSTALL             configure           intltool-update.in
Makefile.am         configure.ac        m4
Makefile.in         ctags               plugins
NEWS                data                po
README              doc                 scintilla
README.I18N         geany.desktop.in    scripts
README.Packagers    geany.exe.manifest  src
THANKS              geany.nsi.in        tests

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ---

2. 任意:「Geany」のソースをカスタマイズ:

-

日付日時の挿入が使いづらく感じたので、ソースを少しだけ修正。自己責任です。 実施しなくてもOK。

-

1). パッチファイルの作成 1:

$ cd ~/ダウンロード/geany/geany-1.38/
$ mousepad geany.patch

↓ ファイルの終わりの 2つの空行も含め、すべて貼り付けてください:

diff -Naur a/po/ja.po b/po/ja.po
--- a/po/ja.po  2021-10-10 00:11:18.000000000 +0900
+++ b/po/ja.po  2022-05-21 05:37:12.133547336 +0900
@@ -5389,18 +5389,18 @@
 
 #: ../src/ui_utils.c:725 ../src/ui_utils.c:813
 msgid "_Use Custom Date Format"
-msgstr "任意の日付書式を使用する(_U)"
+msgstr "個人的な日付書式で日時を挿入(_U)"
 
 #: ../src/ui_utils.c:729
 msgid "Custom Date Format"
-msgstr "任意の日付書式"
+msgstr "個人的な日付書式"
 
 #: ../src/ui_utils.c:730
 msgid ""
 "Enter here a custom date and time format. You can use any conversion "
 "specifiers which can be used with the ANSI C strftime function."
 msgstr ""
-"ここに任意の日付と時刻の書式を入力してください。ANSI C の strftime 関数で用い"
+"ここに個人的な日付と時刻の書式を入力してください。ANSI C の strftime 関数で用い"
 "られる変換指定子が使用できます。"
 
 #: ../src/ui_utils.c:751
@@ -5409,7 +5409,7 @@
 
 #: ../src/ui_utils.c:826
 msgid "_Set Custom Date Format"
-msgstr "任意の日付書式を設定(_S)"
+msgstr "個人的な日付書式を設定(_S)"
 
 #: ../src/ui_utils.c:2015
 msgid "Select Folder"

→ファイルの終わりの 2つの空行も含め、すべて貼り付けてください。

-

2). パッチファイルの作成 2:

$ cd ~/ダウンロード/geany/geany-1.38/
$ mousepad geany.patch2.sh

↓ ファイルの終わりの 2つの空行も含め、すべて貼り付けてください:

echo ""
echo -e "diff -Naur a/src/ui_utils.c b/src/ui_utils.c"
echo -e "--- a/src/ui_utils.c  2021-10-10 00:02:15.000000000 +0900"
echo -e "+++ b/src/ui_utils.c  2022-05-21 05:46:21.795942876 +0900"
echo -e "@@ -710,8 +710,8 @@"
echo -e " \\t\\tui_prefs.custom_date_format = g_strdup(\"%d.%m.%Y\");"
echo -e " \\t}"
echo -e " "
echo -e "-\\tif (utils_str_equal(_(\"dd.mm.yyyy\"), date_style))"
echo -e "-\\t\\tformat = \"%d.%m.%Y\";"
echo -e "+\\tif (utils_str_equal(_(\"yyyy-mm-dd hh:mm\"), date_style))"
echo -e "+\\t\\tformat = \"%Y-%m-%d %H:%M\";"
echo -e " \\telse if (utils_str_equal(_(\"mm.dd.yyyy\"), date_style))"
echo -e " \\t\\tformat = \"%m.%d.%Y\";"
echo -e " \\telse if (utils_str_equal(_(\"yyyy/mm/dd\"), date_style))"
echo -e "@@ -788,7 +788,7 @@"
echo -e " \\tGtkWidget *item;"
echo -e " \\tgchar *str;"
echo -e " "
echo -e "-\\tinsert_date_items(menu_edit, menu_popup, _(\"dd.mm.yyyy\"));"
echo -e "+\\tinsert_date_items(menu_edit, menu_popup, _(\"yyyy-mm-dd hh:mm\"));"
echo -e " \\tinsert_date_items(menu_edit, menu_popup, _(\"mm.dd.yyyy\"));"
echo -e " \\tinsert_date_items(menu_edit, menu_popup, _(\"yyyy/mm/dd\"));"
echo ""

→ファイルの終わりの 2つの空行も含め、すべて貼り付けてください。

-

ちなみに、通常のパッチを作成するやり方では、パッチがうまく動かないときがありました。
回避策として、「Tab」を「文字化」しました。

→パッチを当てるソースファイルは「Tab」が使われているファイルなので、差分作成して「Tab」に合わせないと、パッチのチェックが通りません。

-

迷った原因はブラウザでの貼付け:

わかったことは、ブラウザにて、ブログの「編集」モードで貼り付けるとパッチは正常動作して、ブログの「プレビュー」モードで貼り付けると、パッチはエラーで停止しました。

→ブログの「編集」モードで貼り付けると「Tab」が貼り付けられ、ブログの「プレビュー」モードで貼り付けると「スペース」が貼り付けられる、ことがわかりました。

-

3). パッチファイルの合算:

$ cd ~/ダウンロード/geany/geany-1.38/
$ bash geany.patch2.sh >> geany.patch

-

4). patch コマンドのインストール:

Fedora だとデフォルトでインストールされていません。

$ apt list patch
一覧表示... 完了
patch/jammy,now 2.7.6-7build2 amd64 [インストール済み、自動]

-

5). パッチファイルの適用:

$ cd ~/ダウンロード/geany/geany-1.38/
$ patch -p1 < geany.patch
:
patching file po/ja.po
patching file src/ui_utils.c

→パッチの適用で、エラーが表示されないことを確認。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----

3. 「Geany」をビルドしてインストール:

-

1). ソースファイルの在り処:

$ ls ~/ダウンロード/geany/geany-1.38/
:
AUTHORS             TODO                geany.pc.in
COPYING             aclocal.m4          geany_private.rc
ChangeLog           autogen.sh          icons
ChangeLog.pre-1-22  build-aux           intltool-extract.in
HACKING             config.h.in         intltool-merge.in
INSTALL             configure           intltool-update.in
Makefile.am         configure.ac        m4
Makefile.in         ctags               plugins
NEWS                data                po
README              doc                 scintilla
README.I18N         geany.desktop.in    scripts
README.Packagers    geany.exe.manifest  src
THANKS              geany.nsi.in        tests

→カスタマイズした場合は、「geany.patch」、「geany.patch2.sh」が追加されていると思います。

-

2). ツールのインストール:

$ sudo apt install pkg-config make intltool
:
make はすでに最新バージョン (4.3-4.1build1) です。
pkg-config はすでに最新バージョン (0.29.2-1ubuntu3) です。
:
以下のパッケージが新たにインストールされます:
  autoconf automake autotools-dev gettext intltool libsigsegv2 m4

-

3). 依存のインストール

$ sudo apt install libgtk-3-dev
:
以下のパッケージが新たにインストールされます:
  icu-devtools libatk-bridge2.0-dev libatk1.0-dev libatspi2.0-dev libblkid-dev
  libbrotli-dev libcairo2-dev libdatrie-dev libdbus-1-dev libdeflate-dev
  libegl1-mesa-dev libepoxy-dev libexpat1-dev libffi-dev libfontconfig-dev
  libfontconfig1-dev libfreetype-dev libfreetype6-dev libfribidi-dev
  libgdk-pixbuf-2.0-dev libgles-dev libgles1 libglib2.0-dev libglib2.0-dev-bin
  libglvnd-core-dev libglvnd-dev libgraphite2-dev libgtk-3-dev libharfbuzz-dev
  libharfbuzz-gobject0 libice-dev libicu-dev libjbig-dev libjpeg-dev
  libjpeg-turbo8-dev libjpeg8-dev liblzma-dev libmount-dev libopengl-dev
  libpango1.0-dev libpcre16-3 libpcre2-dev libpcre2-posix3 libpcre3-dev
  libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev libpng-tools
  libselinux1-dev libsepol-dev libsm-dev libthai-dev libtiff-dev libtiffxx5
  libwayland-bin libwayland-dev libxcb-render0-dev libxcb-shm0-dev
  libxcomposite-dev libxcursor-dev libxdamage-dev libxfixes-dev libxft-dev
  libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev
  libxtst-dev pango1.0-tools python3-distutils python3-lib2to3 uuid-dev
  wayland-protocols zlib1g-dev

-

4). 「./configure」の実行

$ cd ~/ダウンロード/geany/geany-1.38/
$ ./configure
:
-----------------------------------------------
Install Geany in                   : /usr/local
Using GTK version                  : 3.24.33
Enable binary relocation           : no
Build with plugin support          : yes
Use (UNIX domain) socket support   : yes
Use virtual terminal support (VTE) : yes
Build HTML documentation           : no
Build PDF documentation            : no
Build API documentation            : no
Generate GtkDoc header             : no

Configuration is done OK.

→インストール先は「/usr/local」です。

-

5). 「make」の実行

$ make
:
make[1]: ディレクトリ '/home/ubn/Downloads/geany-1.38' から出ます

→時間がかかります。

-

6). 「make install」の実行

$ sudo make install

-

7). 再起動して、メニューを有効にします:

$ reboot

-

8). インストールできたかを確認:

$ which geany
/usr/local/bin/geany

-

$ geany --version
geany 1.38 (May 20 2022 以降に次を使用してビルドGTK 3.24.33, GLib 2.72.1)

$ /usr/local/bin/geany --version
geany 1.38 (May 20 2022 以降に次を使用してビルドGTK 3.24.33, GLib 2.72.1)

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

→再起動で、PATH が通りました。

-

9). メニューにて「Geany」を起動:

メニュー →開発 →「Geany」

→バージョンは「1.38」です。

-

日本語入力が可能です:

-

10). 任意: カスタマイズした場合、日付入力が使いやすくなったかを確認:

→日付入力とか、テーマの変更(色の変更)やフォントのメニューが無効で確認できません。

-

何かの機能? が足りません:

-

11). インストール:

$ sudo apt install geany
:
以下の追加パッケージがインストールされます:
  geany-common
:
以下のパッケージが新たにインストールされます:
  geany geany-common

-

→「geany-common」が足りなかったようです。

たぶん、「geany-plugin」のソースがあったので、そのビルドも必要だと思います。

-

ちなみに、2重にインストールしたことで、プラグインや設定ファイルは共通に使われます。 また、アプリ本体はパスの優先度が高いビルドの方が使われます。なので、カスタマイズした修正が反映されます。

-

カスタマイズ前のメニュー:

→デフォルトのメニューだと、日時の挿入が面倒に感じました。

-

カスタマイズ後のメニュー:

→個人的によく使う日時の書式を一番上に設定。
それだけでなく、日時の設定と使用のメニューもわかりやすい文言に修正しました。

-

-


まとめ

「Geany」のソースのカスタマイズを当てるのに、「パッチファイル」を使ってみました。 ですが、2つのパッチの中のひとつが、時々エラーとなりました。

試すたびに、というのがポイントでした。回避できましたが、もっと大きなファイルだと、元ファイル自体を変更するとか、違う回避策にしたと思います。

-

ブラウザ経由でのパッチファイルの作成の、良い体験になりました。

色々とやってみると勉強になります。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

-