Month: 5月 2018

Windows10標準のsshの鍵はレジストリに保存されているらしい

[janog:14329] より.

Windows 10標準のssh-keygenで鍵を作ると標準で %HOMEPATH%/.ssh で鍵が管理されるようだけどここから消した鍵が再起動後も使えてしまうという話からはじまっている.

HKCU\Software\OpenSSH\Agent\Keys 以下に保存されているらしい.

以下のscriptでレジストリ内の鍵が取り出せるよう.

今環境がないけどなんか嵌りそうだし今度試してみよう.

スワップファイルを作ってお手軽にスワップを増やす

RAMを大量に必要とするプログラムがあって遅くてもいいから一時的にスワップを増やしてやり過ごすことがあります.また,RAMの少ないマシンでディスクの構成をいじるのが面倒なときにもスワップファイルが使えます.ということで今回RAMが2GBでそこそこあるけど偶に使い切ってしまう(主にchromium!)のでスワップファイルを用意してみました.

スワップファイルを作成します.今回は/var/tmp/swap.imgというファイルで2GB用意しました.

$ sudo install -o root -g root -m 0600 /dev/null /var/tmp/swap.img
$ sudo dd if=/dev/zero of=/var/tmp/swap.img bs=1M count=2048
$ sudo mkswap /var/tmp/swap.img

とりあえずスワップファイルをアドホックに有効にします.

$ sudo swapon /var/tmp/swap.img 

.スワップが増えています.

$ swapon -s
Filename                                Type            Size    Used    Priority
/dev/zram0                              partition       254688  80024   5
/dev/zram1                              partition       254688  80016   5
/dev/zram2                              partition       254688  79940   5
/dev/zram3                              partition       254688  79928   5
/var/tmp/swap.img                       file            2097148 0       -1

一時的に必要な場合はこれで良いのですが,恒久的に利用したい場合はこのままでは再起動後には有効になりません./etc/fstabに設定を書いて起動時に有効になるようにします.

$ sudo vi /etc/fstab
$ grep -i swap.img /etc/fstab 
/var/tmp/swap.img     none    swap    sw      0       0

一旦swapoffでスワップを無効にしてswapon -aでfatabの設定が有効か試します.swapon -afstabのスワップの設定を全て有効にします.

$ sudo swapoff /var/tmp/swap.img
$ sudo swapon -a
$ swapon -s
Filename                                Type            Size    Used    Priority
/dev/zram0                              partition       254688  80020   5
/dev/zram1                              partition       254688  80016   5
/dev/zram2                              partition       254688  79940   5
/dev/zram3                              partition       254688  79928   5
/var/tmp/swap.img                       file            2097148 0       -1

念のため再起動してスワップファイルが有効かも試せばOKです :)

スワップファイルの利用はお手軽ですが,スワップパーティーションに比べると性能は少し落ちるので可能ならスワップパーティーションを利用したほうが良いです.RAMが増設できるならそれが一番です.

環境

$ dpkg-query -W mount
mount   2.27.1-6ubuntu3.6
$ lsb_release -d
Description:    Ubuntu 16.04.4 LTS
$ uname -m
aarch64

MACアドレスをランダムに変更してくれるGNU MAC Changerを試してみる

簡単にMACアドレスをランダムに偽装できる GNU MAC Changer を試してみました.

導入

$ sudo apt install macchanger

導入時にネットワークインターフェイスが有効になるときにmacchangerを有効にするかどうかを聞いてきます.

 ┌────────────────────────┤ Configuring macchanger ├─────────────────────────┐
 │                                                                           │ 
 │ Please specify whether macchanger should be set up to run automatically   │ 
 │ every time a network device is brought up or down. This gives a new MAC   │ 
 │ address whenever you attach an ethernet cable or reenable wifi.           │ 
 │                                                                           │ 
 │ Change MAC automatically?                                                 │ 
 │                                                                           │ 
 │                    <Yes>                       <No>                       │ 
 │                                                                           │ 
 └───────────────────────────────────────────────────────────────────────────┘ 
                                                                               

20180529_21:05:46-14602

あとで変更したい場合は sudo dpkg-reconfigure macchanger で再度設定できます.

help

$ macchanger --help
GNU MAC Changer
Usage: macchanger [options] device

  -h,  --help                   Print this help
  -V,  --version                Print version and exit
  -s,  --show                   Print the MAC address and exit
  -e,  --ending                 Don't change the vendor bytes
  -a,  --another                Set random vendor MAC of the same kind
  -A                            Set random vendor MAC of any kind
  -p,  --permanent              Reset to original, permanent hardware MAC
  -r,  --random                 Set fully random MAC
  -l,  --list[=keyword]         Print known vendors
  -b,  --bia                    Pretend to be a burned-in-address
  -m,  --mac=XX:XX:XX:XX:XX:XX
       --mac XX:XX:XX:XX:XX:XX  Set the MAC XX:XX:XX:XX:XX:XX

Report bugs to https://github.com/alobbs/macchanger/issues

現在のMACアドレス確認

wls1のMACアドレスは00:22:fa:33:45:6aになっています.

$ ip link show wls1 
2: wls1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:22:fa:33:45:6a brd ff:ff:ff:ff:ff:ff

ネットワークインターフェイスをダウン

upのままだとエラーとなります.([ERROR] Could not change MAC: interface up or insufficient permissions: Operation not permitted)

$ sudo ip link set dev wls1 down

MACアドレスをランダムに変更

$ sudo macchanger -r wls1
Current MAC:   de:ed:be:ef:01:23 (unknown)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC:       7a:a9:98:47:10:1a (unknown)

macアドレスを元に戻す

$ sudo macchanger -p wls1
Current MAC:   78:a9:98:e1:2e:f8 (unknown)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC:       00:22:fa:33:45:6a (Intel Corporate)

ベンダーIDは保持してランダムに変更

このオプションは使い勝手が良さそうですね.

$ sudo macchanger -e wls1
Current MAC:   00:22:fa:33:45:6a (Intel Corporate)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC:       00:22:fa:db:b9:ed (Intel Corporate)

手動設定

これはip link set dev wls1 de:ed:be:ef:01:23ifconfig wls1 hw ether de:ed:be:ef:01:23と同じなのであまりmacchangerを使う意味ないですね.

$ sudo macchanger --mac=de:ed:be:ef:01:23 wls1
Current MAC:   00:22:fa:33:45:6a (Intel Corporate)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC:       de:ed:be:ef:01:23 (unknown)

ネットワークインターフェイスをアップ

upして何時ものように利用します.

$ sudo ip link set dev wls1 up

自動起動時の動作

/etc/network/if-pre-up.d/macchanger, /etc/network/if-post-down.d/macchangerで設定しているようです.この中を見ると,以下のように-e optionで実行されるのでベンダーIDは維持した状態でランダムに設定されるようです.

/usr/bin/{package} -e IFACE >> $LOGFILE 2>&1

ログファイルは/var/log/macchanger.logに保存されます.

環境

$ neofetch 
       _,met$$$$$gg.          mk@x200 
    ,g$$$$$$$$$$$$$$$P.       ------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux unstable (sid) x86_64 
 ,$$P'              `$$$.     Model: 74574PJ ThinkPad X200 
',$$P       ,ggs.     `$$b:   Kernel: 4.16.0-1-amd64 
`d$$'     ,$P"'   .    $$$    Uptime: 2 days, 13 hours, 17 minutes 
 $$P      d$'     ,    $$P    Packages: 5718 
 $$:      $$.   -    ,d$$'    Shell: bash 4.4.19 
 $$;      Y$b._   _,d$P'      Resolution: 1280x800 
 Y$$.    `.`"Y$$$$P"'         WM: awesome 
 `$$b      "-.__              Terminal: sakura 
  `Y$$                        Terminal Font: Fira Code 11 
   `Y$$.                      CPU: Intel Core 2 Duo P8400 (2) @ 2.267GHz 
     `$$b.                    GPU: Intel® GM45 Express Chipset 
       `Y$$b.                 Memory: 6579MiB / 7871MiB 
          `"Y$b._ 
              `"""                                    

$ dpkg-query -W macchanger
macchanger      1.7.0-5.3+b1

wgetコマンドでCMSサイトを静的html化

CMSのサイトをもう更新しない,でもアーカイブとして残したいという場合CMSの機能は必要なくなります.メンテナンスコストやセキュリティの面からも動的じゃなく静的にしたほうが良いです.
ということでwgetコマンドを使って静的html化を試してみました.

$ wget --mirror --page-requisites --html-extension --convert-links http://example.com/

基本的にこれだけでOKでした.

  • –mirror

    • サイトのミラーに適したオプションです.再帰的な取得などを行います.次のオプションと同等です.-r -N -l inf --no-remove-listing
  • –page-requisites

    • ページに必要な画像やスタイルシートなどのコンテンツも取得します.
  • –html-extension

    • 取得したhtmlコンテンツの拡張子を.htmlに変換します.
  • –convert-links

    • 取得したコンテンツをダンロードしたコンテンツを参照するように書き換えます.例えばfoor/doc.htmlから/bar/img.gifを参照している場合 doc.html のリンクを../bar/img.gifと書き換えます.
  • http://example.com/

    • 取得したいsiteのurlです.

入手したアーカイブは静的htmlなので適当な場所に置いてアクセスすればOK.確認時は旧siteのコンテンツを見に行ったりしないように確認するマシンのhostsに以下のような細工をしました.

$ grep example.com /etc/hosts
127.0.0.1       example.com

大丈夫そうでしたが,検索ボックスはCMSの機能を使っているので動かなくなりました.検索ボックス自体を消してしまってもいいと思うのですが,今回はDuckDuckGoのものに変更してみました.これについては次のエントリにて.

今回試したCMSはImpress Pageです.参考にしたsiteではWordPressをアーカイブしていました.他のCMSでも応用が効きそうです.

参考URL

 

DuckDuckGoの検索ボックスを利用する

もう更新しないCMSを

$ wget --spider --recursive --no-directories --no-verbose ${SITEURL}

のような感じでhtml化したのですが,検索ボックスは動的なままです.検索エンジンの検索ボックスに入れ替えると良いのではとDuckDuckGoのものを探してみました.

例えばこれでこのblogの検索が出来るようになります.

この辺りを見てカスタマイズするとさらにいいかもしれません.

Googleが一般的ですがDuckDuckGoはアカウントも必要ないしお手軽でいいですね.

関連

 

microSDスロットの固定機構の壊れたRaspberry Pi 2 Bのバネを取り外して普通に使えるようにする

SANY0011

Raspberry Pi 2 Bを使っているのですが,以前からmicroSDソケットの固定機構が壊れてしまっています.セロハンテープで留めて更にケースに入れて動きにくくしているのですがたまにずれるようで起動中にストレージを見失ってしまうことがあります.(そして数回に一回は要fsckに)

ちょっと面倒なので対処したいなと思いながら放置していたのですが,また今日も起こったので調べてみることに.多分microSDを押し返すピンかバネを無くしてしまえたら解決しそうな気がします.でも内部が見えないのでどこにピンやバネがあるのかよくわからないです.

SANY0015

きっと先駆者が居るだろうと検索するといくつかそれらしいページを見つけました.

ソケットを交換するアプローチ

ソケットの中のスプリングを取り出してしまうアプローチ

後者のスプリングを取り出すのが簡単そうだし,最悪失敗しても前者のソケットを交換すればいいかなと試してみました.スプリングの場所が分かったのですが現物を見てもよくわからないです.光を当てながら少し斜めから見るとバネが見えました.バネの横の部分を一旦開けて中を確認する人も居るようです.

SANY0019

ここで安全ピンのピン先でこじるようにと思いましたがちょっと安全ピンが大きいせいかソケットが膨らむのでジャンパワイヤのオスを使いました.

ソケットのスプリングの上側からこじるとプラスチックのラッチが外れました.一旦ラッチを取り出して更にその奥をこじるとスプリングの反応がありました.スプリングを内側に倒してから引っ張り上げるようにして取り外せました.

SANY0020

この状態でmicroSDを差し込むとmicroSDは押し返されなくなりました!これで最近のRaspberry Pi Zero(多分3B/3B+も)と同じような使い勝手になったと思います.

SANY0022

今回はRaspberry Pi 2 Bでしたが,Raspberry Pi B+/Raspbery Pi A+もロック機構が壊れたら同様の機構なので同じように解決できると思います.

今だと最新のRaspberry Pi 3 B+を買う人が多いでしょうが.

Androidの容量が少なくなって困る

Android端末の容量が少なくてGoogle Playがアプリを更新できないとエラーを出ています.確認すると「その他のファイル」が妙に容量を食っている.見ると「mhenv」というフォルダが殆どを占めています.
開発者も土が有効な状態でadb shellで中に入って見てみると実体は/storage/emulated/legacy/mhenv/ここで12GB以上です.

$ adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
shell@g2:/ $ cd /storage/emulated/legacy
$ du -ms mhenv
12467 mhenv

中を見ると「YMO!」(小説家になろうなどのオンライン小説リーダ)のデータが12GB以上食っている!
テキストデータだけじゃないの?と中を見るとこんな感じで更新時に毎回バックアップを取っているような感じです.

$ ls -l 猫正宗 
-rw-rw---- root sdcard_r 988721 2018-05-24 13:14 隣の部屋の女騎士は、異世界人で飲み友達_n2059ek.txt
-rw-rw---- root sdcard_r 288071 2017-12-16 14:12 隣の部屋の女騎士は、異世界人で飲み友達_n2059ek_rev20171217001107.txt
-rw-rw---- root sdcard_r 325287 2017-12-23 23:52 隣の部屋の女騎士は、異世界人で飲み友達_n2059ek_rev20171226002611.txt
-rw-rw---- root sdcard_r 341974 2017-12-26 00:26 隣の部屋の女騎士は、異世界人で飲み友達_n2059ek_rev20171228101117.txt
:

恐らく「${作者名}/{タイトル}${小説コード}.txt」が最新で,「${作者名}/{タイトル}${小説コード}_rev${年月日??????}.txt」が古いもの.

念の為バックアップを取って,findで……無かったorz

$ find . -name "*_rev??????????.txt" -ls

ディレクトリ階層も決まっているので,こんな感じでlsで確認してから消してみました.12.5GB近かったのが0.5GB以下になりました.

$ ls */*_rev??????????????.txt 
$ rm */*_rev??????????????.txt
$ du -ms . 
493 .

アプリケーション側の動作も問題無さそうです.

ちなみにこの後Androidアプリケーション側の設定を確認すると,「データ保存先変更」で端末によってはSD Cardに移動できそうです.手元の端末では変更不可でした.
それと,「改定時ファイル保存設定」と「古い稿を残す基準を設定」といものがあり,この設定だけで良かった気がします…….

環境

Devuan jessieをasciiにdist-upgradeしてみた

screenshot

Devuan asciiもRelease Candidateが出てそろそろ正式版になりそうです.てことで手元のDevuan jessie i386環境をascii環境にdist-upgradeしてみました.

DevuanはDebianからフォークした脱Systemdなディストリビューションです.コードネームはjessieはDebianと同じですがその次のバージョンから独自になっていて,Devuan asciiはDebian stretch相当になります.

アップグレードのドキュメントは以下にありました.

うーんシンプル.念の為Debianの文章も参考にします.

これらの文章と違うところはsources.list編集時にapt edit-sourcesコマンドを使ったくらいです.今回はこんな感じに.

diff --git a/apt/sources.list b/apt/sources.list
index 142945f..afaa14d 100644
--- a/apt/sources.list
+++ b/apt/sources.list
@@ -1,16 +1,16 @@
-# deb http://jp.mirror.devuan.org/merged/ jessie main
+# deb http://jp.mirror.devuan.org/merged/ ascii main
 
-deb http://jp.mirror.devuan.org/merged/ jessie main non-free contrib
-deb-src http://jp.mirror.devuan.org/merged/ jessie main non-free contrib
+deb http://jp.mirror.devuan.org/merged/ ascii main non-free contrib
+deb-src http://jp.mirror.devuan.org/merged/ ascii main non-free contrib
 
-# jessie-security, previously known as 'volatile'
-deb http://jp.mirror.devuan.org/merged/ jessie-security main contrib non-free
-deb-src http://jp.mirror.devuan.org/merged/ jessie-security main contrib non-free
+# ascii-security, previously known as 'volatile'
+deb http://jp.mirror.devuan.org/merged/ ascii-security main contrib non-free
+deb-src http://jp.mirror.devuan.org/merged/ ascii-security main contrib non-free
 
-# jessie-updates, previously known as 'volatile'
-deb http://jp.mirror.devuan.org/merged/ jessie-updates main contrib non-free
-deb-src http://jp.mirror.devuan.org/merged/ jessie-updates main contrib non-free
+# ascii-updates, previously known as 'volatile'
+deb http://jp.mirror.devuan.org/merged/ ascii-updates main contrib non-free
+deb-src http://jp.mirror.devuan.org/merged/ ascii-updates main contrib non-free
 
-# jessie-backports, previously on backports.debian.org
-deb http://jp.mirror.devuan.org/merged/ jessie-backports main contrib non-free
-deb-src http://jp.mirror.devuan.org/merged/ jessie-backports main contrib non-free
+# ascii-backports, previously on backports.debian.org
+deb http://jp.mirror.devuan.org/merged/ ascii-backports main contrib non-free
+deb-src http://jp.mirror.devuan.org/merged/ ascii-backports main contrib non-free

特に問題なく処理は進んでいましたが,apt dist-upgradeでエラーが発生しました.bluemanで以下のようなエラーとなりました.

Setting up blueman (2.0.4-1) ...
Reloading system message bus config...Error org.freedesktop.DBus.Error.FileNotFound: Failed to open "/etc/dbus-1/system.conf": No such file or directory
invoke-rc.d: initscript dbus, action "reload" failed.
dpkg: error processing package blueman (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 blueman
E: Sub-process /usr/bin/dpkg returned an error code (1)

一旦削除して再起動後導入し直したら導入に成功しました.

$ sudo apt remove blueman
$ sudo reboot
$ sudo apt install blueman

ということでシンプルなシステムだったせいかさっくりとdist-upgradeに成功しました :)

<追記>
うまく行かなかった人も居るよう.

</追記>

terminalで動作するMastodon clientのnanotodonを試してみた

mikutodonをDebian jessie armhfに入れてみた.Makefileを修正したら動いたけど文字化けする.ちなみにDebian sid amd64では問題なく動作した.

$ cat /etc/debian_version 
8.10
$ uname -m
armv7l

ライブラリ等導入

$ sudo apt install build-essential libcurl4-openssl-dev libjson-c-dev libncurses-dev libncursesw5
$ dpkg-query -W build-essential libcurl4-openssl-dev libjson-c-dev libncurses-dev libncursesw5
build-essential 11.7
libcurl4-openssl-dev:armhf      7.38.0-4+deb8u11
libjson-c-dev:armhf     0.11-4
libncurses-dev  
libncursesw5:armhf      5.9+20140913-1+deb8u2

<追記>
入ってない場合gitも必要ですね $ sudo apt install git
</追記>

source入手

$ git clone https://github.com/taka-tuos/nanotodon

make

コケた

$ cd nanotodon
$ make
make -r nanotodon
make[1]: Entering directory '/home/chip/src/nanotodon'
gcc -c -g -o nanotodon.o nanotodon.c
nanotodon.c: In function 'stream_event_notify':
nanotodon.c:110:12: warning: initialization discards 'const' qualifier from pointer target type
  char *t = json_object_get_string(notify_type);
            ^
nanotodon.c: At top level:
nanotodon.c:138:6: warning: conflicting types for 'stream_event_update'
 void stream_event_update(struct json_object *jobj_from_string)
      ^
nanotodon.c:128:3: note: previous implicit declaration of 'stream_event_update' was here
   stream_event_update(status);
   ^
nanotodon.c: In function 'stream_event_update':
nanotodon.c:180:14: warning: initialization discards 'const' qualifier from pointer target type
  char *src = json_object_get_string(content);
              ^
nanotodon.c:226:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
   for (int i = 0; i < json_object_array_length(media_attachments); ++i) {
   ^
nanotodon.c:226:3: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
nanotodon.c:245:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
   for(int i = 0; i < term_w - (l + 4); i++) waddstr(scr, " ");
   ^
nanotodon.c: At top level:
nanotodon.c:589:6: warning: conflicting types for 'do_htl'
 void do_htl()
      ^
nanotodon.c:303:2: note: previous implicit declaration of 'do_htl' was here
  do_htl();
  ^
nanotodon.c: In function 'do_htl':
nanotodon.c:618:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
   for (int i = json_object_array_length(jobj_from_string) - 1; i >= 0; i--) {
   ^
nanotodon.c: In function 'main':
nanotodon.c:751:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
  for(int i = 0; i < term_w; i++) mvaddch(5, i, '-');
  ^
nanotodon.c:777:4: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
    for(int i = 0; i < term_w; i++) mvaddch(5, i, '-');
    ^
nanotodon.c:802:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
   for(int i = 0; i < txt.stringlen; i++) {
   ^
Makefile.in:21: recipe for target 'nanotodon.o' failed
make[1]: *** [nanotodon.o] Error 1
make[1]: Leaving directory '/home/chip/src/nanotodon'
Makefile.in:11: recipe for target 'default' failed
make: *** [default] Error 2

Makefileを修正したら通った

diff --git a/Makefile b/Makefile
index ac1828f..a35ee6a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 TARGET         = nanotodon
 OBJS_TARGET    = nanotodon.o
 
-CFLAGS = -g
+CFLAGS = -g -std=gnu99
 LDFLAGS = 
 LIBS = -lc -lm -lcurl -ljson-c -lncursesw -lpthread
 

文字化け><

20180521_20:05:50-30304

Debian sid amd64ではMakefileの書き換えも必要なく文字化けもしない.

20180521_20:05:01-31796

$ cat /etc/debian_version 
buster/sid
$ uname -m
x86_64
$ dpkg-query -W build-essential libcurl4-openssl-dev libjson-c-dev libncurses-dev libncursesw5
build-essential 12.5
libcurl4-openssl-dev:amd64      7.60.0-1
libjson-c-dev:amd64     0.12.1-1.3
libncurses-dev:amd64    6.1+20180210-3
libncursesw5:amd64      6.1+20180210-3

system fontが汎用CJKになっていた

なんかPCを再起動してからフォントが変になっていました.中国語混じりのような汎用CJKらしきフォントになっています.今のフォントを調べるのは何だろうと探すと以下のページを見つけました.

fc-matchコマンドで確認するとWenQuanYi Zen Heiというフォントが設定されている状態のようです.パッケージを確認するとfonts-wqy-microheiのようです.おまけにfonts-wqy-zenheiという中国語フォントも入っていたのでこれらを削除しました.(fonts-notoも入っているのでもし中国語を表示する必要が出ても問題ないはず)

$ fc-match :lang=ja
wqy-zenhei.ttc: "WenQuanYi Zen Hei" "Regular"
$ apt-cache search WenQuanYi
fonts-wqy-microhei - Sans-serif style CJK font derived from Droid
fonts-wqy-zenhei - "WenQuanYi Zen Hei" A Hei-Ti Style (sans-serif) Chinese font
xfonts-wqy - WenQuanYi Bitmap Song CJK font for X
$ dpkg -l|grep -i  fonts-wqy
ii  fonts-wqy-microhei                            0.2.0-beta-3                            all          Sans-serif style CJK font derived from Droid
ii  fonts-wqy-zenhei                              0.9.45-7                                all          "WenQuanYi Zen Hei" A Hei-Ti Style (sans-serif) Chinese font
$ sudo apt purge fonts-wqy-microhei fonts-wqy-zenhei

dgm3を再起動してログインし直すと以前設定したフォントになっていました.

$ fc-match 
umeplus-p-gothic.ttf: "UmePlus P Gothic" "Regular"

logを見るとfonts-wqy-microheiの0.2.0-beta-3 で0.2.0-beta-2をアップデートしたものが見つかりました.恐らくこのタイミングで置き換わったのではないかと思います.それ以前の1年ほどのログの中にはなかったのでそれ以前に導入されたパッケージのようです.

中を見るとこのような設定が.

$ find fonts-wqy-microhei_0.2.0-beta-3_all -type f -print | grep etc
fonts-wqy-microhei_0.2.0-beta-3_all/etc/fonts/conf.avail/65-wqy-microhei.conf

以下を見ると標準より大きい数字なので手動で設定したフォントより優先度が高いので置き換わったのでしょうか?だとすると中途半端に設定をいじっていた自分のせいのようですorz

  1. 各日本語フォントパッケージは、/usr/share/fonts/truetype/

ttf-japanese-mincho.ttf または ttf-japanese-gothic.ttf をalternativesパスとして登録する。alternatives優先順位は次のように 規定する。

100より上: サードパーティまたはユーザ作成のフォント(IPA フォントなどはこのカテゴリに入る)
60: vl-gothic(標準)
50: ttf-sazanami-mincho, ttf-sazanami-gothic
20: ttf-kochi-mincho, ttf-kochi-gothic
20より下: 日本語を字形に含むがunified領域で中国語字形が使われているなど
日本語の表現には使いにくいフォント

とりあえず使わないであろうフォントが削除できてディスクスペースが開いたので良かったとしましょう.

環境

$ uname -m
x86_64
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ dpkg-query -W fontconfig
fontconfig      2.13.0-5