SSブログ

Firefoxでアイコンが文字化けすることへの対応 [misc]

[ソフトウェアのバージョン]
・Firefox 78.4.0esr (on Linux/Windows)
・Firefox 52.9.0esr (on Linux/Windows)

1. 発生事象


Firefox において、アイコンの文字化けが発生する。

・ツイッター等のアイコンの文字化け
・uBlock Origin アドオンのダッシュボードでのアイコンの文字化け
 ([フィルター一覧]、[Myフィルター] 等で発生)


2. 原因


下記のようなフォント設定を行っているためである。

(例) Linux の場合
* {
  font-family: "Sazanami Gothic", monospace !important;
}


【設定の目的】
・明朝体を使用したくないため。
 ([ウェブページが指定したフォントを優先する] を無効化している。)
【設定箇所】
・Stylus アドオン
・<profile-dir>/chrome/userContent.css
【設定の問題点】
・すべてのコンテンツを対象としていることが問題である。


3. 対処方法


下記のように設定を変更する。

(1) 原因となっている設定の訂正


上記の原因となっている設定を下記のように変更する。

body {
  font-family: "Sazanami Gothic", monospace !important;
}


(2) 設定の追加


Firefox のフォントの詳細設定で、下記の設定を行う。
上記 (1) の設定の対象から漏れるコンテンツへの対応である。
(章のタイトル、等)

・日本語の明朝体フォントにゴシック体のフォントを指定する。
 明朝体 (Serif): Sazanami Gothic
 (明朝体を使用する Web ページへの対応)
・必要なら、ラテン文字、その他の表記体系についても同様の設定を行う。
 (lang 属性が英語、Unicode の Web ページへの対応)


[備考]


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

rsyslogのタイムスタンプのフォーマット変更 [Linux]

rsyslog のデフォルト設定では、タイムスタンプに年が出力されない。
不便を感じることが度々あるため、年(西暦 4桁)が出力されるように設定の変更を行った。

[ソフトウェアのバージョン]
・rsyslog 8.1901.0-1 (on Debian 10)
・rsyslog-8.24.0-52.el7_8.2.x86_64 (on CentOS 7)

1. 対応方法


/etc/rsyslog.conf にテンプレートの定義を追加し、これを使用する。
尚、タイムスタンプは、下記のように変更する。

(変更前)
Jan  2 11:22:33
(変更後)
2020-01-02 11:22:33

2. 実施手順


(1) テンプレートの定義


下記のテンプレートを定義する(注1)。

$template custom_timestamp,"%timestamp::10:date-rfc3339%
 %timestamp:12:19:date-rfc3339% %hostname% %syslogtag%
%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"


・%msg:::drop-last-lf%
 メッセージの最初の文字がスペースでない場合に、スペースを返す。
・%msg:::sp-if-no-1st-sp%
 メッセージを取得し、最後の改行を取り除く。


(2) デフォルト・テンプレートの変更

(変更前)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
(変更後)
$ActionFileDefaultTemplate custom_timestamp


(3) rsyslog の再起動

# systemctl restart rsyslog

3. 備考


(1) $ActionFileDefaultTemplate の代表的な設定値


(a) RSYSLOG_TraditionalFileFormat


・デフォルトの設定値である。
・タイプスタンプに年が含まれない。
 (例) Jan 2 11:22:33
・フォーマットは、下記の通り(注1)。

"%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%
%msg:::drop-last-lf%\n"


(b) RSYSLOG_FileFormat


・高精度のタイプスタンプとタイムゾーン情報が含まれる。
 (例) 2020-01-02T11:22:33.123456+09:00
・フォーマットは、下記の通り(注1)。

"%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%
%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"

(注1)
複数行として表示しているが、設定は一行で行う(単純に行を連結する)こと。

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

MewのSummaryモードでのローカルタイムへの変換 [Linux]

以前から先送りしていた、Mew の Summary モードでのローカルタイムへの変換対応を行った。
尚、これまでは変換せず、日時とタイムゾーンを表示していた。

編集するファイルは ~/.mew.el であり、手順は、以下の通りである。
(ソースの詳細は、備考を参照。)

1. 変数 mew-summary-ctz の追加
(defvar mew-summary-ctz t
  "*If mew-summary-ctz is t,
use local time zone in Summary mode.")


変数 mew-summary-ctz が t の場合、ローカルタイムゾーンでの日時を表示する。
それ以外の場合、メールヘッダーの日時をそのまま表示する。


2. mew-summary-form-year2 関数の作成


mew-summary-form-year 関数をコピーし、下記の変更を行う。

(1) 変更箇所


下記の when を if に変更し、else 部分を追加する。

(when (or (string= s "")
      (not (string-match mew-time-rfc-regex s)))
  ...)


(2) 変更内容


下記のコードを追加する。

(when mew-summary-ctz
  (setq s (timezone-make-date-arpa-standard s)))


(補足)
mew-summary-form-year は、mew-scan.el で定義されている。


3. mew-summary-form-date2 関数の作成


mew-summary-form-date 関数をコピーし、下記の変更を行う。

(1) 変更箇所


mew-summary-form-year2 関数と同様。


(2) 変更内容


mew-summary-form-year2 関数と同様。

(補足)
mew-summary-form-date は、mew-scan.el で定義されている。


4. mew-summary-form-time2 関数の作成


mew-summary-form-time 関数をコピーし、下記の変更を行う。

(1) 変更箇所


mew-summary-form-year2 関数と同様。
(ただし、元々 when ではなく、if が使用されている。)


(2) 変更内容


mew-summary-form-year2 関数と同様。

(補足)
mew-summary-form-time は、mew-scan.el で定義されている。


5. mew-summary-form-tmzn 関数の作成
(defun mew-summary-form-tmzn ()
  "A function to return the time zone of message time, [+-]HHMM."
  (let ((s (MEW-DATE)))
    (if (or (string= s "")
            (not (string-match mew-time-rfc-regex s)))
        (setq s (mew-time-ctz-to-rfc
                 (mew-file-get-time (mew-expand-msg (MEW-FLD) (MEW-NUM)))))
      (when mew-summary-ctz
        (setq s (timezone-make-date-arpa-standard s))))
    (if (not (string-match mew-time-rfc-regex s))
        ""
      (setq s (mew-time-rfc-tmzn))
      (format "%+03d%02d" (/ s 3600) (/ (% s 3600) 60)))))

6. 変数 mew-summary-form の設定変更


year2、date2、time2、tmzn を表示するように変更する。

(defun mew-summary-form-num ()
  "A function to return a message number."
  (MEW-NUM))
(defvar mew-summary-message-number t
  "*If mew-summary-message-number is t,
display message number in Summary mode.")

(setq mew-summary-form
      (if mew-summary-message-number
          ;; display message number
          '((-4 num) " " type
            (4 year2) "-" (5 date2) " " (8 time2) " " (5 tmzn)
            " " (16 from) " " t (0 subj))
        ;; display no message number
        '(type
          (4 year2) "-" (5 date2) " " (8 time2) " " (5 tmzn)
          " " (16 from) " " t (0 subj))))

7. ローカルタイムへの変換以外の変更点


今回行った変更以外に、下記の変更を行っている。

・日付フォーマットの変更 (YYYY/MM/DD から YYYY-MM-DD へ変更)
・時刻フォーマットの変更 (HH:MM から HH:MM:SS へ変更)
・タイムゾーンの表示
・メッセージ番号の表示 (変数 mew-summary-message-number で表示の有無を制御)


[備考]


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

ClamAVの除外するパスの指定で使用できる正規表現の仕様 [Linux]

ClamAV(clamscan、clamdscan) の除外するパスの指定では、正規表現が使用できる。
しかし、どのレベルの正規表現が使用できるのかが不明確なため、検証を行った。
(Debian 9、Debian 10、CentOS 7 で検証を実施。)
詳細は、以下の通りである。

1. .(ピリオド)


任意の 1 文字を表す。


2. *(アスタリスク)


直前の文字の 0 回以上の繰り返しを表す。
よって、すべての文字列を表すには、'*' ではなく、'.*' を使用する。


3. +(プラス)


直前の文字の 1 回以上の繰り返しを表す。


4. ^(キャレット、ハット)


先頭を表す。


5. $(ドル、ダラー)


末尾を表す。


6. [] での範囲指定


サポートされている。

(例)
# clamdscan の場合
ExcludePath ^/tmp/data[1-3]/
# clamscan の場合
--exclude-dir='^/tmp/data[1-3]/'

7. [^] での範囲の除外


サポートされている。

(例)
# clamdscan の場合
ExcludePath ^/tmp/data[^1-3]/
# clamscan の場合
--exclude-dir='^/tmp/data[^1-3]/'

8. () でのグループ化


サポートされている。

(例)
# clamdscan の場合
ExcludePath ^/(mnt|misc|net|media)/
# clamscan の場合
--exclude-dir='^/(mnt|misc|net|media)/'

9. {} でのグループ化


サポートされていない。

(例)
# clamdscan の場合
ExcludePath ^/{mnt,misc,net,media}/
# clamscan の場合
--exclude-dir='^/{mnt,misc,net,media}/'


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

root で /run/user/1000/gvfs/ にアクセスできない [CentOS]

[ソフトウェアのバージョン]
gvfs-fuse-1.36.2-3.el7.x86_64
OS: CentOS 7.8

1. 発生事象


root で /run/user/1000/gvfs/ にアクセスできない。

# ls -l /run/user/1000/gvfs
ls: cannot access /run/user/1000/gvfs: Permission denied


(補足)
・/etc/fuse.conf に下記の設定を追加しても改善されない。
 user_allow_other、または allow_root
・ClamAV でのウイルス・チェックで不具合が発生する。
 (当該ファイルにアクセスできないため。)


2. 対処方法


gvfs-fuse-1.36.2-3.el7.x86_64 パッケージを削除する。

# rpm -e gvfs-fuse-1.36.2-3.el7.x86_64

[備考]


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Debian 10のlogrotateの不具合 [Debian]

[ソフトウェアのバージョン]
logrotate 3.14.0-4
systemd 241-7~deb10u4
clamdscan 0.102.2+dfsg-0+deb10u1

1. 発生事象


clamd のログファイルの切替が有効とならないことがある。

・該当するファイルは、/var/log/clamav/clamav.log である。
・logrotate でのファイルのローテーションは実行されている。
 (cf. /var/lib/logrotate/status)
・clamd でのログの出力先が切り替っていない。
 ログファイル内のログのタイムスタンプから判断できる。
・Debian 9 (logrotate 3.11.0-0.1) では発生しない。


2. 原因


ブート直後に logrotate が実行されることがあるためである。

(1) logrotate.timer により、ブート直後に logrotate が実行されることがある。


・00:00 に logrotate.timer を実行できない場合、次のブート時に発生する。
・logrotate.timer の設定に依存する。
 ([Timer] 欄の 'Persistent=true' により発生する。)


(2) ブート直後には、当該サービスは下記のような状態と思われる。


・常駐プロセスが起動されており、既にログファイルをオープンしている。
 (常駐プロセスがログファイルを掴んでいる。)
・サービスとしては起動の途中であり、まだ inactive 状態である。


(3) 当該サービスについて、logrotate は下記のような処理を実施する。


・設定されている条件に従い、ログファイルをローテーションする。
・サービスが active 状態の場合、SIGHUP の送信を行う。
 (cf. /etc/logrotate.d/clamav-daemon)


(4) 上記の場合、常駐プロセスでのログファイルの再オープンは実施されない。


・常駐プロセスでの SIGHUP の受信がないためである。
・このため、古いログファイルへの出力が継続される。

(補足)
・当該サービスは clamav-daemon、常駐プロセスは clamd である
・ブート直後以外での logrotate の実行では、問題は発生しない。
 (当該サービスが active 状態のため。)
・Debian 9 では、logrotate.timer は存在しない。
 (anacron は、cron から実行される。)


3. 対処方法


下記の手順により、ブート直後の logrotate の実行を回避する。

(1) /lib/systemd/system/logrotate.timer を変更する場合


(a) /lib/systemd/system/logrotate.timer の編集

# diff logrotate.timer logrotate.timer.org
6d5
< OnBootSec=5min
8a8
> Persistent=true


・[Timer] 欄の 'Persistent=true' の削除
 ブート直後に logrotate が実行されないようにする。

・[Timer] 欄への 'OnBootSec=5min' の追加
 ブートの 5分後に logrotate を実行する。
 (サービスが active なるまでの待ち時間を設けている。)

・anacron の delay に該当する設定項目はない。


(b) 変更内容の反映

# systemctl daemon-reload


(2) /etc/systemd/system/logrotate.timer を作成する場合


(a) /etc/systemd/system/logrotate.timer の作成


/lib/systemd/system/logrotate.timer をコピーする。


(b) /etc/systemd/system/logrotate.timer の編集


/lib/systemd/system/logrotate.timer の場合と同じ。


(c) 変更内容の反映

# systemctl daemon-reload
# systemctl enable logrotate.timer


(補足)
/etc/systemd/system/timers.target.wants/logrotate.timer が存在する。
ファイルの内容は、下記のいずれかである。
・/lib/systemd/system/logrotate.timer へのリンク
・/etc/systemd/system/logrotate.timer へのリンク


[備考]


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Thunderbirdの返信ヘッダーのカスタマイズ [Windows]

1. 背景


Windows 環境において、Thunderbird を時々使用している。
・現在は、Thunderbird 60.9.1 をインストールしている。
・主に使用しているメールソフトは、Linux 上の Mew である。

また、返信ヘッダーをカスタマイズできる適当なアドオンがない。
・SmartTemplate4 アドオンを使用していたが、有料化されたため使用を止めた。
・ReplyWithHeader アドオンを使用してみたが、致命的な不具合が発生する。
 (返信メールへの返信で、返信ヘッダーの Subject から Re: が削除されてしまう。)

よって、適当なアドオンが見つかるまで、Thunderbird の機能で対応することにした。


2. 設定


プロファイル・フォルダの user.js に設定を追加する。
または、設定エディタで該当する設定値を変更する。

尚、設定エディタは、メニューから起動できる。
・[ツール] → [オプション] → [詳細] → [一般] を選択
・[高度な設定] で [設定エディタ] を選択


(1) type-1


(a) user.js の設定

// change reply header
user_pref("mailnews.reply_header_type", 2);
user_pref("mailnews.reply_header_ondateauthorwrote",  \
"On #2 #3, author wrote:");  ← (注1)


(b) 返信ヘッダー

On YYYY/MM/DD hh:mm, author wrote:
…


(2) type-2


(a) user.js の設定

// change reply header
user_pref("mailnews.reply_header_type", 2);
user_pref("mailnews.reply_header_ondateauthorwrote",  \
"---- Original Message (#2 #3) ----");  ← (注1)


(b) 返信ヘッダー

---- Original Message (YYYY/MM/DD hh:mm) ----
…


(注1)
実際には、継続行ではなく一行に設定する。


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

GNOME 3 (flashback mode)からMATEへの移行 (Debian 10) [Debian]

Debian 10 (buster) において、デスクトップ環境の変更を行った。
GNOME 3 (flashback mode) から MATE への移行である。
実施手順は、以下の通りである。
尚、移行後の使用感としては、想定していた以上に良かった。

[パッケージ]
gnome-flashback 3.30.0-3
mate-desktop 1.20.4-2

1. GNOME パッケージのアンインストール
# apt-get purge gnome-*
# apt-get autoremove

2. MATE パッケージのインストール


(1) 最小限のパッケージのインストール

# apt-get install mate-desktop-environment-core


(2) 追加パッケージのインストール


(a) システムモニタ、ゴミ箱のパネルへの追加のためのパッケージ

# apt-get install mate-applets


(b) MATE のメニュー編集用ツール

# apt-get install mozo


(c) スクリーンショットの取得(mate-screenshot) のためのパッケージ

# apt-get install mate-utils


・個別のパッケージになっておらず、mate-utils パッケージに含まれる。
・インストールされる依存パッケージは、下記の通りである。
 libmatedict6
 mate-utils-common


(3) 不要なパッケージのアンインストール


必要とする機能により異なる。
また、必要なパッケージをアンインストールしないように要注意。

(実行例)
# dpkg --purge gnome-user-guide
# dpkg --purge mate-user-guide
# apt-get autoremove


(補足)
下記のコマンドにより、アンインストールできるパッケージの候補を取得できる。

# dpkg -l | awk '/^rc/ { print $2 }'
# dpkg -l | grep -i gnome | awk '{print $1, $2, $3}'

3. 不要なファイルの削除
# apt-get clean
# apt-get autoclean


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Debian 9からDebian 10へのアップデート後の問題点への対応(2) [Debian]

Debian 10 へのアップデート後に発生した問題点への追加対応を行った。
これで、どうにか Debian 9 に近い状態になったと思われる。

尚、以前に行った対応は、下記 URL に記載の通りである。
https://dan-project.blog.ss-blog.jp/2019-10-21

1. [PulseAudio が正常に起動されない] ことへの対応


【発生事象】
・YouTube の音声が出力されない。
・radiko の再生に失敗する。
・X の起動時に 'pulseaudio --start' で PulseAudio を起動するように設定している。

[エラーメッセージ]
pulseaudio[1938]: bind(): アドレスは既に使用中です
pulseaudio[1938]: Failed to load module "module-native-protocol-unix" \
(argument: ""): initialization failed.
systemd[1782]: Starting Sound Service...
pulseaudio[1945]: E: [pulseaudio] pid.c: Daemon already running.
pulseaudio[1945]: E: [pulseaudio] main.c: pa_pid_file_create() failed.
systemd[1782]: pulseaudio.service: Main process exited, code=exited, \
status=1/FAILURE
systemd[1782]: pulseaudio.service: Failed with result 'exit-code'.
systemd[1782]: Failed to start Sound Service.


・原因
 systemd から起動される pulseaudio.service がエラーを発生している。
 (/usr/lib/systemd/user/pulseaudio.service が使用される。)
 また、この状態で 'pulseaudio --start' を実行してもエラーとなる。

【パッケージ】
pulseaudio 12.2-4+deb10u1
pulseaudio-utils 12.2-4+deb10u1
systemd 241-7~deb10u1
systemd-sysv 241-7~deb10u1

【対応】
下記のいずれかの手順を実施する。

(1) 全ユーザー共通の設定を行う場合


下記の手順で、/etc/systemd/user/pulseaudio.{service,socket} を作成する。

# cd /etc/systemd/user
# ln -s /dev/null pulseaudio.service
# ln -s /dev/null pulseaudio.socket


(2) ユーザー毎に設定を行う場合


下記の手順で、~/.config/systemd/user/pulseaudio.{service,socket} を作成する。

% systemctl --user mask pulseaudio.service
% systemctl --user mask pulseaudio.socket


/dev/null へのシンポリック・リンクとして作成される。
これにより、systemd から PulseAudio が起動されないようになる。


2. [MATE 上での pinentry の起動が遅い] ことへの対応


【発生事象】
・pinentry の起動時に 10 秒位待ちが発生する。
 (GPG で暗号化されたファイルを Emacs で開く時に発生する。)
・FVWM 上では発生しない。
・多分、GNOME 上でも発生すると思われる。
・gpg-agent がエラーを発生している。

[エラーメッセージ]
dbus-daemon[4071]: [session uid=1000 pid=4069] \
Activating service name='org.freedesktop.secrets' requested by ':1.28' \
(uid=1000 pid=4344 comm="pinentry --display :0 ")
gnome-keyring-d[2028]: The Secret Service was already initialized
org.freedesktop.secrets[4071]: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
gpg-agent[2021]: Failed to lookup password for key \
u/SC9C4F0F3E63EB945 with secret service: Error calling StartServiceByName \
for org.freedesktop.secrets: Timeout was reached


【パッケージ】
pinentry-gtk2 1.1.0-2
gpg-agent 2.2.12-1+deb10u1
mate-desktop 1.20.4-2

【対応】
下記のいずれかの手順を実施する。

(1) 全ユーザー共通の設定を行う場合


下記の手順で、/etc/systemd/user/gpg-agent.service を作成する。

# cd /etc/systemd/user
# ln -s /dev/null gpg-agent.service


(2) ユーザー毎に設定を行う場合


下記の手順で、~/.config/systemd/user/gpg-agent.service を作成する。

% systemctl --user mask gpg-agent.service


/dev/null へのシンポリック・リンクとして作成される。
これにより、systemd から gpg-agent が起動されないようになる。


3. [古いバージョンの Firefox で radiko を再生できない] ことへの対応


【発生事象】
・Firefox 52.9.0 ESR で 発生する。
・Firefox Quantum 68.2.0 ESR では発生しない。

[エラーメッセージ]
libavcodec に脆弱性があるかサポートされていません。
動画を再生するには libavcodec を更新してください。


【パッケージ】
Firefox 52.9.0 ESR
libavcodec53:i386 6:0.8.17-1
libavcodec58:i386 7:4.1.4-1~deb10u1

【対応】
取り敢えず、いずれかの手順で media.libavcodec.allow-obsolete の設定値を変更する。

(1) <firefox-profile_dir>/user.js を編集する場合


下記の設定を追加する。

user_pref("media.libavcodec.allow-obsolete", true);


(2) about:config にアクセスする場合


・media.libavcodec.allow-obsolete を検索する。
・media.libavcodec.allow-obsolete の設定値を変更する。
 false(初期値) から true に変更する。


4. [SSL でのメール受信ができない] ことへの対応


【発生事象】

[エラーメッセージ]
OpenSSL reported: error:141A318A:SSL routines:tls_process_ske_dhe:dh key \
too small
SSL connection failed.


【パッケージ】
openssl 1.1.1d-0+deb10u2

【対応】
/etc/ssl/openssl.cnf を編集し、セキュリティ・レベル(SECLEVEL)を変更する。

# cd /etc/ssl
# diff openssl.cnf openssl.cnf.org
362c362
< CipherString = DEFAULT@SECLEVEL=1
---
> CipherString = DEFAULT@SECLEVEL=2


(補足)
・必要なら、MinProtocol の設定も変更する(SSL でのメール送信の失敗への対応)。
 (MinProtocol = TLSv1)
・OpenSSL のセキュリティ・レベル(SECLEVEL)の説明
 https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_security_level.html


5. [stunnel4 の自動起動に失敗する] ことへの対応


【発生事象】

[エラーメッセージ] - /var/log/syslog
stunnel4[699]: [!] error queue: 140DC002: \
error:140DC002:SSL routines:use_certificate_chain_file:system lib
stunnel4[699]: [!] error queue: 20074002: \
error:20074002:BIO routines:file_ctrl:system lib
stunnel4[699]: [!] SSL_CTX_use_certificate_chain_file: \
2001002: error:02001002:system library:fopen:No such file or directory
stunnel4[699]: [!] Service [pop3s]: Failed to initialize TLS context
stunnel4[699]: [ ] Deallocating section defaults
stunnel4[699]: failed
stunnel4[699]: You should check that you have specified \
the pid= in you configuration file
systemd[1]: stunnel4.service: Control process exited, \
code=exited, status=1/FAILURE
systemd[1]: stunnel4.service: Failed with result \
'exit-code'.
systemd[1]: Failed to start LSB: Start or stop \
stunnel 4.x (TLS tunnel for network daemons).


・原因
 /etc/default/stunnel4 の設定で自動起動を無効化できなくなった。
 ・'ENABLED=0' (←自動起動しない)の設定がない。
 ・'ENABLED=0' の設定を追加しても効果がない。
 このため、stunnel4 が自動起動され、起動の過程でエラーが発生している。

【パッケージ】
stunnel4 3:5.50-3

【対応】
stunnel4 の自動起動を無効化する。

# systemctl disable stunnel4
または
# systemctl mask stunnel4


(補足)
Mew の SSL でのメール送信で使用しており、特に問題なく送信できる。
(必要な時に stunnel4 コマンドが実行される。)
よって、自動起動を無効化のみで、これ以上の対応は行わない。



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Debian 9からDebian 10へのアップデート後の問題点への対応 [Debian]

Debian 9.11 (stretch) から Debian 10.1 (buster) へのアップデートを行った。
以下は、アップデート後に発生した問題点と対応方法をまとめたものである。

[一般的なアップデート方法]
・使用中のリポジトリでの最新パッケージへの更新
・参照するリポジトリの変更 (/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 の問題と思われる。



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。