Debian」カテゴリーアーカイブ

システム

最近の投稿

  • 2023-01-24の雪
    10年ぶりの寒波ということで、1/24の朝から降り出した雪は、夕方には横殴りの雪となっていた。 […]
  • HomePod mini 16.3
    Home Pod mini の HomePod 16.3 が公開され、今までは HomePod […]
  • 低カリウム症
  • @TohruSaitoh-23/01/13
    01/13 […]
  • @TohruSaitoh-23/01/03
    01/03 RT @PharaohKJ: お前三国でとれるのか!タグまでついとるやんけ! […]

アーカイブ

カテゴリー

なんちゃってIPv6でトラブル

自宅では、IPv6 でインターネットにつながらない状態の癖に、IPv6 の運用実験として色々な設定をしている。

しかし、最近繋がらないページなどが時々出ていて、どうも IPv6 サイトが原因だと予測はしていた。

今回、病院に入っていて家に不在の時に限って、ママがゲームサイトに繋がらないと文句を言ってきた。今までは動いていたのだが、ゲームサイトにも IPv6 化が進んでいる中で、ゲームサービスが IPv6対応になったんだろうな。おかげで IPv4 しかつながらないネットワーク環境のくせに、スマホがインターネットに IPv6 で繋ごうとするのが原因。

自宅では、IPv6 対応のために、DHCPサーバで IPv6 アドレス配布の設定をしていた。しかしこれが誤解のもと。実は IPv6 アドレスの自動設定機能の radvd を動かしていて、この設定は動いていないと思っていたが、実は radvd の設定が生きていた。

このため、DHCPv6の設定を消しても、radvd が相変わらずスマホに IPv6 ルータ情報をアナウンスするため、IPv6 で外に繋がらない状態となっていた。

ということで、/etc/radvd.conf を別名で残しつつ、”sudo aptitude purge radvd” で radvd の機能を止めた。

wsl GUI がWindows10で利用可能に

Windows 10 の 22H2 が適用できるようになり、VcXsrvのような X11 サーバを起動しなくても、GUI の wsl が動かせるようになった。

KB5020030(「2022-11×64ベースシステム用Windows 10 Version 22H2の累積更新プログラム」)がインストールして、再起動などが終わらせておく。wsl が導入済みなら、PowerShell (管理者モード) で、wsl.exe –update を実行するだけ。wsl –version でバージョンが表示されるようになったら成功。

PS C:\WINDOWS\system32> wsl.exe --update
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム  はインストールされました。
PS C:\WINDOWS\system32> .\wsl.exe --version
WSL バージョン: 1.0.0.0
カーネル バージョン: 5.15.74.2
WSLg バージョン: 1.0.47
MSRDC バージョン: 1.2.3575
Direct3D バージョン: 1.606.4
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windowsバージョン: 10.0.19045.2311

LaTeX で 図入り文書を書く時によく使う簡単なエディタ tgif を使いたかったが、ISO8859-1 のフォントが使えずエラーがでたけど、xfonts-shinonome などを入れたら、無事に動くようになった。emacs なども動くし便利。

$ tgif
Fatal Error in OpenFont(): Cannot open the Default(Msg)Font
   '-*-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1'.
Tgif aborted.
$ sudo aptitude install xfonts-shinonome
以下の新規パッケージがインストールされます:

職場のWin10マシンはまだ使えず

うーむ、職場の Windows 10 は、相変わらず KB5020030 のアップデートが表示されない。”wsl –version” もエラーのまんまだな。Windows 11 にアップデートした方がいいのかな。

Node.js 18 大丈夫かな

以前、Raspberry-Pi に Node.js 18 系をインストールしたら、homebridge が動かなくなったので心配だったけど、今回は問題なく動いているみたい。

Linux 6.0がdebianに流れてきた

Linux 5.x のマイナーバージョン番号が大きすぎるという理由もあっての Linux 6.0 の登場だけど、Debian(bookworm/sid) にも linux-image-6.0.0-2 (6.0.3) が流れてきた。

Rust の導入も Linux 6.1 で行われる予定とのことで、大きな変更も少ないし、普通に aptitude safe-upgrade でインストールされた。(^^;

$ uname -a
Linux perrine 6.0.0-2-amd64 #1
  SMP PREEMPT_DYNAMIC Debian 6.0.3-1 (2022-10-21)
  x86_64 GNU/Linux

今までのメジャーバージョン番号の更新の際には、競合パッケージがでるから aptitude full-upgrade じゃないと導入できないのが普通。

hb-service upgrade-node で更新

Raspberry-Pi で動かしている homebridge だけど、node.js の更新は curl とか使ってたけど、hb-service でインストールできるんだ。便利。

$ sudo hb-service update-node

node.js もメジャーバージョンが、16 から 18 に以降したうえで、最新の node.js 19 が発表されたみたい。

smartd の警告

サーバから以下のようなメールが送られてくるようになってきた。

This message was generated by the smartd daemon running on:

   host name:  perrine
   DNS domain: tsaitoh.takefu.fukui.jp

The following warning/error was logged by the smartd daemon:

Device: /dev/sda [SAT], 5 Offline uncorrectable sectors.

syslog にも記録があるとのことなので確認すると、

Oct  5 22:32:04 perrine smartd[565]: Device: /dev/sda [SAT], 5 Currently unreadable (pending) sectors
Oct  5 22:32:04 perrine smartd[565]: Device: /dev/sda [SAT], 5 Offline uncorrectable sectors

やばいと思いながらも /dev/sda を確認すると、古いHDDをつなげて rsync などでバックアップをとるようにしているデバイスなので、ひとまず安心。

(2022/12/08) 警告メール止まったみたい

運用の中、バックアップ用のドライブだったけど、バックアップ処理の中で利用セクタから外れたのか、警告メールが来なくなったな。

fetchmail daemon が勝手に起動

自宅サーバでは、丹南ケーブルの自分宛の spam だらけのメールを捨てるために、夜中に fetchmail を起動するようにしている。

状況

しかし、最近 「別の fetchmail が動いているのでエラー」が発生している。確認をすると、自分の ID の fetchmail が daemon にて動いている。

fetchmail --nodetach --daemon 300

よくよく調べると login 時に、 “systemctl –user start fetchmail.service” にて起動される様子。

対応

システム全体の systemctl –user での起動は、/etc/systemd/user/default.target.wants にて管理されていて、以下のようなリンクが張られている。

fetchmail.service -> /usr/lib/systemd/user/fetchmail.service

ということで、以下のコマンドで勝手に起動される fetchmail を抑止する。

$ cd /etc/systemd/user/default.target.wants
$ sudo rm fetchmail.service

正しい systemd での設定方法

今回は、こういう力任せの方法をとったけど、こちらの資料を見ると、以下のやり方が正しい方法っぽいな。試しに、リンクを元に戻して下記コマンドを実行すると、リンクを消してくれていた。

$ sudo systemctl --global disable fetchmail.service

“~/.config/systemd/user/*” にユーザ独自にサービスを登録するのなら、”systemctl –user enable oooo.service” を実行する。
“/etc/systemd/user/default.target.wants” を変更するなら “systemctl –global enable(or disable) oooo.service” を実行する。

CAA レコードが未設定で dehydrated (Let’s Encrypt) が失敗

自宅ドメインの SSL 証明には、Let’s Encrypt (実体は dehydrated) を使っているけど、CERT の有効期限の確認の処理で警告がでてきて、月に1度実施の更新でエラーを吐いているみたい。

DNS に CAA レコードが無いと失敗する

更新を実行すると、以下の表示が出ている。

ERROR: Challenge is invalid! (returned: invalid) (result: ["type"] "http-01"
:
["error","detail"]      "CAA record for tsaitoh.net prevents issuance"

Let’s Encrypt が更新する際に、ドメイン名の CAA レコードを参照しているけど、CAA レコードが正しくないために、SSL 更新に失敗している。

DNS Certification Authority Authorization とは、ドメイン名の所有者が認証局に対して、自分のドメイン名の公開鍵証明書の発行を許可するかどうかを指定できるようにするインターネットセキュリティポリシーのしくみである。(Wikipedia)

CAAレコードに letsencrypt.org を登録

自宅ドメインは、Dynamic DNS に mydns.jp を使っているので、mydns.jp の設定画面の “DOMAIN INFO” の所で、
「@ CAA 0 issue “\000”」 となっていたので、下記の設定を追加する。

Hostname Type Content Target ID
@ CAA 0 issue “letsencrypt.org” mydnsXXXXX

この設定の後、nslookup では、下記のようなデータが取れるようになった。

$ nslookup -query=CAA tsaitoh.net
tsaitoh.net     rdata_257 = 0 issue "letsencrypt.org"

他の仕事関連のドメイン名も同様の症状が発生するようになるはずなので、mydns.jp 関連の他ドメインで同様設定を追加する。

Date::Manip::MD5 is deprecated…

メールの流量モニタに一定のメールがずっと流れている記録が残ってる。

状況

確認すると、munin-cron で実行される munin-graph で以下のエラーメッセージが出ている。

Date::Manip::DM5 is deprecated and will be removed
  from the Date::Manip package starting in version 7.00 at (eval 5) line 1.

Date::Manip::MD5 パッケージは、ver 7.0 から Date::Manip から非推奨になったみたい。グラフは正常に生成されているものの、警告メッセージが5分おきに送られるのはうざい。

munin-graph と munin-cgi-graph の “Date::Manip::DM5” に関係する部分は、こんな感じ。

((( /usr/share/munin/munin-graph )))
  :
BEGIN {
    # This is needed because Date::Manip has deprecated the functional
    # interface in >= 6.x. So, we force the use of the 5.x API.
    $Date::Manip::Backend = 'DM5';

    # Double line here to avoid spurious warnings about D::M::Backend being
    # used only once.
    $Date::Manip::Backend = 'DM5';
}
use Date::Manip;
  :
((( /usr/lib/munin/cgi/munin-cgi-graph )))
  :
use IO::Handle;
BEGIN {
 no warnings;
 $Date::Manip::Backend = 'DM5';
}
use Date::Manip;
  :

対応

こちらの記事を見ると、Bug Report の中で、BEGIN {} ブロックの中を消すパッチを提案しているので、ひとまず、この2か所のBEGIN {} の範囲をコメントアウトで消すと、問題なく動いている。バグレポートも出ているので、近いうちに修正されるだろう。

usrmerge(usr-is-merged)でトラブル

いつものように “aptitude upgrade ; aptitude safe-upgrade”を実行したら、”usr-is-merged” パッケージをインストールしようとして、インストールの前処理でエラーが発生して upgrade が途中で止まってしまう。

状況と対応

関係のなさそうな他の無難なパッケージを更新し、usr-is-merged を入れようとする根源を探したら、”init-system-helper” みたい。でもこのままでは更新を継続できないので、aptitude full-upgradeを実行する。すると、“usr-is-merged” ではなく “usrmerge” パッケージをインストールすることになって、普通に更新が終わる。

# “aptitude install usrmerge” でも解消できるはず。

usrmerge とは

unix では、もともと /bin (システム必須の binary) , /usr/bin (システム運用上便利なユーザ向け binary) , /usr/local/bin (ユーザが個人的にインストールしたbinary) という使い分けをしてきたけど、最近ではパッケージインストーラが管理してくれるなか、/bin と /usr/bin の区別がほとんどなくなってきている。逆に /usr/bin 配下に binary がインストールされれば、/usr を read-only mount にできたりと利点も多いので、他の /sbin , /lib* も同様に…。ということで、usrmerge パッケージをインストールすることで /bin -> /usr/bin といったシンボリックリンクに切り替えてくれる。

# でも、そうなってくると /usr って、”ユーザ向け” という意味じゃなくなってくるよな。

usrmerge の結果として root ディレクトリを確認すると、/bin -> /usr/bin, /lib -> /usr/lib, …といったリンクが生成されていた。

$ ls -al /
lrwxrwxrwx   1 root root        7  9月 23 12:09 bin -> usr/bin
 :
lrwxrwxrwx   1 root root        7  9月 23 12:09 lib -> usr/lib
lrwxrwxrwx   1 root root        9  9月 23 12:09 lib32 -> usr/lib32
lrwxrwxrwx   1 root root        9  9月 23 12:09 lib64 -> usr/lib64
lrwxrwxrwx   1 root root       10  9月 23 12:09 libx32 -> usr/libx32
 :
lrwxrwxrwx   1 root root        8  9月 23 12:09 sbin -> usr/sbin

Google 検索

My Google   Yahoo

Microsoft

ファンサイト