fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組 [論壇 - Ubuntu 與中文]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30267
EXP: 23
離線
# fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組

================================================================================

## 緣起

這幾天在「回覆另一個討論串」,

在找資料的過程中,發現了「fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組」,

也就是「小麥注音的 Linux 版本」,架構在「fcitx5」的框架底下。

================================================================================

## 索引

* 「#2」- 如何編譯「fcitx5-mcbopomofo」
* 「#3」- 如何將「fcitx5-mcbopomofo」簡易打包成「Debian Package」
* 「#4」- 如何將「fcitx5-mcbopomofo」打包成「Debian Package」和「Debian Source Package」

================================================================================

## Debian Source Package

* Debian Input Method Team

* Source Package: fcitx5-chewing / debian
* Source Package: fcitx5-table-other / debian

* Source Package: fcitx-chewing / debian
* Source Package: fcitx-table-extra / debian

================================================================================

## Debian Wiki

* Packaging
* Packaging / SourcePackage
* Packaging / BinaryPackage

================================================================================

## Manpage

$ man 5 deb-control
$ man 1 dpkg-deb
$ man 1 dpkg

$ man 5 deb-src-control
$ man 1 dpkg-buildpackage
$ man 1 debuild

================================================================================

4/4 7:50:18
應用擴展 工具箱
回覆: fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30267
EXP: 23
離線
================================================================================

[回到索引]

================================================================================

# 如何編譯「fcitx5-mcbopomofo」

================================================================================

編譯的方式,雖然在「fcitx5-mcbopomofo / README.md / #安裝方式」寫的很清楚,

不過還是稍微紀錄一下,我操作的步驟。

一樣有寫個專案,放在「GitHub」。

基本上,就是從之前的討論「如何編譯「fcitx5-table-extra」並且簡易打包成「Debian Package」」的「範例」修改過來的。

================================================================================

## 測試環境

* Ubuntu Mate 22.04

================================================================================

## 前置作業

執行下面指令,安裝編譯過程中,所需要的「Package」


sudo apt-get install \
	fcitx5 \
	libfcitx5core-dev \
	libfcitx5config-dev \
	libfcitx5utils-dev \
	cmake \
	extra-cmake-modules \
	gettext \
	libfmt-dev \
	git \
	build-essential




我多加了「build-essential」和「git」。

* fcitx5
* libfcitx5core-dev
* libfcitx5config-dev
* libfcitx5utils-dev
* cmake
* extra-cmake-modules
* gettext
* libfmt-dev
* git
* build-essential

根據該wiki提到的,使用上,也是需要 fcitx5-chinese-addons

================================================================================

## 下載

執行下面指令,下載「fcitx5-mcbopomofo


git clone https://github.com/openvanilla/fcitx5-mcbopomofo.git



================================================================================

## 編譯

執行下面指令,先產生一個資料夾「fcitx5-mcbopomofo/build」


mkdir -p fcitx5-mcbopomofo/build



執行下面指令,切換到資料夾「fcitx5-mcbopomofo/build」


cd fcitx5-mcbopomofo/build



執行下面指令,建立編譯環境


cmake ../ -DCMAKE_INSTALL_PREFIX=/usr



執行下面指令,執行編譯


make



================================================================================

## 安裝

執行下面指令,安裝到系統上


sudo make install



接著,就可以透過「fcitx5」的「圖形設定介面」去設定加入,

然而「fcitx5-mcbopomofo」有提供兩個「輸入法」,

* McBopomofo (麥)
* PlainBopomofo (ㄅ)

================================================================================

## 移除

若要將安裝到系統上的檔案移除,則是執行下面指令,


sudo make uninstall



================================================================================

## 安裝到某個資料夾

若要安裝到安裝到某個資料夾,則是執行下面指令,


make DESTDIR="$(pwd)/pkg-root" install



> 這個用法,可以用來打包,例如「fcitx5-mcbopomofo」就有提供「Archlinux / PKGBUILD」,就有使用到這個用法。

> 之前在討論「如何編譯「fcitx5-table-extra」並且簡易打包成「Debian Package」」,也有使用到這個用法。


執行下面指令,觀看「pkg-root」裡面的檔案結構。


tree pkg-root



顯示


pkg-root
└── usr
    ├── lib
    │   └── x86_64-linux-gnu
    │       └── fcitx5
    │           └── mcbopomofo.so
    └── share
        ├── fcitx5
        │   ├── addon
        │   │   └── mcbopomofo.conf
        │   ├── data
        │   │   ├── mcbopomofo-add-phrase-hook.sh
        │   │   ├── mcbopomofo-data-plain-bpmf.txt
        │   │   └── mcbopomofo-data.txt
        │   └── inputmethod
        │       ├── mcbopomofo.conf
        │       └── mcbopomofo-plain.conf
        ├── icons
        │   └── hicolor
        │       ├── 24x24
        │       │   └── apps
        │       │       ├── fcitx-mcbopomofo.png -> org.fcitx.Fcitx5.fcitx-mcbopomofo.png
        │       │       └── org.fcitx.Fcitx5.fcitx-mcbopomofo.png
        │       ├── 32x32
        │       │   └── apps
        │       │       ├── fcitx-mcbopomofo.png -> org.fcitx.Fcitx5.fcitx-mcbopomofo.png
        │       │       └── org.fcitx.Fcitx5.fcitx-mcbopomofo.png
        │       └── 64x64
        │           └── apps
        │               ├── fcitx-mcbopomofo.png -> org.fcitx.Fcitx5.fcitx-mcbopomofo.png
        │               └── org.fcitx.Fcitx5.fcitx-mcbopomofo.png
        ├── locale
        │   ├── en
        │   │   └── LC_MESSAGES
        │   │       └── fcitx5-mcbopomofo.mo
        │   └── zh_TW
        │       └── LC_MESSAGES
        │           └── fcitx5-mcbopomofo.mo
        └── metainfo
            └── org.fcitx.Fcitx5.Addon.McBopomofo.metainfo.xml

23 directories, 16 files




================================================================================

[回到索引]

================================================================================

4/4 8:00:31
應用擴展 工具箱
回覆: fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30267
EXP: 23
離線
================================================================================

[回到索引]

================================================================================

# 如何將「fcitx5-mcbopomofo」簡易打包成「Debian Package」

================================================================================

可以對照「如何編譯「fcitx5-table-extra」並且簡易打包成「Debian Package」」,模式是一樣的。

================================================================================

## 安裝到打包資料夾

接續在「#2」最後提到的「安裝到某個資料夾」,

執行下面指令,安裝到「fcitx5-mcbopomofo」這個資料夾。


make DESTDIR="$(pwd)/fcitx5-mcbopomofo" install



> 注意,我是在「fcitx5-mcbopomofo/build」執行上面這個指令,以下也都是在這個路徑上執行的。

================================================================================

## 產生「DEBIAN」資料夾


執行下面指令,產生「fcitx5-mcbopomofo/DEBIAN」這個資料夾。

執行


mkdir -p fcitx5-mcbopomofo/DEBIAN




================================================================================

## 產生「DEBIAN/control」檔案

執行下面指令,產生「fcitx5-mcbopomofo/DEBIAN/control」這個檔案。

執行


cat > "fcitx5-mcbopomofo/DEBIAN/control" << EOF
Package: fcitx5-mcbopomofo
Version: 0.1.0
Architecture: all
Maintainer: developer <developer@home.work>
Description: Mcbopomofo input method support for fcitx5
 This is a personal package.

EOF




也就是「fcitx5-mcbopomofo/DEBIAN/control」的檔案內容如下


Package: fcitx5-mcbopomofo
Version: 0.1.0
Architecture: all
Maintainer: developer <developer@home.work>
Description: Mcbopomofo input method support for fcitx5
 This is a personal package.




* man 5 deb-control
* man 5 deb


接下來就可以進行打包了,

執行下面指令,進行打包作業


dpkg -b fcitx5-mcbopomofo



或是也可以執行下面指令,進行打包作業


dpkg-deb -b fcitx5-mcbopomofo



顯示


dpkg-deb: building package 'fcitx5-mcbopomofo' in 'fcitx5-mcbopomofo.deb'.



* man 1 dpkg
* man 1 dpkg-deb

完整範例,我一樣放在「GitHub」上。

這個範例,是透過「dpkg-deb」來產生「Debian Package」,

另外也可以透過「ar」來產生「Debian Package」,請參考我「之前的筆記範例」。

透過「ar」打包的方式,在這論壇也有實作的案例

* 「#2」- 【自我推薦】【報稅】健保卡元件 Ubuntu 20.04 軟體包


================================================================================

## 如何安裝

執行下面指令,將剛剛打包好的「fcitx5-mcbopomofo.deb」,安裝到系統上


sudo dpkg -i fcitx5-mcbopomofo.deb




================================================================================

## 確認

安裝好後,可以執行下面指令,觀看安裝與否


dpkg -l fcitx5-mcbopomofo



顯示


Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=================-============-============-==========================================
ii fcitx5-mcbopomofo 0.1.0 all Mcbopomofo input method support for fcitx5



================================================================================

## 檔案列表

執行下面指令,觀看「Package: fcitx5-mcbopomofo」安裝那些檔案到系統上


dpkg -L fcitx5-mcbopomofo



顯示


/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/fcitx5
/usr/lib/x86_64-linux-gnu/fcitx5/mcbopomofo.so
/usr/share
/usr/share/fcitx5
/usr/share/fcitx5/addon
/usr/share/fcitx5/addon/mcbopomofo.conf
/usr/share/fcitx5/data
/usr/share/fcitx5/data/mcbopomofo-add-phrase-hook.sh
/usr/share/fcitx5/data/mcbopomofo-data-plain-bpmf.txt
/usr/share/fcitx5/data/mcbopomofo-data.txt
/usr/share/fcitx5/inputmethod
/usr/share/fcitx5/inputmethod/mcbopomofo-plain.conf
/usr/share/fcitx5/inputmethod/mcbopomofo.conf
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/24x24
/usr/share/icons/hicolor/24x24/apps
/usr/share/icons/hicolor/24x24/apps/org.fcitx.Fcitx5.fcitx-mcbopomofo.png
/usr/share/icons/hicolor/32x32
/usr/share/icons/hicolor/32x32/apps
/usr/share/icons/hicolor/32x32/apps/org.fcitx.Fcitx5.fcitx-mcbopomofo.png
/usr/share/icons/hicolor/64x64
/usr/share/icons/hicolor/64x64/apps
/usr/share/icons/hicolor/64x64/apps/org.fcitx.Fcitx5.fcitx-mcbopomofo.png
/usr/share/locale
/usr/share/locale/en
/usr/share/locale/en/LC_MESSAGES
/usr/share/locale/en/LC_MESSAGES/fcitx5-mcbopomofo.mo
/usr/share/locale/zh_TW
/usr/share/locale/zh_TW/LC_MESSAGES
/usr/share/locale/zh_TW/LC_MESSAGES/fcitx5-mcbopomofo.mo
/usr/share/metainfo
/usr/share/metainfo/org.fcitx.Fcitx5.Addon.McBopomofo.metainfo.xml
/usr/share/icons/hicolor/24x24/apps/fcitx-mcbopomofo.png
/usr/share/icons/hicolor/32x32/apps/fcitx-mcbopomofo.png
/usr/share/icons/hicolor/64x64/apps/fcitx-mcbopomofo.png



================================================================================

## 如何移除

執行下面指令,就可以移除「Package: fcitx5-mcbopomofo」


sudo dpkg -r fcitx5-mcbopomofo



一樣可以執行下面指令,確認安裝與否


dpkg -l fcitx5-mcbopomofo



顯示


dpkg-query: no packages found matching fcitx5-mcbopomofo




================================================================================

[回到索引]

================================================================================

4/4 8:54:15
應用擴展 工具箱
回覆: fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30267
EXP: 23
離線
================================================================================

[回到索引]

================================================================================

# 如何將「fcitx5-mcbopomofo」打包成「Debian Package」和「Debian Source Package」

================================================================================

上面「簡易打包的方式」,因為是個人使用,

主要訴求是能透過「dpkg」來執行「安裝」,「移除」。

若要「進階的打包」,我也有寫另一個範例,放在「GitHub」上。

有興趣研究的人,就請自行參考探索,

或是對照「如何編譯「fcitx5-table-extra」並且打包成「Debian Package」和「Debian Source Package」」,模式是一樣的。

就不在此描述「進階打包的方式」的「完整步驟」

以下只是稍微提一下「進階打包的方式」的「注意事項」

================================================================================

## 注意事項 / 「debian」source control

上面「簡易打包的方式」只需要「fcitx5-mcbopomofo/DEBIAN/control」這個檔案

* man 5 deb-control

然後「進階打包的方式」,除了需要「fcitx5-mcbopomofo/debian/control」這個檔案

* man 5 deb-src-control

還需要其他的檔案,可以參考我提供的範例「debian」資料夾。

不過我也只是簡單寫,並不嚴謹,只求可打包完成,並且安裝。

所以也可以參考既有的「Source Package」,例如「fcitx5-chewing」。


================================================================================

## 注意事項 / 前置作業

上面「簡易打包的方式」,需要安裝「dpkg-dev」,

安裝「build-essential」就會連帶安裝「dpkg-dev」。

而「進階打包的方式」,則是需要額外安裝「devscripts」和「debhelper」。

執行下面指令安裝


sudo apt-get install devscripts debhelper



================================================================================

## 注意事項 / 編譯

在進行打包作業的時候,我原本是執行「debuild -i -us -uc」,

但是會出現如下的「錯誤訊息」。


E: fcitx5-mcbopomofo changes: bad-distribution-in-changes-file unstable



後來我找到一篇「debuild_ubuntu_debian_package」,有紀錄解法。

所以我改採執行下面指令,來進行打包作業


debuild -us -uc --lintian-opts --profile debian



* man debuild
* man dpkg-buildpackage

================================================================================

## 注意事項 / changelog

另外這幾天在找資料的時候,

我使用「fcitx5-table-extra ubuntu」當作「關鍵字」找資料的時候,

除了可以找到「我自己紀錄的頁面」。

也可以找到我在另一個討論串「#16」提到的「參考解法」的「原作者」的「頁面 (網域一)」,「頁面 (網域二)」,
裡面有紀錄我放在「GitHub」上的「範例連結」。


還有找到另一個「網友」,也寫了一個打包「fcitx5-extra-tables」的範例,放在「GitHub」上,

他的範例,是全部寫在「build.sh」裡,一個腳本就可以完成「下載,編譯,打包」整個流程。

之前我是因為要講解分解動作,所以拆開寫,

本來想要找時間,另外寫個範例放在一塊,

後來過了當下沒寫,時間一久,就一直擱著沒寫了,Orz...

另外我在他的範例「build.sh」,學到了「chagnelog」的「輔助指令 - debchange」,

我一直沒花時間去深究「chagnelog」這段,所以我之前就參考別的「Source Package」直接寫死

剛好趁這機會,稍微研究了一下「debchange」的使用方式。

* man debchange


## 初始新的「changelog」

執行下面指令


debchange --create --package "fcitx5-mcbopomofo" --newversion "0.1.0" --controlmaint --distribution "unstable" --urgency "low" "Init Release" --changelog debian/changelog



就會產生一個新的「debian/changelog」

執行下面指令,觀看「debian/changelog」的內容


cat debian/changelog



顯示


fcitx5-mcbopomofo (0.1.0) unstable; urgency=low

  * Init Release

 -- developer <developer@home.work>  Tue, 04 Apr 2023 10:06:55 +0800




注意: 在上面指令,有一個參數「--controlmaint」,
是根據「deb-src-control」的「Maintainer:」欄位設定,
所以需要有「debian/control」這個檔案


================================================================================

## 加入一筆內容到「changelog」

執行下面指令


debchange --newversion "0.1.1" --controlmaint --distribution "unstable" --urgency "low" "Latest Release" --changelog debian/changelog



注意:我有把「version」改成「0.1.1」

執行下面指令,觀看「debian/changelog」的內容


cat debian/changelog



顯示


fcitx5-mcbopomofo (0.1.1) unstable; urgency=low

  * Latest Release

 -- developer <developer@home.work>  Tue, 04 Apr 2023 10:11:30 +0800

fcitx5-mcbopomofo (0.1.0) unstable; urgency=low

  * Init Release

 -- developer <developer@home.work>  Tue, 04 Apr 2023 10:06:55 +0800




================================================================================

以上「進階打包的方式」的「注意事項」。

================================================================================

另外下面是我之前就知道的用法,

若您要知道某個「Package」的「changelog」,

舉例:執行下面指令


apt-get changelog fcitx5-chewing



================================================================================

[回到索引]

================================================================================

4/4 10:24:46
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.