Firefox 102 esrの起動が非常に遅いことへの対応 [Debian]
ウィンドウが表示されるまでに 25〜30 秒程度を要する。
その内に改善されると思っていたが、Firefox 102.8.0esr でも状況は変わらない。
・アドオンを無効化しても改善されない。
・firefox 91.13.0esr では発生しない。
(補足)
・~/.xinitrc から起動した FVWM 2.6.5 上で発生する。
FVWM は fvwm で起動している。
・~/.xinitrc から起動した MATE (mate-desktop 1.24.1-2) 上では発生しない。
MATE は mate-session で起動している。
・CentOS 7.9 では発生しない。
・~/.xsession から起動した FVWM 2.6.5 上では発生しない。
.xsession は .xinitrc のコピー、.xinitrc は .xinitrc-private に変更
2. 原因
.xinitrc で FVWM を指定した場合に D-Bus の設定が不足していたためと思われる。
(詳細は不明)
3. 対処方法
下記のいずれかの手順を実施する。
(1) ~/.xinitrc を編集する。
FVWM を使用する場合の X の起動処理に下記の手順を追加する。
# set D-Bus
# - setting for Firefox 102 esr or later
. /etc/X11/Xsession.d/20dbus_xdg-runtime
(2) ~/.xsession を使用する。
・~/.xsession を ~/.xinitrc のコピーとして作成する。
・~/.xinitrc を ~/.xinitrc-private に変更する。
clamav-daemon.serviceの停止処理に想定外の時間を要することへの対応 [Debian]
・clamav-daemon 0.103.3+dfsg-0+deb11u1 (on Debian 11)
1. 発生事象
clamav-daemon.service の停止処理に想定外の時間を要する。
・shutdown 時に、度々発生する。
・90 秒(systemd のタイムアウトのデフォルト値) の待ち時間が発生する。
・clamdscan が実行中か否かに関係なく発生する。
(補足)
・Debian 10 (clamav-daemon 0.103.3+dfsg-0+deb10u1) でも同様の問題が発生する。
・CentOS 7 (clamd-0.103.3-5.el7.x86_64) では発生しない。
2. 対処方法
clamav-daemon.service の停止時のタイムアウト時間を短縮する。
このため、/lib/systemd/system/clamav-daemon.service を編集する。
# diff clamav-daemon.service clamav-daemon.service.org 14d13 < TimeoutStopSec=30
・[Service] 欄の TimeoutStopSec の設定値を変更する。
・停止処理でのタイムアウトまでの時間が変更される。
Debian 11のカーネルのバージョンアップ [Debian]
(3.16.0-4-686-pae → 5.10.0-8-686-pae)
1. 実施した理由
カーネルのバージョンが Debian 10.10 と同じことに気付き、確認してみると、カーネルのバージョンアップが行われていなかった。
更新パッケージの適用を定期的に行っているが、何故かカーネルは古いバージョンのままであった。
・Debian 10.10 において、このような状況であった。
・以前は、カーネルのバージョンアップも問題なくできていた。
2. 得られた効果
今回のカーネルのバージョンアップにより、下記の問題が解決できた。
・iptables 1.8.7-1 の起動エラー … (注1)
・apache2 2.4.48 の起動エラー … (注1)
・e2scrub_reap.service (e2fsprogs 1.46.2-2) の起動エラー … (注2)
(注1)
cf. https://dan-project.blog.ss-blog.jp/2021-09-08
(注2)
cf. https://dan-project.blog.ss-blog.jp/2021-09-10
3. 実施手順
今回実施した手順は、以下の通りである。
(1) カーネルのバージョンアップ
[パッケージの更新] # apt-get install linux-image-5.10.0-8-686-pae-unsigned [システムの再起動] # shutdown -r now
(2) apahce のバージョンアップ
# apt-get install libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap # apt-get install apache2 apache2-bin apache2-data apache2-utils
(3) iptables のバージョンアップ
# apt-get install iptables libiptc0 libxtables12
(4) 古いカーネル、不要なパッケージの削除
# dpkg --purge linux-image-3.16.0-4-686-pae # apt-get clean # apt-get autoclean # apt-get autoremove
(5) apparmor の無効化
[サービスの停止] # systemctl stop apparmor # systemctl disable apparmor [システムの再起動] # shutdown -r now [パッケージの削除] … パッケージを削除する場合 # dpkg --purge apparmor
Debian 11への追加対応 [Debian]
これで、アップグレード前の Debian 10.10 と同程度に使用できる状態となったと思われる。
1. 追加対応
1-1. ブート時の e2scrub_reap.service のエラー
(1) 発生事象
(a) エラーメッセージ
Failed to Start Remove Stale Online ext4 Metadata Check Snapshots. see 'systemctl status e2scrub_reap.service' for details.
(b) ブート後の当該サービスの状態
# systemctl status e2scrub_reap.service * e2scrub_reap.service - Remove Stale Online ext4 Metadata Check Snapshots Loaded: loaded (/lib/systemd/system/e2scrub_reap.service; enabled; \ vendor preset: enabled) Active: failed (Result: exit-code) ... Docs: man:e2scrub_all(8) Process: 833 ExecStart=/sbin/e2scrub_all -A -r (code=exited, \ status=218/CAPABILITIES) Main PID: 833 (code=exited, status=218/CAPABILITIES) ... # systemctl is-enabled e2scrub_reap.service enabled
(c) ブート後のサービスの再起動の結果
# systemctl restart e2scrub_reap.service Job for e2scrub_reap.service failed because the control process exited \ with error code. See "systemctl status e2scrub_reap.service" and "journalctl -xe" for \ details.
(2) 対処方法
取り敢えず、当該サービスの自動起動を無効化する。
# systemctl stop e2scrub_reap.service # systemctl disable e2scrub_reap.service
1-2. journald の永続的なジャーナル機能の有効化
(1) 発生事象
journald の永続的なジャーナル機能が有効となる。
(ディスク上の /var/log/journal/ への出力となる。)
(2) 対処方法
無効化するには、下記の手順により、/var/log/journal/ を削除する。
(a) サービスの停止
# systemctl stop systemd-journald.service # systemctl stop systemd-journald.socket
(b) ディレクトリの削除
# rm -fr /var/log/journal
(c) サービスの開始
# systemctl start systemd-journald.socket # systemctl start systemd-journald.service
(補足)
原因は、/var/log/journal/ が存在するためである。
・Debian 11.0 へのアップグレード時に作成されたものと思われる。
・journald の初期設定では、/var/log/journal/ の有無により出力先が変わる。
存在する場合: ディスク(/var/log/jounal/)へ出力
存在しない場合: RAM ディスク(/run/log/journal/)へ出力
1-3. Wireshark の起動エラー
(1) 発生事象
[エラーメッセージ] wireshark: error while loading shared libraries: libQt5Core.so.5: \ cannot open shared object file: No such file or directory
・Wireshark のバージョン: wireshark-qt 3.4.4-1
・該当するライブラリは存在する。
# find /usr/lib -name libQt5Core.so\* /usr/lib/i386-linux-gnu/libQt5Core.so.5.15.2 /usr/lib/i386-linux-gnu/libQt5Core.so.5 … libQt5Core.so.5.15.2 へのリンク /usr/lib/i386-linux-gnu/libQt5Core.so.5.15 … libQt5Core.so.5.15.2 へのリンク
(2) 対処方法
該当するライブラリから、余分な情報を削除する。
# /usr/lib/i386-linux-gnu # cp -p libQt5Core.so.5.15.2 libQt5Core.so.5.15.2.org # strip --remove-section=.note.ABI-tag libQt5Core.so.5.15.2
'for GNU/Linux 3.17.0' という部分が問題の原因とのこと。
(cf. https://myn.meganecco.org/1562249040.html)
# file libQt5Core.so.5.15.2.org libQt5Core.so.5.15.2.org: ELF 32-bit LSB shared object, Intel 80386, \ version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, \ BuildID[sha1]=b682831b8118e8378863be17f9e45a8cd6c66e31, \ for GNU/Linux 3.17.0, stripped # file libQt5Core.so.5.15.2 libQt5Core.so.5.15.2: ELF 32-bit LSB shared object, Intel 80386, \ version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, \ BuildID[sha1]=b682831b8118e8378863be17f9e45a8cd6c66e31, stripped
2. 備考
(1) インストール済のパッケージ数の増減
・Debian 10.10: 1579
・Debian 11.0: 1603 (+24)
(2) ディスクの使用量の増減
・Debian 10.10: 約 3.6GB を使用
・Debian 11.0: 約 3.8GB を使用 (+200MB)
Debian 11へのアップグレード後の不要パッケージの削除 [Debian]
・'apt-get autoremove' で、多数のパッケージが削除対象となる。
・必要なパッケージが削除対象に含まれている。
・対象とする環境は、これまでにアップグレードを繰り返してきた環境である。
このため、この機会に、パッケージ毎に削除の有無を検討し、対応することにした。
1. 手順
(1) 'apt-get autoremove' で削除対象のパッケージの一覧を取得
削除開始時の確認に対して、No を回答し、パッケージを削除しない。
(2) 該当するパッケージについての削除の有無を検討
(3) パッケージの削除には、'dpkg --purge <package name>' を使用
2. 手順の実施
(1) 1 回目
bsdmainutils * cpp-8 ... cpp-10 が存在する distro-info-data javascript-common * libapt-inst2.0 ... libapt-pkg5.0 の被依存パッケージ * libapt-pkg5.0 ... libapt-pkg6.0:i386 が存在 * libasan5 ... libasan6:i386 が存在 libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbind9-161 libboost-python1.67.0 * libcdio18 ... libcdio19:i386 が存在 * libcodec2-0.8.1 ... libcodec2-0.9:i386 が存在 libcroco3 libcrystalhd3 libcupsfilters1 libcupsimage2 libdbusmenu-glib4 libdbusmenu-gtk3-4 * libdns1104 ... libdns1110:i386 が存在 libdns1110 * libevent-2.1-6 ... libevent-2.1-7:i386 が存在 * libexiv2-14 ... libexiv2-27:i386 が存在 * libfluidsynth1 ... libfluidsynth2:i386 が存在 * libgssdp-1.0-3 ... libgssdp-1.2-0:i386 が存在 * libgupnp-1.0-4 ... libgupnp-1.2-0:i386 が存在 * libhogweed4 ... libnettle6 の被依存パッケージ * libicu63 ... libicu67:i386 が存在 * libilmbase23 ... libilmbase25:i386 が存在 * libip4tc0 ... libip4tc2:i386 が存在 * libip6tc0 ... libip6tc2:i386 が存在 libiptc0 libirs161 * libisc1100 ... libisc1105:i386 が存在 libisc1105 libisccc161 libisccfg163 * libisl19 ... libisl23:i386 が存在 libjs-jquery libjs-sphinxdoc libjs-underscore * libjson-c3 ... libjson-c5:i386 が存在 * libjte1 ... libjte2:i386 が存在 libkyotocabinet16v5 * libllvm7 ... libllvm11:i386 が存在 liblwres161 * libmpdec2 ... libmpdec3:i386 が存在 libmpx2 * libmysofa0 ... libmysofa1:i386 が存在 * libnettle6 ... libnettle8:i386 が存在 * libnfs12 ... libnfs13:i386 が存在 * libnftables0 ... libnftables1:i386 が存在 liboauth0 * libopenexr23 ... libopenexr25:i386 が存在 * libperl5.28 ... libperl5.32:i386 が存在 * libpgm-5.2-0 ... libpgm-5.3-0:i386 が存在 * libpoppler82 ... libpoppler102:i386 が存在 * libprocps7 ... libprocps8:i386 が存在 * libpython2.7 ... libpython3.9:i386 が存在 * libpython3.7-minimal ... libpython3.9-minimal:i386 が存在 * libpython3.7-stdlib ... libpython3.9-stdlib:i386 が存在 * librpm8 ... librpm9 が存在 * librpmbuild8 ... librpmbuild9 が存在 * librpmio8 ... librpmio9 が存在 * librpmsign8 ... librpmsign9 が存在 * libsnmp30 ... libsnmp40:i386 が存在 * libssl1.0.2 ... libssl1.1:i386 が存在 libtagc0 * libusbmuxd4 ... libusbmuxd6:i386 が存在 * libvpx5 ... libvpx6:i386 が存在 * libwireshark11 ... libwireshark14:i386 が存在 * libwiretap8 ... libwiretap11:i386 が存在 * libwscodecs2 ... libwsutil9 の被依存パッケージ * libwsutil9 ... libwsutil12:i386 が存在 * libx264-155 ... libx264-160:i386 が存在 * libx265-165 ... libx265-192:i386 が存在 libxapian30 * libxcb-util0 ... libxcb-util1:i386 が存在 libxcb-xf86dri0 lsb-release * perl-modules-5.28 ... perl-modules-5.32 が存在 python-six * python3.7-minimal ... python3.9-minimal が存在 sgml-base x11proto-input-dev x11proto-kb-dev
・'apt-get autoremove' で削除対象となるパッケージの数: 87
・行頭に * を付けたパッケージを削除する。
(2) 2 回目
bsdmainutils distro-info-data javascript-common libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbind9-161 libboost-python1.67.0 libcroco3 libcrystalhd3 libcupsfilters1 ... printing libcupsimage2 ... printing libdbusmenu-glib4 libdbusmenu-gtk3-4 libdns1110 libiptc0 libirs161 libisc1105 libisccc161 libisccfg163 libjs-jquery libjs-sphinxdoc libjs-underscore libkyotocabinet16v5 liblwres161 libmpx2 liboauth0 libtagc0 libxapian30 libxcb-xf86dri0 ! lsb-release python-six sgml-base x11proto-input-dev ... dummy package (only doc) x11proto-kb-dev ... dummy package (only doc)
・apt-get autoremove で削除対象となるパッケージの数: 35
・'apt-get autoremove' を実行する(削除対象のパッケージが削除される)。
・行頭に ! を付けたパッケージについては、後で再インストールする。
3. 実施結果の検証
今回は、下記の手順を実施した場合と同じ結果となった。
・'apt-get autoremove' の実行
・アンインストールされた lsb-release パッケージを再インストール
Debian 11へのアップグレード後の問題点への対応 [Debian]
致命的なエラーは発生しなかったが、数個のパッケージで問題が発生した。
以下は、上記の発生事象と対処方法をまとめたものである。
1. Emacs 27.1 の起動エラー
(1) 発生事象
Emacs 27.1 の起動時にエラが発生する。
このため、~/.emacs に設定している '(shell)' が実行されない。
[エラーメッセージ] Symbol's function definition is void: process-kill-without-query To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the '--debug-init' option to view a complete error backtrace.
(2) 対処方法
~/.emacs に、下記の設定を追加する。
;; add function (Emacs-27 or later) (when (>= emacs-major-version 27) (defun process-kill-without-query (process &optional flag) (set-process-query-on-exit-flag process nil) t))
(補足)
obsolete になっていた関数が、本バージョンで削除されたとのこと。
(cf. https://twitter.com/shg/status/1295166707594452993)
2. iptables 1.8.7-1 の起動エラー
(1) 発生事象
iptables の起動時にエラーが発生する。
[エラーメッセージ] iptables v1.8.7 (nf_tables): Could not fetch rule set generation id: \ Invalid argument
(2) 対処方法
Debian 10 の iptables 1.8.2 にバージョンダウンする。
(a) パッケージのダウンロード
iptables_1.8.2-4_i386.deb libip4tc0_1.8.2-4_i386.deb libip6tc0_1.8.2-4_i386.deb libiptc0_1.8.2-4_i386.deb libxtables12_1.8.2-4_i386.deb
・https://packages.debian.org/ja/ にアクセス
・[パッケージディレクトリを検索] の Distribution: で buster を選択
・キーワードにパッケージ名を入力し、検索を実行
・検索されたパッケージをダウンロードし、/tmp/iptables-1.8.2/ に保存
(b) パッケージのバージョンダウン
# cd /tmp/iptables-1.8.2 # dpkg -i *.deb
3. Apache 2.4.48 の起動エラー
(1) 発生事象
Apache の起動時にエラーが発生する。
[エラーメッセージ] Function not implemented: AH00141: Could not initialize random number \ generator
(2) 対処方法
Debian 10 の Apache 2.4.38 にバージョンダウンする。
(a) パッケージのダウンロード
apache2-bin_2.4.38-3+deb10u5_i386.deb apache2-data_2.4.38-3+deb10u5_all.deb apache2-utils_2.4.38-3+deb10u5_i386.deb apache2_2.4.38-3+deb10u5_i386.deb libapr1_1.6.5-1+b1_i386.deb libaprutil1-dbd-sqlite3_1.6.1-4_i386.deb libaprutil1-ldap_1.6.1-4_i386.deb libaprutil1_1.6.1-4_i386.deb
・http://packages.debian.org/ja/ の [パッケージディレクトリを検索] を使用
・検索されたパッケージをダウンロードし、/tmp/apache-2.4.38/ に保存
(b) パッケージのバージョンダウン
# cd /tmp/apache-2.4.38 # dpkg -i *.deb
4. halt-local.service が機能しない
(1) 発生事象
/lib/systemd/system/halt-local.service が機能しない。
このため、shutdown 時に /usr/sbin/halt.local が実行されない。
(補足)
・パッケージのバージョン: systemd 247.3-6
・halt-local.service の状態には問題はない。
# systemctl status halt-local.service * halt-local.service - /usr/sbin/halt.local Compatibility Loaded: loaded (/lib/systemd/system/halt-local.service; static) Active: inactive (dead)
・同じ Unit ファイルを使用している Debian 10、CentOS 7 では、正常に機能する。
(2) 対処方法
取り敢えずは、下記の手順を実施する。
(a) /lib/systemd/system/halt-local.service の編集
# diff halt-local.service halt-local.service.org 21,23d20 < < [Install] < WantedBy=shutdown.target
(b) 変更内容の反映
# systemctl enable halt-local.service
・/etc/systemd/system/shutdown.target.wants/halt-local.server が作成される。
(/lib/systemd/system/halt-local.service へのシンボリック・リンク)
・systemctl is-enabled halt-local の実行結果が変わる。
(新) enabled
(旧) static
Debian 11へのアップグレード [Debian]
3 個のパッケージで実行時のエラーが発生したが、致命的なエラーは発生しなかった。
詳細は、以下の通りである。
・参考資料
https://www.debian.org/releases/bullseye/i386/release-notes/ch-upgrading.ja.html
1. アップグレードの前処理
(1) buster の最新パッケージへのアップデート
インストールされているパッケージを最新版にアップデートする。
(2) エラー状態にあるパッケージの確認
(a) 状態確認
# dpkg --audit
下記の状態のパッケージに関する情報が出力される。
・インストールが未完了のパッケージ (Half-Installed)
・設定に失敗したパッケージ (Failed-Config)
・何らかのエラー状態にあるパッケージ
(b) 対応
可能な限り問題の解決を行う。
問題が解決できない場合には、アンインストールを検討する。
(3) hold 状態にあるパッケージの確認
(a) 状態確認
# apt-mark showhold
該当するパッケージに関する情報が出力される。
(b) 対応
アップデートしたいパッケージは、hold 状態を解除する。
アップデートから除外したいパッケージは、hold 状態にする。
(hold の設定の場合) # apt-mark hold <pkg_name> (hold の解除の場合) # apt-mark unhold <pkg_name>
(4) apt のキャッシュの削除
# apt-get clean # apt-get autoclean
(5) システムのバックアップ
アップグレードが失敗した場合のために、システム・バックアップを行う。
2. アップグレード
2-1. リポジトリの変更
(1) /etc/apt/sources.list の編集
(a) buster を bullseye に変更する。
# cp -p sources.list sources.list.sav # sed 's/buster/bullseye/g' sources.list.sav > sources.list
(b) securiry update の設定方法が変更されてため、これに対応する。
(変更前) deb http://security.debian.org/ buster/updates main contrib non-free deb-src http://security.debian.org/ buster/updates \ main contrib non-free (変更後) deb http://security.debian.org/debian-security bullseye-security \ main contrib non-free deb-src http://security.debian.org/debian-security bullseye-security \ main contrib non-free
cf. https://www.debian.org/releases/stable/errata
(2) /etc/apt/sources.list の編集内容の反映
# apt-get update
2-2. 最小アップグレード
(1) 必要なディスク容量の確認
# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
・/var/cache/apt/archives/ に必要なディスク容量が出力される。
・必要な領域がない場合には、その旨のメッセージが出力される。
(2) インストールされているパッケージの最小アップデート
# apt-get upgrade | tee /work/upgrade.log または # apt upgrade --without-new-pkgs | tee /work/upgrade.log
・他のパッケージのインストール/削除が不要なパッケージのみが対象となる。
・設定変更の可否の確認に対しては、現在の設定を使用する方を回答する。
2-3. 完全アップグレード
# apt-get dist-upgrade | tee /work/dist-upgrade.log または # apt full-upgrade | tee /work/dist-upgrade.log
・システムの完全なアップグレードが行われる。
・設定変更の可否の確認に対しては、現在の設定を使用する方を回答する。
3. アップグレード後の処理
(1) apt のキャッシュの削除
# apt-get clean # apt-get autoclean
(2) システムのバックアップ
アップグレード直後のシステム・バックアップを行う。
(3) 不要となったパッケージの削除
下記の理由から、ここでは 'apt-get autoremove' を実行しない。
・'apt-get autoremove' で削除対象となるパッケージが多数ある。
・削除対象には、必要と思われるパッケージが含まれている。
削除対象となるパッケージの一覧のみを取得し、削除の有無は後程検討する。
(4) 設定ファイルの更新
# find /etc -name \*-dist # find /etc -name \*-new # find /etc -name \*-old
・/etc 以下の *-{dist,new,old} ファイルで必要なもの採用する。
・/etc/logrotate.d/ では、上記ファイルの存在が問題となる。
(5) apt のキャッシュの削除
# apt-get clean # apt-get autoclean
(6) 再起動
# shutdown -r now
4. 備考
(1) インストール済のパッケージ数の増減
・Debian 10.10: 1579
・Debian 11.0: 1690 (+111)
(2) 実行時にエラーを発生するパッケージ
・Apache 2.4.48 … 異常終了
・iptables 1.8.7 … 異常終了
・Emacs 27.1 … 一部の機能が正常に機能しない
(備考)
対応方法について、現在調査中。
clamdscanがエラーを発生することがある (Debian 10) [Debian]
clamdscan 0.103.2+dfsg-0+deb10u1
anacron 2.3-28
1. 発生事象
clamdscan がエラーを発生することがある。
[エラーメッセージ] ERROR: Could not connect to clamd on LocalSocket /var/run/clamav/clamd.ctl: \ Connection refused
2. 原因
下記のいずれかの事象が発生したためと思われる。
(1) clamdscan の実行中に shutdown が実施された。
この場合にも上記のエラーメッセージが出力される。
現在の設定やコマンドの実行履歴から考えて、こちらの可能性が高い。
(2) clamd が正常に稼働していない状態で clamdscan が実行された。
(補足)
・clamdscan を anacron から実行している。
/etc/cron.daily/clamav-scan を追加している。
(clamav-daemon.service が active の場合にのみ cladscan を実行する。)
/etc/cron.daily/* は、anacron の起動の 5 分後に順次実行される。
(cf. /etc/anacrontab)
・anacron は /lib/systemd/system/anacron.timer から実行される。
通常は時刻指定で、07..23:30 に最大で 5 分の待機後実行される。
前回の実施状況により、ブート直後に実行されることがある。
・clamd の /var/run/clamav/clamd.ctl の作成には、通常 40〜45 秒を要する。
3. 対処方法
(1) clamdscan を実行中の shutdown を回避
shutdown の前に clamdscan プロセスの有無を確認する。
(例) % ps c -C clamdscan
(2) clamd が正常に稼働していない状態での clamdscan の実行の回避
上記の (1) の対応で改善しない場合には、下記の手順を実施する。
(a) /etc/cron.daily/* が実行されるまでの待機時間の延長
/etc/anacrontab の cron.daily の行を編集する。
(例)
5 分(初期値)から 10 分に延長する。
待機時間の重複排除のため、cron.{weekly,monthly} について調整する。
(b) ブート直後の anacron の実行の回避
・/lib/systemd/system/anacron.timer を編集する。
[Timer] 欄の 'Persistent=true' を削除する。
・変更内容の反映
# systemctl daemon-reload
(補足)
下記のような事象を想定した対応である。
・実行環境により、clamd の動作が安定するまでに想定外の時間を要する。
・実行環境により、socket file の作成に想定外の時間を要する。
aptコマンドのハイライト表示の無効化 [Debian]
OS: Debian 10.7
apt 1.8.2.2
1. 発生事象
いつの間にか、apt コマンドでパッケージの検索や一覧表示が可能になっていた。
・apt search、apt list、等
・従来は、apt-chache search、dpkg -l、dpkg-query --show で行っていた。
しかし、パッケージの検索/一覧表示では、ハイライト表示により見づらくなることがある。
・実行結果の一部が緑色でハイライト表示される。
・使用している背景色を全く考慮しないため、非常に見づらいことがある。
(補足)
・ターミナル上で発生する。
・Emacs 上では、ハイライト表示は機能しない。
2. 対処方法
下記のオプションの指定により、ハイライト表示を無効化できる。
-o apt::color::highlight="^[[0m"
・^[ はバイナリ・コード(Ctrl + V の後に ESC キーを押下)である。
色を付けるエスケープ・シーケンスを指定する。
・| cat - を追加することでも、取り敢えず、色付けを無効化できる。
・/etc/apt/apt.conf.d/xxx へのオプション指定でも対応できると思われる。
GPGの共通鍵での復号化で、CAST5アルゴリズムを使用できない (Debian 10) [Debian]
gnupg 2.2.12-1+deb10u1 (on Debian 10)
1. 発生事象
GPG の共通鍵での復号化で、CAST5 アルゴリズムを使用できない。
・Emacs において、CAST5 で暗号化されたファイルの参照(復号化)に失敗する。
・gpg コマンドの実行の場合、復号化できるが、エラーメッセージが出力される。
[エラーメッセージ]
gpg: WARNING: no command supplied. Trying to guess what you mean ... gpg: CAST5 encrypted data gpg: encrypted with 1 passphrase gpg: WARNING: message was not integrity protected gpg: Hint: If this message was created before the year 2003 it is likely that this message is legitimate. This is because back then integrity protection was not widely used. gpg: Use the option '--ignore-mdc-error' to decrypt anyway. gpg: decryption forced to fail!
(補足)
・Debian 10 の GPG では、アルゴリズムが未指定の場合、AES256 が使用される。
・CentOS 7 の GPG では、上記の問題は発生しない。
・gnupg2-2.0.22-5.el7_5.x86_64 を使用。
・暗号化では、アルゴリズムが未指定の場合、CAST5 が使用される。
・Debian 10 の file コマンドでは、使用されているアルゴリズムを確認できる。
2. 対処方法
下記の手順を実施する。
(1) 古いアルゴリズム(3DES、CAST5) での復号化を可能にする。
オプション・ファイル(~/.gnupg/gpg.conf) に下記の設定を追加する。
ignore-mdc-error
(2) 連携する全環境において、AES256 をアルゴリズムのデフォルト値にする。
オプション・ファイル(~/.gnupg/gpg.conf) に下記の設定を追加する。
cipher-algo AES256
3. 備考
(1) GPG が共通鍵方式で使用するアルゴリズムのデフォルト値
・gpg 2.2: AES256
・gpg 2.1: AES128
・gpg 1.0 および gpg 2.0: CAST5