LoginSignup
2
1

More than 3 years have passed since last update.

Slackware 向け日本語環境構築スクリプト群

Last updated at Posted at 2019-08-20

 無 保 証 で す

当方執筆の技術情報に関するライセンス、免責事項、禁止事項
本記事記載スクリプト群の対応バージョン : Slackware 14.2 x86_64

用途・目的別 Slackware 系ディストリビューション紹介

Slackware らしさを受け継ぎつつ充実した日本語環境・ドキュメントを有する Linux が使いたい
Plamo Linux

GUI の各種管理ツールが付属するシンプル1 な Slackware 互換 Linux が使いたい2
Salix OS

インストール直後から快適に使えるようチューニングされ、TUI/GUI 向けに各種管理ツールが追加されたシンプル1 な Slackware 互換 Linux が使いたい3
Zenwalk

TUI/GUI 双方で動作するシンプルな統合システム管理ツールを有する Slackware 系 Linux が使いたい
VectorLinux

軽量かつキュートな Slackware 系 Linux が使いたい
Slacko Puppy Linux

軽さを追及したポータブル4 Slackware 系 Linux が使いたい
Porteus

ゆるい Linux が使いたい
Slackware Linux

こちらもどうぞ

Slackware 14.2 インストールの流れ/cgdisk による TUI パーティショニング/pkgtool によるシステムの再セットアップ

Slackware で SlackBuilds.org を利用する/SlackBuilds.org や公式リポジトリの更新通知を受けとる

デフォルトランレベル変更ツール

Slackware のデフォルトランレベルを対話的に変更する。

TUIによる対話的再設定スクリプト
https://gitlab.com/earthsimilarityindex/fluidagate-toolbox/blob/master/fa-defaultrunlevel
https://gitlab.com/earthsimilarityindex/fluidagate-toolbox/raw/master/fa-defaultrunlevel
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/fluidagate-toolbox/raw/master/fa-defaultrunlevel && chmod +x $(pwd)/fa-defaultrunlevel && su -l -c $(pwd)/fa-defaultrunlevel

スクリーンショット

VirtualBox_Slackware64_17_08_2019_17_44_24.png
VirtualBox_Slackware64_17_08_2019_17_45_59.png
VirtualBox_Slackware64_17_08_2019_17_46_30.png

コンソールのキーマップ再設定ツール

Linux コンソールのキーマップを対話的に再設定する。

TUIによる対話的再設定スクリプト
https://gitlab.com/earthsimilarityindex/fluidagate-toolbox/blob/master/fa-keyboardreconfig
https://gitlab.com/earthsimilarityindex/fluidagate-toolbox/raw/master/fa-keyboardreconfig
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/fluidagate-toolbox/raw/master/fa-keyboardreconfig && chmod +x $(pwd)/fa-keyboardreconfig && su -l -c $(pwd)/fa-keyboardreconfig

スクリーンショット

VirtualBox_Slackware64_20_08_2019_19_19_30.png
VirtualBox_Slackware64_20_08_2019_19_20_00.png
VirtualBox_Slackware64_20_08_2019_19_20_19.png
VirtualBox_Slackware64_20_08_2019_19_21_00.png

xwmconfig 用日本語環境ラッパー

ラッパーファイルを生成し、xwmconfig に日本語環境設定機能を加える。
切り替え可能なインプットメソッドフレームワークは SCIM, IBus, Fcitx, uim

TUIによる対話的再設定スクリプト
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/xwmconfiglocalize
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/xwmconfiglocalize
ダウンロードしたスクリプトを /usr/local/bin 等に置いて実行権限を付与。
使用時は一般ユーザー権限で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/xwmconfiglocalize && chmod +x $(pwd)/xwmconfiglocalize && $(pwd)/xwmconfiglocalize

スクリーンショット

VirtualBox_Slackware64_26_07_2019_17_38_04.png
VirtualBox_Slackware64_26_07_2019_17_43_02.png
VirtualBox_Slackware64_20_08_2019_18_16_24.png
VirtualBox_Slackware64_26_07_2019_17_40_26.png
VirtualBox_Slackware64_26_07_2019_17_40_39.png
VirtualBox_Slackware64_26_07_2019_17_40_56.png
VirtualBox_Slackware64_26_07_2019_17_41_06.png
VirtualBox_Slackware64_21_08_2019_16_11_26.png
VirtualBox_Slackware64_21_08_2019_16_11_51.png
VirtualBox_Slackware64_21_08_2019_16_12_19.png
VirtualBox_Slackware64_26_07_2019_17_41_39.png

SlackBuilds.org 向け各種フロントエンドの導入

sbopkg の導入

公式サイトから最新版をダウンロードしインストール。

2019/08/20時点
wget https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz && su -l -c "upgradepkg $(pwd)/sbopkg-0.38.1-noarch-1_wsr.tgz" || su -l -c "installpkg $(pwd)/sbopkg-0.38.1-noarch-1_wsr.tgz"

sbotools 導入スクリプト

https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/blob/master/install_sbotools-2.7.sh
https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sbotools-2.7.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sbotools-2.7.sh && chmod +x $(pwd)/install_sbotools-2.7.sh && su -l -c $(pwd)/install_sbotools-2.7.sh

sboui(通知機能無し版)導入スクリプト

https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/blob/master/install_sboui-2.0.1.sh
https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sboui-2.0.1.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sboui-2.0.1.sh && chmod +x $(pwd)/install_sboui-2.0.1.sh && su -l -c $(pwd)/install_sboui-2.0.1.sh

日本語表示環境の整備

各種日本語フォント導入ツール

指定されたフォントをダウンロードし ~/.fonts 以下に配置しフォントキャッシュを更新する。

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/modify-jfonts
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/modify-jfonts
ダウンロードしたスクリプトを /usr/local/bin 等に置いて実行権限を付与。
使用時は一般ユーザー権限で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/modify-jfonts && chmod +x $(pwd)/modify-jfonts && $(pwd)/modify-jfonts

スクリーンショット

VirtualBox_Slackware64_19_08_2019_16_37_45.png
VirtualBox_Slackware64_19_08_2019_16_48_16.png

対応フォント
HackGen
IPA
Kochi-substitute
Migu
Monapo
M+
Noto CJK JP
Ricty Diminished
Sazanami
Ume
UmePlus
VL Gothic

serif, sans-serif, monospace のフォールバック先については /etc/fonts/conf.avail/65-nonlatin.conf に記載有り。

65-nonlatin.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Artsounk</family> <!-- armenian -->
            <family>BPG UTF8 M</family> <!-- georgian -->
            <family>Kinnari</family> <!-- thai -->
            <family>Norasi</family> <!-- thai -->
            <family>Frank Ruehl</family> <!-- hebrew -->
            <family>Dror</family>  <!-- hebrew -->
            <family>JG LaoTimes</family>  <!-- lao -->
            <family>Saysettha Unicode</family>  <!-- lao -->
            <family>Pigiarniq</family> <!-- canadian syllabics -->
            <family>B Davat</family> <!-- arabic (fa) -->
            <family>B Compset</family>  <!-- arabic (fa) -->
            <family>Kacst-Qr</family> <!-- arabic (ar) -->
            <family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
            <family>Raghindi</family> <!-- devanagari -->
            <family>Mukti Narrow</family> <!-- bengali -->
            <family>malayalam</family> <!-- malayalam -->
            <family>Sampige</family> <!-- kannada -->
            <family>padmaa</family> <!-- gujarati -->
            <family>Hapax Berbère</family> <!-- tifinagh -->
            <family>MS Mincho</family> <!-- han (ja) -->
            <family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
            <family>PMingLiu</family> <!-- han (zh-tw) -->
            <family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
            <family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
            <family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
            <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
            <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
            <family>HanyiSong</family> <!-- han (zh-cn,zh-tw) -->
            <family>MgOpen Canonica</family>
            <family>Sazanami Mincho</family>
            <family>IPAMonaMincho</family>
            <family>IPAMincho</family>
            <family>Kochi Mincho</family>
            <family>AR PL SungtiL GB</family>
            <family>AR PL Mingti2L Big5</family>
            <family>AR PL Zenkai Uni</family>
            <family>MS 明朝</family>
            <family>ZYSong18030</family>
            <family>NanumMyeongjo</family> <!-- hangul (ko) -->
            <family>UnBatang</family> <!-- hangul (ko) -->
            <family>Baekmuk Batang</family> <!-- hangul (ko) -->
            <family>KacstQura</family>
            <family>Frank Ruehl CLM</family>
            <family>Lohit Bengali</family>
            <family>Lohit Gujarati</family>
            <family>Lohit Hindi</family>
            <family>Lohit Marathi</family>
            <family>Lohit Maithili</family>
            <family>Lohit Kashmiri</family>
            <family>Lohit Konkani</family>
            <family>Lohit Nepali</family>
            <family>Lohit Sindhi</family>
            <family>Lohit Punjabi</family>
            <family>Lohit Tamil</family>
            <family>Meera</family>
            <family>Lohit Malayalam</family>
            <family>Lohit Kannada</family>
            <family>Lohit Telugu</family>
            <family>Lohit Oriya</family>
            <family>LKLUG</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Nachlieli</family> <!-- hebrew -->
            <family>Lucida Sans Unicode</family>
            <family>Yudit Unicode</family>
            <family>Kerkis</family> <!-- greek -->
            <family>ArmNet Helvetica</family> <!-- armenian -->
            <family>Artsounk</family> <!-- armenian -->
            <family>BPG UTF8 M</family> <!-- georgian -->
            <family>Waree</family> <!-- thai -->
            <family>Loma</family> <!-- thai -->
            <family>Garuda</family> <!-- thai -->
            <family>Umpush</family> <!-- thai -->
            <family>Saysettha Unicode</family> <!-- lao? -->
            <family>JG Lao Old Arial</family> <!-- lao -->
            <family>GF Zemen Unicode</family> <!-- ethiopic -->
            <family>Pigiarniq</family> <!-- canadian syllabics -->
            <family>B Davat</family> <!-- arabic (fa) -->
            <family>B Compset</family> <!-- arabic (fa) -->
            <family>Kacst-Qr</family> <!-- arabic (ar) -->
            <family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
            <family>Raghindi</family> <!-- devanagari -->
            <family>Mukti Narrow</family> <!-- bengali -->
            <family>malayalam</family> <!-- malayalam -->
            <family>Sampige</family> <!-- kannada -->
            <family>padmaa</family> <!-- gujarati -->
            <family>Hapax Berbère</family> <!-- tifinagh -->
            <family>MS Gothic</family> <!-- han (ja) -->
            <family>UmePlus P Gothic</family> <!-- han (ja) -->
            <!-- chinese fonts are actually serifed -->
            <family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
            <family>PMingLiu</family> <!-- han (zh-tw) -->
            <family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
            <family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
            <family>AR PL ShanHeiSun Uni</family> <!--han (ja,zh-cn,zh-tw) -->
            <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
            <family>MgOpen Modata</family>
            <family>VL Gothic</family>
            <family>IPAMonaGothic</family>
            <family>IPAGothic</family>
            <family>Sazanami Gothic</family>
            <family>Kochi Gothic</family>
            <family>AR PL KaitiM GB</family>
            <family>AR PL KaitiM Big5</family>
            <family>AR PL ShanHeiSun Uni</family>
            <family>AR PL SungtiL GB</family>
            <family>AR PL Mingti2L Big5</family>
            <family>MS ゴシック</family>
            <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
            <family>TSCu_Paranar</family> <!-- tamil -->
            <family>NanumGothic</family> <!-- hangul (ko) -->
            <family>UnDotum</family> <!-- hangul (ko) -->
            <family>Baekmuk Dotum</family> <!-- hangul (ko) -->
            <family>Baekmuk Gulim</family> <!-- hangul (ko) -->
            <family>KacstQura</family>
            <family>Lohit Bengali</family>
            <family>Lohit Gujarati</family>
            <family>Lohit Hindi</family>
            <family>Lohit Marathi</family>
            <family>Lohit Maithili</family>
            <family>Lohit Kashmiri</family>
            <family>Lohit Konkani</family>
            <family>Lohit Nepali</family>
            <family>Lohit Sindhi</family>
            <family>Lohit Punjabi</family>
            <family>Lohit Tamil</family>
            <family>Meera</family>
            <family>Lohit Malayalam</family>
            <family>Lohit Kannada</family>
            <family>Lohit Telugu</family>
            <family>Lohit Oriya</family>
            <family>LKLUG</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Miriam Mono</family> <!-- hebrew -->
            <family>VL Gothic</family>
            <family>IPAMonaGothic</family>
            <family>IPAGothic</family>
            <family>Sazanami Gothic</family>
            <family>Kochi Gothic</family>
            <family>AR PL KaitiM GB</family>
            <family>MS Gothic</family> <!-- han (ja) -->
            <family>UmePlus Gothic</family> <!-- han (ja) -->
            <family>NSimSun</family> <!-- han (zh-cn,zh-tw) -->
            <family>MingLiu</family> <!-- han (zh-tw) -->
            <family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
            <family>AR PL New Sung Mono</family> <!-- han (zh-cn,zh-tw) -->
            <family>HanyiSong</family> <!-- han (zh-cn) -->
            <family>AR PL SungtiL GB</family>
            <family>AR PL Mingti2L Big5</family>
            <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
            <family>NanumGothicCoding</family> <!-- hangul (ko) -->
            <family>NanumGothic</family> <!-- hangul (ko) -->
            <family>UnDotum</family> <!-- hangul (ko) -->
            <family>Baekmuk Dotum</family> <!-- hangul (ko) -->
            <family>Baekmuk Gulim</family> <!-- hangul (ko) -->
            <family>TlwgTypo</family> <!-- thai -->
            <family>TlwgTypist</family> <!-- thai -->
            <family>TlwgTypewriter</family> <!-- thai -->
            <family>TlwgMono</family> <!-- thai -->
            <family>Hasida</family> <!-- hebrew -->
            <family>Mitra Mono</family> <!-- bengali -->
            <family>GF Zemen Unicode</family> <!-- ethiopic -->
            <family>Hapax Berbère</family> <!-- tifinagh -->
            <family>Lohit Bengali</family>
            <family>Lohit Gujarati</family>
            <family>Lohit Hindi</family>
            <family>Lohit Marathi</family>
            <family>Lohit Maithili</family>
            <family>Lohit Kashmiri</family>
            <family>Lohit Konkani</family>
            <family>Lohit Nepali</family>
            <family>Lohit Sindhi</family>
            <family>Lohit Punjabi</family>
            <family>Lohit Tamil</family>
            <family>Meera</family>
            <family>Lohit Malayalam</family>
            <family>Lohit Kannada</family>
            <family>Lohit Telugu</family>
            <family>Lohit Oriya</family>
            <family>LKLUG</family>
        </prefer>
    </alias>
</fontconfig>

FontForgeRicty 導入スクリプト

FontForge 導入スクリプト

https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/blob/master/install_fontforge-20190317.sh
https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_fontforge-20190317.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_fontforge-20190317.sh && chmod +x $(pwd)/install_fontforge-20190317.sh && su -l -c $(pwd)/install_fontforge-20190317.sh

Ricty 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_fonts-ttf-ricty-4.1.1.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fonts-ttf-ricty-4.1.1.sh
ダウンロードしたスクリプトを /usr/local/bin 等に置いて実行権限を付与。
使用時は一般ユーザー権限で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fonts-ttf-ricty-4.1.1.sh && chmod +x $(pwd)/install_fonts-ttf-ricty-4.1.1.sh && $(pwd)/install_fonts-ttf-ricty-4.1.1.sh

lv 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_lv-4.51-7.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_lv-4.51-7.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_lv-4.51-7.sh && chmod +x $(pwd)/install_lv-4.51-7.sh && su -l -c $(pwd)/install_lv-4.51-7.sh

nkf の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall nkf"

sl の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall sl"

manpage の日本語表示の適正化スクリプト

/etc/man.conf を編集することで /usr/man/ja 以下のマニュアルアーカイブに対して読み込み時に nkf を用いた UTF-8 への文字コード自動変換を行う「しかけ」を追加する。

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/modify_etc_manconf_for_Japanese_Environment.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/modify_etc_manconf_for_Japanese_Environment.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/modify_etc_manconf_for_Japanese_Environment.sh && chmod +x $(pwd)/modify_etc_manconf_for_Japanese_Environment.sh && su -l -c $(pwd)/modify_etc_manconf_for_Japanese_Environment.sh

迷子の manpage について

/usr/man/jp/ や /usr/man/ja.UTF-8/ 以下に参照されない日本語 manpage が存在する場合、/usr/man/ja/ 以下の適切な場所にシンボリックリンクを作成すると良い。

例1( cd-paranoia.1.gz cdparanoia.1.gz lha.1.gz )
su -l -c "ln -s /usr/man/jp/man1/* /usr/man/ja/man1/"
例2( sl.1.ja.gz )
su -l -c "ln -s /usr/man/ja.UTF-8/man1/* /usr/man/ja/man1/"

日本語 manpage の導入

JM Project から最新のマニュアルアーカイブを入手し導入。
Slackware のマニュアルアーカイブのディレクトリ配置は /usr/share/man ではなく /usr/man である点に注意。

スクリーンショット

VirtualBox_Slackware64_20_08_2019_09_30_33.png

日本語マニュアルアーカイブをインストールしたにも関わらず読み込まれない場合、環境変数 LANG の値と日本語マニュアルアーカイブのインストール先のフォルダ名(ja_JP.utf8 や ja_JP.UTF-8 など)を一致させることで表示可能だった。

日本語マニュアルアーカイブのダウンロード

アーカイブの README ファイル

アーカイブの INSTALL ファイル

日本語入力環境の構築

G-HAL さん Patch 適用済み Anthy 9100h 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_Anthy-9100h-G-HAL-patch13-release-2019406.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_Anthy-9100h-G-HAL-patch13-release-2019406.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_Anthy-9100h-G-HAL-patch13-release-2019406.sh && chmod +x $(pwd)/install_Anthy-9100h-G-HAL-patch13-release-2019406.sh && su -l -c $(pwd)/install_Anthy-9100h-G-HAL-patch13-release-2019406.sh

SKK 辞書(SKK-JISYO.L)導入スクリプト

/usr/share/skk/ に SKK-JISYO.L をインストールする。

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_skk-jisyo.l.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_skk-jisyo.l.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_skk-jisyo.l.sh && chmod +x $(pwd)/install_skk-jisyo.l.sh && su -l -c $(pwd)/install_skk-jisyo.l.sh

ibus の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall ibus"

ibus-fep 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_ibus-fep-1.4.4.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_ibus-fep-1.4.4.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_ibus-fep-1.4.4.sh && chmod +x $(pwd)/install_ibus-fep-1.4.4.sh && su -l -c $(pwd)/install_ibus-fep-1.4.4.sh

ibus-qt の導入

SlackBuilds.org から導入可能。
ibus と Qt アプリの連携に。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall ibus-qt"

ibus-anthy の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall ibus-anthy"

ibus-skk の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall ibus-skk"

ibus-mozc の導入

fcitx-mozc の SlackBuild スクリプトを書き換え構築する。

fcitx の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall fcitx"

fcitx-configtool

SlackBuilds.org から導入可能。
GUI の fcitx 設定ツール。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall fcitx-configtool"

fcitx-anthy 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_fcitx-anthy-0.2.3.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fcitx-anthy-0.2.3.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fcitx-anthy-0.2.3.sh && chmod +x $(pwd)/install_fcitx-anthy-0.2.3.sh && su -l -c $(pwd)/install_fcitx-anthy-0.2.3.sh

fcitx-skk 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_fcitx-skk-0.1.3.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fcitx-skk-0.1.3.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fcitx-skk-0.1.3.sh && chmod +x $(pwd)/install_fcitx-skk-0.1.3.sh && su -l -c $(pwd)/install_fcitx-skk-0.1.3.sh

fcitx-mozc の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall fcitx-mozc"

uim 導入スクリプト

クリーンインストール直後のシステムにおいて uim のソースのみでビルド出来ることをビルドオプション選択の目安としました。

Configure Result :
Configure Result :

   Anthy           : yes
   Anthy (UTF-8)   : yes
   Canna           : no
   Mana            : no
   PRIME           : no
   SJ3             : no
   SKK             : yes
   Wnn             : no
   m17n-lib        : yes
   cURL            : yes
   expat           : yes
   OpenSSL         : yes
   SQLite3         : yes
   ffi             : yes
   GTK+2           : yes
   GNOME2 Applet   : no
   GTK+3           : yes
   GNOME3 Applet   : no
   Qt3             : no
   Qt3 immodule    : no
   Qt4             : yes
   Qt4 immodule    : yes
   Qt4 Qt3Support  : yes
   Qt5             : no
   Qt5 immodule    : no
   KDE3 Applet     : no
   KDE4 Applet     : yes
   FEP             : yes
   Emacs           : yes
   XIM             : yes
   Pref            : yes
   DICT            : yes
   EB              : no
   OSX dictionary  : no
   libedit         : no
   notify          : stderr libnotify knotify4 
   Default toolkit : gtk

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_uim-1.8.8.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_uim-1.8.8.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_uim-1.8.8.sh && chmod +x $(pwd)/install_uim-1.8.8.sh && su -l -c $(pwd)/install_uim-1.8.8.sh

uim-mozc の導入

macuim に含まれる uim-mozc を slackware 向けにリビルドする。
https://code.google.com/archive/p/macuim/
https://github.com/e-kato/macuim/
Uim を使って日本語を入力 - ArchWiki

フレームバッファ及び KMS/DRM コンソールにおける日本語の表示と入力

Kernel Mode Setting (KMS) — The Linux Kernel documentation
https://www.kernel.org/doc/html/latest/gpu/drm-kms.html

Kernel Mode Setting - ArchWiki
https://wiki.archlinux.jp/index.php/Kernel_Mode_Setting

Frame Buffer — The Linux Kernel documentation
https://www.kernel.org/doc/html/latest/fb/

JF: Linux Kernel 2.6 Documentation: framebuffer.txt
http://archive.linux.or.jp/JF/JFdocs/kernel-docs-2.6/fb/framebuffer.txt.html

※ 非 X 環境、Linux コンソール上では半角/全角キーや変換キー、無変換キー等がインプットメソッドの ON/OFF に使えないかもしれません。その場合は Ctrl+Space などの無難なキーの組み合わせをインプットメソッドの ON/OFF や、かな漢字変換の ON/OFF に割り当てておくと良いでしょう。

kmscon の導入

SlackBuilds.org から導入可能。
kmscon ではマウスカーソルは使えないようである。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall kmscon"

/etc/inittab で呼び出す

https://linuxjm.osdn.jp/html/SysVinit/man5/inittab.5.html
https://www.atmarkit.co.jp/ait/articles/0204/02/news002.html

以下は /bin/login の代わりに /sbin/agetty を使い、tty6 で kmscon を動かす場合の設定例。

/etc/kmscon/kmscon.conf#login=/sbin/agetty 38400 -- - linux をアンコメントし、/etc/inittabc6:12345:respawn:/sbin/agetty 38400 tty6 linuxc6:12345:respawn:/usr/bin/kmscon と変更する。

/etc/kmscon/kmscon.conf
/etc/kmscon/kmscon.conf
# Config file for kmscon.
# Any long option listed in "man kmscon" can be used here.

# As shipped, all the options in this file are commented out.

# Use agetty for logging in.
# By default, kmscon spawns "/bin/login -p", which works fine but
# isn't as nice (or as familiar) as using agetty.
# If you plan to spawn kmscon from /etc/inittab, you probably want to
# uncomment this.

login=/sbin/agetty 38400 -- - linux


# Enable DRM 2D acceleration. 3D accel won't work unless you have
# GL/ES support (which Slackware doesn't ship with, and isn't available
# on SBo either).

drm


# Font size, in points (not pixels). Don't set too large, you want
# at least 80x25 character cells. 'echo $COLUMNS $LINES' should show
# at least 80 columns and 25 lines.

#font-size=15


# Enable shortcut keys for multiple sessions on the same
# virtual terminal.

#session-control


# Keyboard repeat delay is in milliseconds. Repeat rate is *also* in
# milliseconds (unlike "xset r", which uses repeats-per-second).

#xkb-repeat-delay=200
#xkb-repeat-rate=12


# Keyboard Layout, Variant, Options
xkb-layout=jp
xkb-variant=OADG109A

/etc/inittab
/etc/inittab
#
# inittab   This file describes how the INIT process should set up
#       the system in a certain run-level.
#
# Version:  @(#)inittab     2.04    17/05/93    MvS
#                                       2.10    02/10/95        PV
#                                       3.00    02/06/1999      PV
#                                       4.00    04/10/2002      PV
#                                      13.37    2011-03-25      PJV
#
# Author:   Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modified by:  Patrick J. Volkerding, <volkerdi@slackware.com>
#

# These are the default runlevels in Slackware:
#   0 = halt
#   1 = single user mode
#   2 = unused (but configured the same as runlevel 3)
#   3 = multiuser mode (default Slackware runlevel)
#   4 = X11 with KDM/GDM/XDM (session managers)
#   5 = unused (but configured the same as runlevel 3)
#   6 = reboot

# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:

# System initialization (runs when system boots).
si:S:sysinit:/etc/rc.d/rc.S

# Script to run when going single user (runlevel 1).
su:1S:wait:/etc/rc.d/rc.K

# Script to run when going multi user.
rc:2345:wait:/etc/rc.d/rc.M

# What to do at the "Three Finger Salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -r now

# Runlevel 0 halts the system.
l0:0:wait:/etc/rc.d/rc.0

# Runlevel 6 reboots the system.
l6:6:wait:/etc/rc.d/rc.6

# What to do when power fails.
pf::powerfail:/sbin/genpowerfail start

# If power is back, cancel the running shutdown.
pg::powerokwait:/sbin/genpowerfail stop

# These are the standard console login getties in multiuser mode:
c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
#c6:12345:respawn:/sbin/agetty 38400 tty6 linux
c6:12345:respawn:/usr/bin/kmscon

# Local serial lines:
#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100
#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100

# Dialup lines:
#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100

# Runlevel 4 also starts /etc/rc.d/rc.4 to run a display manager for X.
# Display managers are preferred in this order:  gdm, kdm, xdm
x1:4:respawn:/etc/rc.d/rc.4

# End of /etc/inittab

/etc/rc.d/rc.4 から呼び出す

以下はグラフィカルログインマネージャを kmscon で乗っ取る場合の設定例。/etc/inittab でデフォルトランレベルを 4 に設定し、/etc/rc.d/rc.4 を編集してログインマネージャの代わりに kmscon が起動するよう変更する。

具体的には、/etc/inittabid:3:initdefault:id:4:initdefault: とし、/etc/rc.d/rc.4 の gdm の呼び出し行の上に kmscon の呼び出し行を書く。

/etc/inittab
/etc/inittab
#
# inittab   This file describes how the INIT process should set up
#       the system in a certain run-level.
#
# Version:  @(#)inittab     2.04    17/05/93    MvS
#                                       2.10    02/10/95        PV
#                                       3.00    02/06/1999      PV
#                                       4.00    04/10/2002      PV
#                                      13.37    2011-03-25      PJV
#
# Author:   Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modified by:  Patrick J. Volkerding, <volkerdi@slackware.com>
#

# These are the default runlevels in Slackware:
#   0 = halt
#   1 = single user mode
#   2 = unused (but configured the same as runlevel 3)
#   3 = multiuser mode (default Slackware runlevel)
#   4 = X11 with KDM/GDM/XDM (session managers)
#   5 = unused (but configured the same as runlevel 3)
#   6 = reboot

# Default runlevel. (Do not set to 0 or 6)
id:4:initdefault:

# System initialization (runs when system boots).
si:S:sysinit:/etc/rc.d/rc.S

# Script to run when going single user (runlevel 1).
su:1S:wait:/etc/rc.d/rc.K

# Script to run when going multi user.
rc:2345:wait:/etc/rc.d/rc.M

# What to do at the "Three Finger Salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -r now

# Runlevel 0 halts the system.
l0:0:wait:/etc/rc.d/rc.0

# Runlevel 6 reboots the system.
l6:6:wait:/etc/rc.d/rc.6

# What to do when power fails.
pf::powerfail:/sbin/genpowerfail start

# If power is back, cancel the running shutdown.
pg::powerokwait:/sbin/genpowerfail stop

# These are the standard console login getties in multiuser mode:
c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux

# Local serial lines:
#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100
#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100

# Dialup lines:
#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100

# Runlevel 4 also starts /etc/rc.d/rc.4 to run a display manager for X.
# Display managers are preferred in this order:  gdm, kdm, xdm
x1:4:respawn:/etc/rc.d/rc.4

# End of /etc/inittab

/etc/rc.d/rc.4
/etc/rc.d/rc.4
#! /bin/sh
#
# rc.4      This file is executed by init(8) when the system is being
#       initialized for run level 4 (XDM)
#
# Version:  @(#)/etc/rc.d/rc.4  2.00    02/17/93
#
# Author:   Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
# At least 47% rewritten by:  Patrick J. Volkerding <volkerdi@slackware.com>
#

# Tell the viewers what's going to happen...
echo "Starting up X11 session manager..."

# KMSCON
if [ -x /usr/bin/kmscon ]; then
  exec /usr/bin/kmscon
fi

# Try to use GNOME's gdm session manager.  This comes first because if
# gdm is on the machine then the user probably installed it and wants
# to use it by default:
if [ -x /usr/bin/gdm ]; then
  exec /usr/bin/gdm -nodaemon
fi

# Someone thought that gdm looked prettier in /usr/sbin,
# so look there, too:
if [ -x /usr/sbin/gdm ]; then
  exec /usr/sbin/gdm -nodaemon
fi

# Not there?  OK, try to use KDE's kdm session manager:
if [ -x /opt/kde/bin/kdm ]; then
  exec /opt/kde/bin/kdm -nodaemon
elif [ -x /usr/bin/kdm ]; then
  exec /usr/bin/kdm -nodaemon
fi

# Look for SDDM as well:
if [ -x /usr/bin/sddm ]; then
  exec /usr/bin/sddm
fi

# If all you have is XDM, I guess it will have to do:
if [ -x /usr/bin/xdm ]; then
  exec /usr/bin/xdm -nodaemon
elif [ -x /usr/X11R6/bin/xdm ]; then
  exec /usr/X11R6/bin/xdm -nodaemon
fi

# error
echo
echo "Hey, you don't have KDM, GDM, or XDM.  Can't use runlevel 4 without"
echo "one of those installed."
sleep 30

# All done.

キーボードレイアウトを適正化する

/etc/kmscon/kmscon.conf に、
日本語 106/109 キーボードなら例えば
xkb-layout=jp
と指定する。variant や options も指定可能 [^options] 。詳しくは kmscon の manpage を閲覧のこと。

[^options]: kbd-options で複数のオプションを指定する場合はカンマで区切る必要があった。

また、環境変数 COLORTERM=kmscon が設定されるので、.profile 等の記述を工夫することで kmscon 下では ja_JP.UTF-8 、Linux コンソールでは en_US.UTF-8 といった切り替えを自動化出来る。

kmscon 用キーボードレイアウト設定ツール

kmsconconfig と命名したものの、現在キーボードレイアウト編集設定機能のみ搭載。/etc/kmscon/kmscon.conf を編集しキーボードレイアウト・ヴァリアント[^ヴ]・オプションを選択・設定する。

[^ヴ]: 「ヴ」には厨二心をくすぐられる。

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/kmsconconfig
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/kmsconconfig
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/kmsconconfig && chmod +x $(pwd)/kmsconconfig && su -l -c $(pwd)/kmsconconfig

kmscon における日本語入力

いずれかのFEPが必要。

ibus-fep を使う場合

ibus-daemon が稼働中、かつ適切なインプットメソッドエンジンが選択されている必要がある。

例:
$ ibus-daemon -dr
$ ibus engine anthy
$ ibus-fep

uim-fep を使う場合

kmscon 上では uim-fep のみを起動すると描画が乱れるが、screen や tmux もしくは byobu 上で実行することにより、描画を崩壊させることなく日本語入力を行えた。

上記以外の日本語入力

vim や emacs 等独自の日本語入力フレームワークを持つものを日本語入力時に使用する。

mlterm のフレームバッファ仕様(mlterm-fb)の導入

日本語入力への対応が簡単。
libsixel により画像データも表示可能。
・マウスポインタもサポート [^mlterm-mouse] 。
・GNU Screen や tmux 、あるいはタイル型ウィンドウマネージャのような感覚でスクリーンを分割可能。
・オプションを渡せば縦書き表示にも対応。
・現在も活発に開発が続いている。

このように良いこと尽くめであるが、フレームバッファ仕様でビルドした mlterm( mlterm-fb )は動作がやや鈍いと感じた。また、mlterm-fb は X 上では動作しない。

なお、ビルド後に make install ではなく、 make install-fb としてやることで、通常版 mlterm 導入済みの環境で mlterm-fb を共存させられる。

[^mlterm-mouse]: gpm が有効である場合 mlterm-fb の描画が崩れるので、 chmod -x /etc/rc.d/rc.gpm しておく必要がある。

libsixel の導入

SlackBuilds.org から導入可能。
mlterm 構築前にあらかじめこちらを導入しておくことで SixelGraphics 対応版を生成出来る。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall libsixel"

mlterm の導入

SlackBuilds.org から導入可能。
非 X 環境で日本語入力を行いたい場合は先に各種 Input Method を導入しておくこと。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall mlterm"

mlterm-fb 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_mlterm-fb-3.8.8.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_mlterm-fb-3.8.8.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_mlterm-fb-3.8.8.sh && chmod +x $(pwd)/install_mlterm-fb-3.8.8.sh && su -l -c $(pwd)/install_mlterm-fb-3.8.8.sh

mlterm-sdl2 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_mlterm-sdl2-3.8.8.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_mlterm-sdl2-3.8.8.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_mlterm-sdl2-3.8.8.sh && chmod +x $(pwd)/install_mlterm-sdl2-3.8.8.sh && su -l -c $(pwd)/install_mlterm-sdl2-3.8.8.sh

Linux コンソールから起動する場合、mlterm-fb に比べ少し動作が軽いように思う。また、GPMをOFFにする必要がない。ただし非 X 環境で用いる際は、chmod g-s /usr/bin/mlterm-sdl2 した上でユーザーを input グループに加えておく必要があった。前述の対処を行わない場合、SDL2 の仕様により非 X 環境ではキーボード及びマウスからの入力が全て取り上げられ操作不能におちいるので注意すること。

chmod g-s /usr/bin/mlterm-sdl2 の後に chown root:root して chmod u+s /usr/bin/mlterm-sdl2SUID しておけば utmp/wtmp 関連の動作は root:utmp で SGID な状態と同じになると思われる。

参考とした文献

mlterm(Multi Lingual TERMinal emulator) / [Mlterm-dev-ja] utmp support for linux glibc
https://sourceforge.net/p/mlterm/mailman/message/3285553/

SDL 2.0 日本語リファレンスマニュアル
http://sdl2referencejp.osdn.jp/index.html

SDL_envvars - SDL Documentation Wiki
https://sdl.beuc.net/sdl.wiki/SDL_envvars

Can we now use SDL2 without X11? - SDL Development - Simple Directmedia Layer
https://discourse.libsdl.org/t/can-we-now-use-sdl2-without-x11/23421

linux - Keyboard and mouse in SDL2 app without X11 on Raspberry Pi - Stack Overflow
https://stackoverflow.com/questions/56423753/keyboard-and-mouse-in-sdl2-app-without-x11-on-raspberry-pi

Filesystem Capability Bits - SlackBuilds.org
https://www.slackbuilds.org/caps/

SDL2 で明示的に KMS/DRM を使いたい場合、環境変数で "SDL_VIDEODRIVER=kmsdrm" などとしてやると良さそう。

実行例
SDL_VIDEODRIVER=kmsdrm mlterm-sdl2

fbterm の導入

SlackBuilds.org から導入可能。

導入例(sbotools利用時)
su -l -c "/usr/sbin/sboinstall fbterm"

fbterm における日本語入力

各種 fep の他、fcitx-fbterm が利用可能だった。

fcitx-fbterm 導入スクリプト

https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/blob/master/install_fcitx-fbterm-0.2.0.sh
https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fcitx-fbterm-0.2.0.sh
ダウンロードしたスクリプトを /usr/local/sbin 等に置いて実行権限を付与。
使用時は root で実行。

使用例
wget https://gitlab.com/earthsimilarityindex/liquidmelon-cjk-toybox/raw/master/install_fcitx-fbterm-0.2.0.sh && chmod +x $(pwd)/install_fcitx-fbterm-0.2.0.sh && su -l -c $(pwd)/install_fcitx-fbterm-0.2.0.sh
起動例

Linux コンソールで fcitx-fbterm-helper を実行する。fcitx-fbterm-helper が自動的に fcitx 及び fbterm を起動する。

$ /usr/bin/fcitx-remote -e
$ /usr/bin/fcitx-fbterm-helper -l

fcitx-fbterm-helper -h で使い方が表示される。

素材

SBoからのダウンロード&ビルド自動化スクリプトのテンプレート

88x31.png

以下のテンプレートはCC0でリリースしておきます。ご自由にお使い下さい。

テンプレート1:初期型。ハードコーディングだらけ。
  • md5sum のハッシュ値とファイル名の間は半角スペースが二つ入ります。
  • SlackBuilds.org の公開鍵をインポート済みであれば関連する行をアンコメントすることで SlackBuilds.org からダウンロードした tar.gz ファイルの検証を行えます。
テンプレート1
#!/bin/sh

MD5SUM_BAR_000="d41d8cd98f00b204e9800998ecf8427e  /root/Downloads/bar/bar-0.0.0.tar.gz"

checksum_md5sum () {
    timestamp=$(date +%Y%m%d%H%M%S%N)
    rm -f /tmp/md5sum-$1.$timestamp
    echo $2 >/tmp/md5sum-$1.$timestamp
    chmod go-r /tmp/md5sum-$1.$timestamp
    md5sum -c /tmp/md5sum-$1.$timestamp || exit
    rm /tmp/md5sum-$1.$timestamp || exit
    unset timestamp
}

if test ! $USER = root ; then
    echo "Run this script as root, bye."
    exit
else
    cd /root || exit
    . /etc/profile
    test -d /root/Downloads || mkdir /root/Downloads
    cd /root/Downloads
    if test -f /var/log/packages/bar-0.0.0-x86_64-1_SBo ; then
        echo "Bar 0.0.0 is already installed."
    else
        test -d /root/Downloads/bar && rm -r /root/Downloads/bar
        wget https://slackbuilds.org/slackbuilds/14.2/foo/bar.tar.gz || exit
#       wget https://slackbuilds.org/slackbuilds/14.2/foo/bar.tar.gz.asc || exit
#       gpg --verify /root/Downloads/bar.tar.gz.asc /root/Downloads/bar.tar.gz || exit
        tar zxf /root/Downloads/bar.tar.gz
        cd /root/Downloads/bar
        wget http://www.foo.baz/bar-0.0.0.tar.gz || exit
        checksum_md5sum bar000 "$MD5SUM_BAR_000"
        /root/Downloads/bar/bar.SlackBuild
        upgradepkg /tmp/bar-0.0.0-x86_64-1_SBo.tgz ||
            installpkg /tmp/bar-0.0.0-x86_64-1_SBo.tgz
        ldconfig
        cp /tmp/bar-0.0.0-x86_64-1_SBo.tgz /root/Downloads/
        cd /root/Downloads
        less /usr/doc/bar-0.0.0/README
    fi
fi

テンプレート2:利便性向上を狙うも可読性が低下。

https://slackbuilds.org/repository/14.2/games/xcowsay/
https://slackbuilds.org/repository/14.2/games/supertuxkart/

[^anynumber]: * はスクリプトに応じて読み替えて下さい。

テンプレート2
#!/bin/sh

SOFTWARE_NAME_01="bar"
SOFTWARE_VERSION_01="0.0.0"
SOFTWARE_SOURCE_URL_01="http://www.foo.baz/bar-0.0.0.tar.gz"
SOFTWARE_ARCHIVE_NAME_01="bar-0.0.0.tar.gz"
SOFTWARE_ARCHIVE_MD5SUM_01="d41d8cd98f00b204e9800998ecf8427e"
SOFTWARE_README_01="/usr/doc/bar-0.0.0/README"
SOFTWARE_README_PAGER_01="less"
SBO_PKG_LOG_NAME_01="bar-0.0.0-x86_64-1_SBo"
SBO_SOURCE_URL_01="https://slackbuilds.org/slackbuilds/14.2/foo/bar.tar.gz"
SBO_GPG_VERIFY_01="false"

BUILD_ORDER="01"

checksum_md5sum () {
  tempfile=$(mktemp)
  md5sum_data="$2  /root/Downloads/$1/$3"
  echo "$md5sum_data" >"$tempfile"
  unset md5sum_data
  md5sum -c "$tempfile" || exit
  rm "$tempfile" || exit
  unset tempfile
}

sbo_builder () {
  if test -f "/var/log/packages/$1" ; then
    echo "$2 $3 is already installed."
    return 1
  else
    test -d "/root/Downloads/$2" && rm -r "/root/Downloads/$2"
    rm "/root/Downloads/$2.tar.gz" || rm -r "/root/Downloads/$2.tar.gz"
    wget "$4" || exit
    if test "$5" = true ; then
      wget "$4.asc" || exit
      gpg --verify "/root/Downloads/$2.tar.gz.asc" "/root/Downloads/$2.tar.gz" || exit
    fi
    tar zxf "/root/Downloads/$2.tar.gz"
    cd "/root/Downloads/$2" || exit
    wget "$6" || exit
    checksum_md5sum "$2" "$7" "$8"
    "/root/Downloads/$2/$2.SlackBuild"
    upgradepkg "/tmp/$1.tgz" || installpkg "/tmp/$1.tgz"
    ldconfig
    cp "/tmp/$1.tgz" /root/Downloads/
    cd /root/Downloads
    return 0
  fi
}

if test ! "$USER" = root ; then
  echo "Run this script as root, bye."
  exit
else
  cd /root || exit
  . /etc/profile || exit
  test -d /root/Downloads || mkdir /root/Downloads
  cd /root/Downloads
  unset i
  for i in $BUILD_ORDER ; do
    eval sbo_builder \
      "\$SBO_PKG_LOG_NAME_$i" \
      "\$SOFTWARE_NAME_$i" \
      "\$SOFTWARE_VERSION_$i" \
      "\$SBO_SOURCE_URL_$i" \
      "\$SBO_GPG_VERIFY_$i" \
      "\$SOFTWARE_SOURCE_URL_$i" \
      "\$SOFTWARE_ARCHIVE_MD5SUM_$i" \
      "\$SOFTWARE_ARCHIVE_NAME_$i"
  done
  if test "$?" = 0 ; then
    unset i
    for i in $BUILD_ORDER ; do
      eval \$SOFTWARE_README_PAGER_$i "\$SOFTWARE_README_$i"
    done
    unset i
  fi
fi

パッケージング関連資料

Building A Package - SlackWiki
https://www.slackwiki.com/Building_A_Package

Writing A SlackBuild Script - SlackWiki
https://www.slackwiki.com/Writing_A_SlackBuild_Script

Slack-desc - SlackWiki
https://www.slackwiki.com/Slack-desc

Slackdesc: A tool for generating slack-desc files.
http://slack-desc.sourceforge.net/

slackdesc 導入スクリプト
https://gitlab.com/earthsimilarityindex/aquasuika-et-cetera/blob/master/install_slackdesc-0.02.sh
https://gitlab.com/earthsimilarityindex/aquasuika-et-cetera/raw/master/install_slackdesc-0.02.sh

パッケージ | 逆襲のSlackware
https://slackware.jp/package.html

Slackware14.1でソースからパッケージを自作する - クロの思考ノート
http://note.kurodigi.com/slackware141-makepkg/

SlackBuilds.orgにSlackBuildスクリプトを投稿する - クロの思考ノート
http://note.kurodigi.com/sbo-submit/

Slackwareのパッケージ管理 - slackware @ 日本語ウィキ - アットウィキ
https://www51.atwiki.jp/slackware/pages/20.html

Slackware Linuxのソフトウェア - Akionux-wiki
http://ja.akionux.net/wiki/index.php/Slackware_Linux%E3%81%AE%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2

Slackware Linux 14.1のインストール#パッケージのインストール - Akionux-wiki
http://ja.akionux.net/wiki/index.php/Slackware_Linux_14.1%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB#.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E3.81.AE.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB

Slackwareをアップグレードする話 – エンジニアブログ「INAP流」
https://www.inap.co.jp/internapsway/?p=152

TODO

  • 自動化スクリプトテンプレートを改良する。[^info]
  • SlackBuilds.org に日本語の表示・入力関連のビルドスクリプトを投稿する。
  • 可能な範囲で中文や한국어の表示・入力関連のビルドスクリプトも投稿する。
  • 拙作各種スクリプトのリファクタリングを行う。ARM や i386 にも対応させる。
  • ibus-mozc 及び uim-mozc のインストールスクリプトを書く。
  • scim-skk のインストールスクリプトを書く。
  • scim-console のインストールスクリプトを書く。
  • libkkc 系の IME を移植する。
  • libfep を使って fcitx-fep を作ってみる。
  • scim-mozc を書けそうなら書いてみる。
  • Canna や Wnn のインストールスクリプトを書いてみる。 [^info]: とりあえず、変数で目的のソフトの *.info ファイルを指定するだけで良いようにしたい。

  1. 一つの用途に対して採用されるアプリは一つ。 

  2. VirtualBox で Salix OS をゲスト OS として利用し、かつ GuestAdditions を導入する場合、モジュールのコンパイル時に kernel-headers パッケージのみでは足りず、稼働中のカーネルに対応する kernel-source パッケージを slapt-get で入れる必要があった。 

  3. In 2019 : Zenwalk is a 64 bits "pure" Slackware system with added post-install configurations, optimizations and out of the box tweaks, with a ready to use polished desktop environment, with added graphical system tools, added office and multimedia applications, and striped to keep just "one application per task"!(Zenwalk 公式サイトより引用) 

  4. USB フラッシュメモリ等からの高速起動にフォーカスしている。 

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1