Raspberry Pi OSにphpMyAdminのインストール

標記の件,あちこちに書いてあると思いますが,自分ナイズした手順をメモっときます.

前提としては,別所ですでにphpMyAdminが動いていた/var/lib/mysql以下をバイナリーで手元に持ってきて,データベースとして正常に動作している状態であることです.

apt install phpmyadmin

いろいろ依存ファイルがインストールされ,最後にdpkg-なんとかで設定するかと聞いてきますが,すでにphpmyadminが動くように設定済みのMariaDBが動いているわけですから “No” です.

これでApache2を再起動してもphpMyAdminは機能してくれませんでした.設定が足りていません.

設定の最初ですが,phpMyAdminというデフォルトのpathは攻撃者の格好の標的となりますので,/etc/phpmyadmin/apache.confの最初の方にあるAliasを他の人が想像しにくいように変えます.

次に,Debian的に進めるために,/etc/apache2/conf-availableに,/etc/phpmyadmin/apache.confのsymlinkを貼ります.

cd /etc/apache2/conf-available
ln -s /etc/phpmyadmin/apache.conf phpmyadmin.conf

次に,Debianらしいコマンドa2eanbleを実行し,apache2の設定をreloadすれば完了です.

a2enable phpmyadmin.conf
systemctl reload apache2

次はLDAP

次は,OpenLDAPをインストールして,これも別所のデータをバイナリーで移してみます.これはx86からARMにもってきたときは失敗したと記憶しています.

slapdが動くようになったら,phpLDAPadminを動かしてみます.

あとでも良いのですが.

Slackware ARMとRaspberry Pi OS 64bitのMariaDBはバイナリーコンパチ

標記の件確認しました.そうだろうとは思っていました.逆にそうでなかったなら何なんだろうとも思っていました😥

これで,Raspberry Pi 5導入時にサーバーのOSをRaspberry Pi OS 64bitにする最大の懸念が払拭されました.

一応確認した方法を書いときます.

Slackware ARMのMariaDBを,

/etc/rc.d/rc.mysqld stop

で停止させてから,/var/lib/mysql以下をtarで固めてsftpするか,rsyncを使ってRaspberry Pi OS 64bitのマシンの適当な作業ディレクトリーに置いときます

以下はRaspberry Pi OS 64bit側での作業です.

apt install mariadb-server

で,mariadbのサーバーをインストールします.これだけでMariaDBが動き出しますが,念の為動作を確認してからおまじないを実行します.

systemctl status mariadb
mysql_secure_installation

これで,rootだけログインできる空のデータベースが動き出します.ここで一旦,

systemctl stop mariadb

で,MariaDBを停止させて,

cd /var/lib
mv mysql mysql-empty

あとは,Slackware ARMから持ってきたデータを展開してから,/var/lib/mysqlとして置きます.念の為,/var/lib/mysql以下のオーナー・グループがmysql:mysqlになっているか確認してなってなければ修正します.

これで,

systemctl start mariadb

として起動を確認して,あとはSlackware ARMで使っていたユーザーでログインして中身を確認します.

コマンドラインだけでは不便なので,phpMyAdminをあとでインストールしたいと思います.

Slackware ARMのMariaDBは再起動しておきます.

Raspberry Pi 5がほしいけど発売は来年か?

SNSでRaspberry Piの公式アカウントをフォローしていると,もうRaspberry Pi 5(RPi5)が売り出されたかと錯覚するほど,RPi5の話題が盛んに流れてきます.

その流れてきた情報の一つMouserという有名な通販サイトのアカウントを作っていろいろ見てみましたが,まだ “Preorder” の段階で,発送は “17 weeks” 先のようです😅

ほしいけど流石に4か月も先の注文はする気がしません.Mouserは日本の場合6000円以上の注文で,送料無料だそうなので,アカウントはそのまま残して,最終的な購入サイト候補の一つにします.

いちおうRaspberry Pi 4 Model B (RPi4)でRaspberry Pi OSのもとKDE Plasma Desktopを動かしてサーバーに仕立てるという計画は,少なくともKDE Plasma Desktopを安定的に動かしてup-to-dateにする段階までは問題なくいってます.

サーバーに仕立てる最大の難関は,MariaDBのデータの移植です.Slackware x86からSlackware ARMへの移植はMariaDBのバイナリーデータをコピーしてうまくいきました.まあ,x86からARMがうまく行けば,Slackware ARM (32bit)からRaspberry Pi OS 64bitへもうまく行きそうな気もしますが,こればかりはやってみなければ解りません.

もしバイナリーでうまく行かないとなれば,正攻法であるExportしてImportの手順を踏むことになりますが,長い間に多数のデータベースをこさえてしまったので,頭がいたいです.

逆に言うと,MariaDBのデータさえ移植できれば後はほとんど問題ないとも言えます.だからさっさと,今動いているRaspberry Pi OS 64bitで試せば良いのですが,なかなか腰が重いです.

ともあれ,まだ先とは言えRPi5の発売が確定したので,新サーバーはRPi5で動かすことと決めて,今後のお膳立てを勧めていきたいと思います.

RasPiでDebian使いたかったらRaspberry Pi OS

何がしたいかというと,Raspberry Pi 4 Model B (RPi4)でDebian + KDE Plasma Desktopを動かし,fcitx5+Mozcによる日本語入力をしたいというのが最終目標です.

紆余曲折

この節は,他の人,というか自分自身にとってもなんの役にも立たない愚痴です

そもそもなんでRaspberry Pi OSでなくてDebianなのかというと,Raspberry Pi OSの標準DesktopであるPIXELが気に入らんのです.なんとしてもManjaro ARMのように,KDEを動かしたいのです.「だったら,Raspberry Pi OS LITEをインストールして,そこにKDEをインストールすればいいじゃないか」,と思った人は正解です.昨年の6月に私もそれに気がついて,やっていたんです.

しかし,今回なぜすぐにそれをしなかったかというと,Debian Bookworm (12)がリリースされたのが今年の6月10日であるのに,Raspberry Pi OS Bookwormは10月11日です.これは本家を使わなければ時代から取り残されるとの危機感を抱いたのです.

そこで,DebianのサイトにあるRasperry Pi用イメージを試してみましたができがよろしくない.これは好事家によるcontributionなのであまり文句はいってはいけないようですが,起動が遅いうえ,USB-3接続のSSDにインストールすると,upgradeができないという致命的な問題がありました

そこで,Debian ARMの公式のインストールDVDイメージをダウンロードしてドキュメントの初めの方を読んでみましたが,基本的にUEFI対応のハードウエアでないとDVDイメージは使えず,Raspberry Piのようなそうでないハードウエアに対しては,自分でなんだかんだとインストーラー的なものを作らないといけない.

そう,それをやっているのがRaspberry Pi OSのcontributerたちなわけです.寄ってたかって作っているわけですから,好事家の私家版が及ぶ訳はないし,ましてや筆者ごときが逆立ちしたってそれより良いものは作れないわけです.

というあたりをこの週末の作業で悟ったり思い出したりしたわけです.

RPi4でKDE + Mozc

Raspberry Pi OS Lite (64bit)をインストール

説明はいらないと思います.Liteなら数GBのSDカードにコピーできそうですが,手持ちの関係で32GBのmicroSDカードを使いました.

最初の起動では,色々設定があり,素直にしたがって設定をします.その後の起動でネットの接続を確認して,apt update; apt upgradeをかけました.

SSDへのコピー

SSDへのコピーのタイミングはいつも迷いますが,早いほうがupgradeや新規インストールの作業が高速なのは言うまでもありません.しかし,あまり早い段階ですると,そこから先は製作元の想定していない使い方なのでトラブルが発生するリスクが高くなります.

しかし,KDEのインストールでは1000以上のパッケージがインストールされるので,この段階で移行しました.

ご存知のようにRPi4では,USB接続したHDD/SSDからブートも可能ですが,SSDの第1パーティションをManjaro ARMのブート用のままにして,SDカードを差すと第3パーティションをrootにしてDebianが起動するようにしました.

この場合,32GBのSDカードをそのまま使うこともできますが,もったいないので手持ちで一番小さい2GBのmicroSDカード(以下 “小SD(カード)” )をブート用に仕立てました.

ここまで使用してきたSDカードのルートから,Debianが活きたままSSDにコピーすることもできますが,その場合あとでいくつか呪い(まじない)が必要なので,他のLinuxマシンで死んだ状態のSDカードからコピーしました

コピー先は,SDカードの第1パーティションは,MBR式パーティションの小SDカード(vfatのパーティション一つだけ)のvfatパーティションへ,SDカードの第2パーティションの中身はSSDの第3パーティションへ,です.

コピーコマンドはいずれも,

cp -Rdvp  元  先

または,

rsync -artlvd --delete  元  先

です.

Raspberry Pi OSはデフォルトでパーティションラベルでパーティションの識別をしているので,それはそれで楽なので,fatlabel, e2labelコマンドで,起動用の小SDカード,rootパーティションに適当な名前を付け,ブート用小SDカード内のcmdline.txtとrootハーティションの/etc/fstabのそれぞれの該当部分を編集します.

あとは,起動用に新しく仕立てた小SDカードとSSDを接続して,祈りながら起動します.間違いがなければ起動するはずです.

KDE Plasma Desktopのインストール

無事起動したら,いよいよGUIのインストールです.メインというか,root以外の唯一のユーザーでログインして,あとはSlackware的流儀で行くためすかさずsudo -iをします.

まずインストールするのは,sddm, kde-plasma-desktopです.今回はsddmを明示しましたが,いらないかもしれません.

次に,kde-fullです.完了したら,また祈りながらリブートですが,sddmが起動してくれませんでした.

sddm workaround

RPi4を起動しても,sddmが起動してくれません.CUIのコンソールから(root権限にて),

systemctl start sddm

とすると,sddmが起動してKDE Plasma Desktopにログインできますから,なにかタイミングの問題と思われます.

systemctlで,sddmdisableにしてから再度enableにしたり,sddmパッケージを削除して再インストールするというようなオーソドックスな方法を試みましたが,改善しません.

実は,/usr/lib/systemd/system/sddm.serviceに解決のヒントが書いてあります.

略
# If using tty1 and plymouth, sddm will fail till plymouth stops
# consider using:
## After=plymouth-quit.service
# or to forcefully stop plymouth and start earlier:
## Conflicts=plymouth-quit-wait.service
## After=plymouth-start.service plymouth-quit-wait.service
## OnFailure=plymouth-quit.service
略

ところがどっこい,提案してあるどちらを試しても状況は変わらずでした

さて,何をいつまで待てば良いかわからないので,単純に30秒待つことにしました.

具体的には,/etc/systemd/system内に,次の内容で,テキストファイル,sddm.timerを作成します.

[Unit]
Description=Delayed start of sddm

[Timer]
OnBootSec=30sec

[Install]
WantedBy=timers.target

CUIから,

systemctl disable sddm
systemctl stop    sddm   ← 念のため
systemctl enable  sddm.timer

ここで,リブートして,動作確認します.筆者の環境ではうまくいっています.

その後,待ち時間を削り,最終的にOnBootSec=0secにしてもsddmが起動します.

日本語環境

Mozcをインストールする前でもあとでもいいですが,/etc/X11/xorg.conf.d00-keyboard.confというテキストファイルを以下の内容で作ります.ローマ字入力の人には関係ないかもしれませんが,これをしないと,あとでKDEのsettingでどこをどうしてもかな入力で濁点や半濁点,長音記号が使えなくなります.

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "jp"
    Option "XkbModel" "jp106"
    Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

fcitx5-mozc

apt install fcitx5-mozc

して,一般ユーザーのホームディレクトリーに,.xprofileという名前で,

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS='@im=fcitx'

が中身のテキストファイルを作ります.たぶん,sddmの再起動だけで良いと思いますが,システムごとリブートして確認してみます.

あとは,KDE settingsのキーボード設定やMozc設定や他なんやかんやで使えるようになると思います.

経緯の記録くらいの意味はあるかもです.
LXDEからの派生.
厳密に言うとapt upgradeすると,起動しなくなる.
あくまで当社調べです.
いや,世の中一人ですごいことをする天才はいますが,確率は低いです.
“読者”はこの記事を忘れた頃に読み返す筆者自身を主に想定しています.
この時点ではWifiは使わず有線LANでつないでます.
Manjaro ARMのrootは第2パーティション.
筆者の場合はManjar ARM.
あ,最近した作業のどこかでUUIDで識別しているところもありましたが,どの環境だか忘れました.本筋でないので確認は省略.
システムいじりは一般ユーザとして無責任にsudoを連発して行わず,rootになって責任を自覚しつつ行う.
/usr/lib/systemd/の中身をいじることは推奨されていませんから,/usr/lib/systemd/system/sddm.service/etc/systemd/system/sddm.serviceにコピーしてから改変します.

Raspberry Pi OS Bookwormでfcitx5-mozcのかな入力ができない

かな入力って日常的に使っている人はあまり多くないため,日本語入力ソフトにおける検証が十分なされないことが多々あることをこれまでの経験で知っています.

Manjaro AMD64, 同 ARM64, Debian AMD64ではfcitx5-mozcはちゃんとかな入力可能です.

しかし,先日リリースされたRaspberry Pi OS Bookwormにfcitx5-mozcをインストールした状態ではだめです.少なくとも今のところだめです.どうだめかというと,濁点を打とうとすると, “ふ” になってしまいます.「だくてん」と打ったつもりが,「たふくてん」と表示されます.これでは使い物になりません.

実はManjaro ARM64は日本語のかな入力はfcitx5-mozcでちゃんとできるのですが,FirefoxでWordPressの編集などをしているとよく固まります.そんなわけでRaspberry Pi OS Bookwormが使えるんだったら乗り換えようかと考えていただけに,ちょっと残念です.

その後: 濁点は解決したものの長音記号がNG

いろいろ,いじって濁点は解決しましたが,長音記号が出ません.いじっているのは,CUIのシステムのキーマップ,/etc/X11/xorg.conf.d/内の設定,KDEのキー設定など思いついたキーボード設定に関わるところ手当り次第です.

長音記号についてはシフトを押すと出ますが,基本的にタイピングは文章を考えながらやるので,長音記号のときにいちいちシフトを押すことを気にかけていては文章の作成の思考が止まってしまうので,非常に使いづらいとしか言いようがありません.

ちゃんとかな入力ができているManjaro AMD64のKDE Plasma Desktop + fcitx5-mozcの設定を真似ていますが,どうしたものかDebian ARM64 KDE Plasma Desktop + fcitx5-mozcではうまくいきません.

さらに後の注: 解決

/etc/X11/xorg.conf.d/00-keyboardというファイルを以下の中身のテキストファイルとして作ります

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "jp"
    Option "XkbModel" "jp106"
    Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

ただし,Waylandでは/etc/X11/xorg.conf.d/以下を参照しないようなので意味をなしません.