おうちサーバを24.04に

 そろそろいいかと思っておうちサーバをxubuntu 24.04 LTSにアップグレード。
 毎度のことながら、do-release-upgradeにも-kオプションがあればいいのに。

apacheが起動していない

 今回もapacheの不具合。
doroyamada.hatenablog.jp

 /etc/apache2/mods-enabled/php8.1.load を/etc/apache2/mods-enabled/php8.3.load にリネームして、LoadModule php_module /usr/lib/apache2/modules/libphp8.1.so を LoadModule php_module /usr/lib/apache2/modules/libphp8.3.soと書き換えて、sudo service apaches start。

 こちらも参考になった。というか、前回のことをすっかり忘れていて、このページを読んでいるうちに思い出した次第。
pokonote.com

 でもこれってアップグレードソフトの不具合放置やんな。

rm-mini3のスクリプトが動いていない

 外出するとテレビの電源を切るようにしているが、それが動いていない。ログを見ると、不在(固定アドレスにしているスマートフォンへのpingを打つ)は感知している。ということはその先でのエラーのはず。そこで、broadlink_cliコマンドをターミナルから打ってみた。

Traceback (most recent call last):
  File "/var/www/scripts/smarthome/python-broadlink/cli/broadlink_cli", line 7, in <module>
    import broadlink
ModuleNotFoundError: No module named 'broadlink'

  検索してみる。再インストールしたらよさそう。
tsaitoh.net

 やってみた。

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

 調べてみたら、王道の解決策は仮想環境(といっても仮想マシンを作るのではなく、別ディレクトリにするだけ)。でも今回は強引な方法を試してみる。
pyopyopyo.hatenablog.com

Defaulting to user installation because normal site-packages is not writeable
Collecting broadlink
  Downloading broadlink-0.19.0-py3-none-any.whl.metadata (549 bytes)
Requirement already satisfied: cryptography>=3.2 in /usr/lib/python3/dist-packages (from broadlink) (41.0.7)
Downloading broadlink-0.19.0-py3-none-any.whl (25 kB)
Installing collected packages: broadlink
Successfully installed broadlink-0.19.0

 できた。スクリプトも動くようになった。

telnetログインができない

 /etc/inetd.confのコメントアウトを外して完了。sshだとリブートが失敗しがちなのでtelnetログインも残してある。

#:STANDARD: These are standard services.
#<off># 
telnet	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/telnetd

 参考になったページ。
financial-it-engineer.hatenablog.com

 ううむ、loginはアルファベットのままなのに、パスワードのプロンプトがカタカナになってしもうた。

 これを元に戻すには環境変数LANGをCにしてデーモンを立ち上げるようにしたらよさそう。

 /usr/lib/systemd/system/inetd.serviceの[Service]にEnvironment = LANG=Cを追加。

[Unit]
Description=Internet superserver
Documentation=man:inetd(8)
After=network-online.target
Wants=network-online.target
ConditionPathExists=/etc/inetd.conf

[Service]
Environment = LANG=C
Type=notify
ExecStart=/usr/sbin/inetd
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
WatchdogSec=5
KillMode=process

[Install]
WantedBy=multi-user.target

 サービスをリスタートしようとするとデーモンをリロードしろというのでそのとおり実施して、再度サービスをリスタート。パスワードプロンプトも英語になった。

 参考になったページ。
qiita.com

nanoのsyntax highlightのディレクトリ変更

 これまで/usr/local/share/nano にあったのが/usr/share/nano に変更されていて、「ファイルがあらへんがな」と怒られた。/etc/nanorcを修正して対応。