Debian 9からDebian 10へのアップデート後の問題点への対応 [Debian]
以下は、アップデート後に発生した問題点と対応方法をまとめたものである。
[一般的なアップデート方法]
・使用中のリポジトリでの最新パッケージへの更新
・参照するリポジトリの変更 (/etc/apt/sources.list の編集、apt-get update の実行)
・最小アップグレード (apt-get upgrade の実行)
・完全アップグレード (apt-get dist-upgrade の実行)
・/etc 以下の *-dist への対応 (削除 or 適用)
1. [Emacs 26.1 の起動時に scratch バッファが表示される] ことへの対応
【発生事象】
・~/.emacs で (shell) を実行しているが、scratch バッファも表示される。
・initial-buffer-choice の設定値は nil である。
・余分なバッファが表示されるだけで、その他の動作上の問題はない。
・Emacs のバグの可能性あり(scratch バッファーが無条件に表示されてしまう)。
【パッケージ】
emacs24 1:26.1+1-3.2+deb10u1
【対応】
取り敢えず、~/.emacs の (shell) の後に下記の設定を追加する。
(when (>= emacs-major-version 26) ;; disable to display scratch buffer at startup (Emacs-26 or later) (delete-windows-on "*scratch*" nil))
2. ['lsb_release -rs' で 10.1 ではなく 10 と表示される] ことへの対応
【発生事象】
% lsb_release -rs 10 % cat /etc/debian_version 10.1
【パッケージ】
lsb-release 10.2019051400
【対応】
現時点では不明である。
3. [SSL でのメール受信ができない] ことへの対応
【発生事象】
[エラーメッセージ] OpenSSL reported: error:141A318A:SSL routines:tls_process_ske_dhe:dh key \ too small SSL connection failed.
・原因
OpenSSL 1.1.1 において、SECLEVEL のデフォルト値が変更されたため。
(デフォルト値: SECLEVEL 2)
尚、これにより、DH 鍵の最小サイズが 1024 から 2048 bit に変更された。
【パッケージ】
openssl 1.1.1d-0+deb10u2
【対応】
下記のパッケージにバージョンダウンする。
・openssl 1.1.0k-1~deb9u1
・stunnel4 3:5.39-2
stunnel4 はそのままでも SSL でのメール受信が可能である。
stunnel4.service の起動エラーが発生するため、念のためバージョンダウンする。
・ca-certificates 20161130+nmu1+deb9u1
openssl 1.1.0k-1~deb9u1 の依存パッケージ
('apt-get -Vs upgrade' でエラーが発生)
4. [Mew 6.8 で draft メッセージが作成できない] ことへの対応
【発生事象】
[エラーメッセージ] Symbol's value as variable is viod: default-buffer-file-coding-system
・原因
Emacs 26.1 では、default-buffer-file-coding-system が削除されているため。
【パッケージ】
emacs24 1:26.1+1-3.2+deb10u1
mew 1:6.8-4
mew-bin 1:6.8-4
【対応】
~/.emacs 等で default-buffer-file-coding-system に想定する値を設定する。
(例) (when (>= emacs-major-version 26) ;; enable to send mail with Mew 6.8 (setq default-buffer-file-coding-system 'sjis-unix))
5. [Emacs 26.1 での句読点の日本語変換で文字化けする] ことへの対応
【発生事象】
・'、' への変換で、\343\200\201 と表示される。
・'。' への変換で、\343\200\202 と表示される。
・vim では、この問題は発生しない。
・Anthy の問題の可能性が高い。
(anthy 9100h にバージョンダウンしたいが、依存パッケージが多い。)
【パッケージ】
emacs24 1:26.1+1-3.2+deb10u1
anthy 1:0.3-8.1
anthy-common 1:0.3-8.1
anthy-el 1:0.3-8.1
libanthy1:i386 1:0.3-8.1
libanthyinput0:i386 1:0.3-8.1
uim-anthy 1:1.8.8-4
【対応】
取り敢えず、~/.emacs の Anthy の設定に、下記のような設定を追加する。
日本語の入力については、他のシステム上、または本システム上の vim で実施する。
(cf. /usr/share/emacs/site-lisp/anthy/anthy-conf.el)
(let ((anthy-version (shell-command-to-string "dpkg-query -W anthy-el 2>/dev/null | awk '{printf $2}'"))) (cond ;; patch for anthy-el 1:0.3-8.1 ((string= anthy-version "1:0.3-8.1") (setq anthy-alt-char-map '(("," "、") ("." "。") ("-" "ー") ("1" "1") ("2" "2") ("3" "3") ("4" "4") ("5" "5") ("6" "6") ("7" "7") ("8" "8") ("9" "9") ("0" "0") ("!" "!") ("\"" "\"") ("#" "#") ("$" "$") ("%" "%") ("&" "&") ("'" "'") ("(" "(") (")" ")") ("^" "^") ("\\" "\\") ("[" "[") (";" ";") (":" ":") ("]" "]") ("/" "/") ("=" "=") ("~" "~") ("|" "|") ("`" "`") ("{" "{") ("+" "+") ("*" "*") ("}" "}") ("<" "<") (">" ">") ("?" "?") ("_" "_"))) (anthy-load-hiragana-map anthy-alt-char-map))))
異なるバージョンの Emacs について、同様の問題が発生したとの情報がある。
(cf. https://tsaitoh.net/wp/2018/05/10/emacs-anthy-mozc/)
この点からも、Emacs の問題ではなく、anthy 0.3 の問題と思われる。
KVMのlibvirtの更新後にドメインが起動できないことへの対応 [CentOS]
KVM の libvirt の更新後、共有ディスクを使用するドメインが起動できなくなった。
(CentOS 7.4 から 7.5 への更新後に発生)
cf. https://dan-project.blog.ss-blog.jp/2018-05-20
2. 原因
libvirt で共有できるディスクの仕様が変更されたためである。
・qcow2 フォーマットのディスク・イメージを共有できなくなった。
(cf. Red Hat Bugzilla - Bug 1511480)
3. 対処方法
下記の手順を実施する。
3-1. 新しい仕様に対応できる場合
(1) 共有ディスクのフォーマットを qcow2 から raw(sparse) に変更する。
/var/lib/libvirt/images/ 内の当該イメージのフォーマットを変更する。
# qemu-img convert -O raw <disk-name>.qcow2 <disk-name>.raw
(2) 当該ドメインの共有ディスクの定義で qcom2 から raw に変更する。
/etc/libvirt/qemu/<domain-name>.xml を編集する。
・driver name の type を 'qcow2' から 'raw' に変更
・surce file を '<disk-name>.qcow2' から '<disk-name>.raw' に変更
(3) システムを再起動する。
上記の変更を有効にするためである。
3-2. 新しい仕様に対応できない場合
該当するパッケージを CentOS 7.4 のパッケージにバージョン・ダウンする。
cf. https://dan-project.blog.ss-blog.jp/2018-05-20
CentOS 7でgpmが機能しないことのその後 [CentOS]
CentOS 7 で gpm が機能しない。
・マウスカーソルが表示されず、使用できない。
・カーネルのアップデートにより、再発するようになった。
kernel-3.10.0-514.10.2.el7.x86_64
・正常に機能することもある。
cf. https://dan-project.blog.ss-blog.jp/2017-04-25
2. 対処方法
下記のカーネルへのバージョンアップにより、改善される。
# OS: CentOS 7.7 ・gpm-1.20.7-6.el7.x86_64 ・gpm-libs-1.20.7-6.el7.x86_64 ・kernel-3.10.0-1062.1.2.el7.x86_64 ・kernel-headers-3.10.0-1062.1.2.el7.x86_64 ・kernel-tools-3.10.0-1062.1.2.el7.x86_64 ・kernel-tools-libs-3.10.0-1062.1.2.el7.x86_64
ThunderbirdのSmartTemplate4アドオンの有料化への対応 [Windows]
(現在は、ver 60.9.0 を使用)
また、返信/転送時のメッセージ作成のテンプレートとして、SmartTemplate4 アドオンを使用している。
久しぶりに使用し、返信しようとしたしたところ、SmartTemplate4 のライセンス登録を促すメッセージが表示された。
金銭を払ってまで使用する程のソフトウェアとは思わないため、どのバージョンまで無料で使用できるかを調べてみた。
結論としては、ver 2.0 までは無料で使用できる。
(ライセンス登録を促すメッセージが表示されないことから判断)
cf. https://addons.thunderbird.net/ja/thunderbird/addon/smarttemplate4/versions/
ClamAVのclamscanからclamdscanへの移行 [Linux]
受信メールのウイルスチェックに ClamAV(clamscan コマンド) を使用している。
ただし、契約している ISP でチェック済のものについては、対象外としている。
また、最近 ISP のメールサーバーの高負荷時に誤認識が多発することが分かり、ISP でのウイルスチェックを無効化した。これにより、常に ClamAV でのチェックが実施されるようになった。
ここで問題となったのが、clamscan コマンドの処理が非常に遅いことである。原因は、起動時のウイルス定義ファイルの情報解析に多大な時間を要するためのようである。
このため、単独コマンドの clamscan から、サーバー・クライアント形式の clamdscan への移行を行った。
デーモン(サーバー)の起動時にのみウイルス定義ファイルの情報解析が実施されるようになるため、ウイルスチェック(クライアント)の所要時間を短縮できる。
2. パッケージのインストール
(1) Debian 9 の場合
# apt-get install clamav-daemon
・依存関係により、clamdscan パッケージがインストールされる。
(2) CentOS 7 の場合
# yum --enablerepo=epel install clamd
(3) CentOS 6 の場合
# yum --enablerepo=epel install clamd
3. 基本的な設定
インターネット上に情報が豊富なため、詳細な説明は割愛する。
3-1. Debian 9 の場合
(1) clamd の設定
/etc/clamav/clamd.conf を編集する。
・socket ファイルの所有者グループ、ファイル・パーミションの設定
・実行ユーザーの設定
・ログファイルの最大サイズの指定
・除外するディレクトリの指定
# diff clamd.conf clamd.conf.org 6,7c6,7 < #LocalSocketGroup clamav < #LocalSocketMode 666 --- > LocalSocketGroup clamav > LocalSocketMode 666 10c10 < #User clamav --- > User clamav 84,85c84 < #LogFileMaxSize 0 < LogFileMaxSize 100K --- > LogFileMaxSize 0 89,97d87 < < # Don't scan files and directories matching regex < ExcludePath ^/proc/ < ExcludePath ^/sys/ < ExcludePath ^/dev/ < ExcludePath ^/mnt/ < ExcludePath ^/misc/ < ExcludePath ^/net/ < ExcludePath ^/media/
3-2. CentOS 7 の場合
(1) /run/clamd.scan/ のパーミション変更
・/run/clamd.scan/ のパーミションを変更する。
・下記の内容で、/etc/tmpfiles.d/clamd.scan.conf を作成する。
# chmod 755 /run/clamd.scan # cat /etc/tmpfiles.d/clamd.scan.conf d /run/clamd.scan 0755 clamscan virusgroup -
(2) clamd の設定
/etc/clamd.d/scan.conf を編集する。
・設定の有効化
・ログファイルのパスの設定
・ログファイルの最大サイズの設定
・ログへの日時情報の出力
・syslog の使用の有無の設定
・ログ・ローテーションの有無の設定
・socket ファイルの設定
・除外するディレクトリの設定
・SelfCheck の実施間隔の設定
・実行ユーザーの設定
# diff scan.conf scan.conf.org 8c8 < #Example --- > Example 14c14 < LogFile /var/log/clamd.scan --- > #LogFile /var/log/clamd.scan 32d31 < LogFileMaxSize 100K 36c35 < LogTime yes --- > #LogTime yes 45c44 < #LogSyslog yes --- > LogSyslog yes 58c57 < LogRotate yes --- > #LogRotate yes 94c93 < LocalSocket /var/run/clamd.scan/clamd.sock --- > #LocalSocket /var/run/clamd.scan/clamd.sock 106c105 < FixStaleSocket yes --- > #FixStaleSocket yes 178,184c177,178 < ExcludePath ^/proc/ < ExcludePath ^/sys/ < ExcludePath ^/dev/ < ExcludePath ^/mnt/ < ExcludePath ^/misc/ < ExcludePath ^/net/ < ExcludePath ^/media/ --- > #ExcludePath ^/proc/ > #ExcludePath ^/sys/ 205d198 < SelfCheck 3600 214c207 < #User clamscan --- > User clamscan
(3) clamd@scan の自動起動
# systemctl enable clamd@scan
3-3. CentOS 6 の場合
(1) clamd の設定
/etc/clamd.conf を編集する。
# diff clamd.conf clamd.conf.org 31,32c31 < #LogFileMaxSize 0 < LogFileMaxSize 100K --- > LogFileMaxSize 0 45c44 < #LogSyslog yes --- > LogSyslog yes 58c57 < LogRotate yes --- > #LogRotate yes 110c109 < #TCPSocket 3310 --- > TCPSocket 3310 118c117 < #TCPAddr 127.0.0.1 --- > TCPAddr 127.0.0.1 178,184c177,178 < ExcludePath ^/proc/ < ExcludePath ^/sys/ < ExcludePath ^/dev/ < ExcludePath ^/mnt/ < ExcludePath ^/misc/ < ExcludePath ^/net/ < ExcludePath ^/media/ --- > #ExcludePath ^/proc/ > #ExcludePath ^/sys/ 205d198 < SelfCheck 3600 214c207 < #User clam --- > User clam
4. 問題点への対応
4-1. Debian 9 の場合
(1) syslog への出力の無効化
clamd.conf の設定だけでは、syslog への出力を無効化できない。
(/var/log/syslog に出力され、LOG_LOCAL6 ファシリティでの出力ではない。)
このため、/etc/rsyslog.conf のルールの先頭に、下記の設定を追加する。
# Discard messages of clamd. :programname, isequal, "clamd" stop
(補足)
変更内容の反映のため、rsyslog の再起動、またはシステムの再起動を行う。
4-2. CentOS 7 の場合
(1) 起動時のタイムアウト発生への対応
下記の手順で、clamd@scan の Unit ファイルを編集する。
(/lib/systemd/system/clamd@.service の直接編集でも対応可能。)
(a) /etc/systemd/system/clamd@scan.service の作成
# cd /etc/systemd/system # cp -p /lib/systemd/system/clamd@scan.service .
(b) /etc/systemd/system/clamd@scan.service の編集
# diff /etc/systemd/system/clamd@scan.service /lib/systemd/system 3,5d2 < [Service] < TimeoutStartSec=5min ← これがポイント <
(補足)
停止時にも同様の設定が必要な場合には、下記のように設定する。
TimeoutSec=5min
(c) 変更内容の反映
# systemctl disable clamd@scan # systemctl enable clamd@scan
4-3. CentOS 6 の場合
(1) clamd の起動方法の変更
clamd の起動が完了するまでには、3 分程度を要する。
また、起動スクリプトの終了までブート処理が待ち状態となる。
このため、clamd の起動スクリプトをバックグラインドで実行する。
(a) 自動起動の無効化
自動起動が有効化されている場合には、無効化する。
# chkconfig --list | grep clamd # chkconfig clamd off
(b) /etc/rc.d/rc.local の編集
ファイルの最後に、下記の設定を追加する。
# start clamd if [ -x /etc/init.d/clamd ]; then (/etc/init.d/clamd start &) >/dev/null 2>&1 fi
5. 備考
(1) clamd の起動が完了する前の clamdscan の実行
clamd の起動が完了するまでは、clamdscan はエラーとなる。
(2) ウイルス情報を更新した後の clamd への反映
下記のいずれかの方法で対応できる。
(a) clamdscan コマンドの実行
# clamdscan --reload
(補足)
・ウイルス情報の再読み込みには、210 秒程度を要する。
・スクリプト内で実行する場合には、下記のように実行する。
(clamdscan --reload &) >/dev/null 2>&1
(b) freshclam コマンドの clamd との連携
freshclam の設定で、NotifyClamd を有効にする。
(c) clamd でのセルフチェック
一定の時間間隔でウイルス情報を確認し、必要なら再読み込みを行う。
設定項目は SelfCheck、初期値は 600(s) である。
(3) clamdscan のオプション指定
ほとんどのオプションは、clamd の設定ファイルで指定する。
コマンドラインで指定できるのは、一部のオプションのみである。
(ログファイルのパス、等)
(4) clamd の監視
clamdtop コマンドを使用する。