SSブログ

Debian 11へのアップグレード後の不要パッケージの削除 [Debian]

Debian 11 へのアップグレードにより、不要なパッケージが多数発生した。

・'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 パッケージを再インストール



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

Debian 11へのアップグレード後の問題点への対応 [Debian]

先日、Debian 10.10 から Debian 11.0 へのアップグレードを行った。
致命的なエラーは発生しなかったが、数個のパッケージで問題が発生した。
以下は、上記の発生事象と対処方法をまとめたものである。

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



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

Debian 11へのアップグレード [Debian]

Debian 10.10 (buster) から Debian 11.0 (bullseye) へのアップグレードを行った。
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 … 一部の機能が正常に機能しない

(備考)
対応方法について、現在調査中。



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

Rocky Linux 8.4の最小インストール [Linux]

Rocky Linux 8.4 について、KVM 上の VM へのインストールを行った。
CentOS から Rocky Linux へ移行するための準備である。

当初は boot.iso を使用する予定であったが、メタデータのダウンロードがなかなか終了しない状態となってしまい、取り敢えずは minimal.iso を使用してインストールを行った。
その後、状況が改善したため、boot.iso でのインストールを行った。
このため、2 種類の iso を使用したインストールで構築される環境についての比較を行った。

詳細は、以下の通りである。
(手順的には、CentOS 8.3 の場合と同じである。)

1. インストールで使用する iso ファイルのダウンロード


Rocky-8.4-x86_64-boot.iso
または
Rocky-8.4-x86_64-minimal.iso


2. インストーラーの起動


KVM の機能を使用して、インストーラーを起動する。

(1) ディスク・イメージの作成

(例)
# qemu-img create -f qcow2 /var/lib/libvirt/images/rocky-8_1.qcow2 6.0G


(2) VM の作成とインストーラーの起動

(例)
# virt-install --virt-type kvm \
--name rocky-8_1 --vcpus 1 --memory 1024 \
--disk path=/var/lib/libvirt/images/rocky-8_1.qcow2 \
--cdrom /shared_tmp/iso/rocky-linux/Rocky-8.4-x86_64-boot.iso


下記のメッセージが出力されるまで待ち、virt-manager を起動する。

Starting install...
Domain installation still in progress. Waiting for installation to \
complete.


(3) virt-manager の起動

# virt-manager


(4) 作成された VM への接続


該当する VM を右クリックし、[Open] を選択する。


3. インストールの実施

3-1. 言語の選択


・[日本語] を選択する。
・[続行] を選択する。


3-2. インストール方法の選択とインストールの開始


(1) ネットワークとホスト名の設定


・[全般] タブで、[優先的に自動接続する] を選択する。
・[IPv6] タブで、[無効] の選択、または適当な設定を行う。
・[IPv4] タブで、IPアドレス、GW、DNS サーバー、ホスト名を設定する。
・[IPv4] タブで、右側上部の [オン] を選択し、[接続済み] 状態にする。

(補足)
boot.iso の場合、メタデータのダウンロードが開始される。


(2) 時刻と日付の設定


・[アジア/東京] を選択する。
・右側上部の [ネットワーク時刻] で [オン] を選択する。

(補足)
boot.iso の場合、初期値でのメタデータのダウンロードがエラー終了する。
これにより、インストールソースの設定変更が可能となる。


(3) root パスワードの設定

(4) インストールソースの設定


boot.iso の場合、下記の内容でインストールソースを設定する。

・[ネットワーク上] を選択
・[ftp://ftp.riken.jp/Linux/rocky/8.4/BaseOS/x86_64/os/] を指定


(5) KDUMP の無効化


[kdump を有効にする] を選択しない。


(6) インストール先の設定


ストレージの設定で [自動構成] が選択されていることを確認する。


(7) ソフトウェアの選択


[最小限のインストール] を選択する。


(8) インストールの開始


・右下の [インストールの開始] を選択する。
・インストールの終了後、右下の [システムの再起動] を選択する。


4. 備考


(1) 使用する iso ファイルによるインストール・パッケージの違い


・Rocky-8.4-x86_64-boot.iso (720MB)
・Rocky-8.4-x86_64-minimal.iso (1.9GB)

minimal.log の場合、logrotate、rsyslog がインストールされない。
上記パッケージの追加とパッケージの更新後の比較結果は、以下の通りである。

# diff pkg_list_mininal.log pkg_list_boot.log
> geolite2-city-20180605-1.el8.noarch
> geolite2-country-20180605-1.el8.noarch

< glibc-all-langpacks-2.28-151.el8.x86_64
> glibc-langpack-ja-2.28-151.el8.x86_64
> langpacks-ja-1.0-12.el8.noarch

> libestr-0.1.10-1.el8.x86_64
> libevent-2.1.8-5.el8.x86_64
> libfastjson-0.99.8-2.el8.x86_64
> libmaxminddb-1.2.0-10.el8.x86_64
> libsecret-0.18.6-1.el8.x86_64
> libxkbcommon-0.9.1-1.el8.x86_64
> pinentry-1.1.0-2.el8.x86_64

> plymouth-0.9.4-9.20200615git1e36e30.el8.x86_64
> plymouth-core-libs-0.9.4-9.20200615git1e36e30.el8.x86_64
> plymouth-scripts-0.9.4-9.20200615git1e36e30.el8.x86_64
> python3-unbound-1.7.3-15.el8.x86_64


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

GmailのPOPサーバーにおいて、メールの存在を認識できないことがある [Linux]

1. 発生事象


Gmail の POP サーバーにおいて、メールの存在を正しく認識できないことがある。
このため、クライアント側での既読情報の管理には工夫が必要である。

(例)
(1) 時刻 X + 0 分の確認結果: 3 通のメールが存在
  この時点でのクライアントの管理情報を下記のようにする。
  ・未読のメール数/メールの総数: 3/3
  その後、すべてのメールを参照し、クライアントの管理情報を下記のようにする。
  ・未読のメール数/メールの総数: 0/3
(2) 時刻 X + 10 分の確認結果: メールなし ← 実際には 3 通のメールが存在
  メールが存在しないため、既読メールに関する情報が初期化される。
  よって、クライアントの管理情報は下記のようになる。
  ・未読のメール数/メールの総数: 0/0 ← 正しくは 0/3
(3) 時刻 X + 20 分の確認結果: 3 通のメールが存在
  3 通を新規メールと判断し、クライアントの管理情報は下記のようになる
  ・未読のメール数/メールの総数: 3/3 ← 正しくは 0/3
(4) メールの存在が認識される場合には、メールの UID は正しい値が得られる。


・メールが存在する場合に、メールなしと回答されることがある。
・発生頻度は低い。
 2021-08 の上旬に数回発生した。
・少し時間をあけ再実行すると、正しい結果が得られる。
 現在、10 分毎に確認を行っている。
・現時点では、Gmail 以外の POP サーバーでは発生していない。
・存在確認には、Perl の Mail::POP3Client.pm を使用したスクリプトを使用している。


2. 対処方法


上記のスクリプトに、下記の機能を追加する。


(1) クライアント側で既読情報を一定の期間保持する。


(変更前)
サーバー上で存在が確認されたメールの既読情報しか保持しない。

(変更後)
一度作成した既読情報は、メールなしと判断された後も一定期間保持する。
・例えば、メールなしと判断された後の 3 回目の確認時まで保持する。



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

CentOS 8でのネットワークの自動起動 [CentOS]

CentOS 8 に久しぶりにログインしたところ、ネットワークが有効にならなかった。
原因は、Network Manager の自動起動を無効化していたためである。
(環境構築の最後に、Network Manager の自動起動を無効化していた。)
CentOS 8 では、Network Manager を起動しないと、ネットワークが有効にならない。
(CentOS 7 では、このようなことは発生しない。)

Network Manager は余分なことをしようするため、個人的には使用したくない機能である。
以下は、CentOS 8 において、Network Manager を使用しない場合の設定に関する情報である。

1. 発生事象


CentOS 8 では、Network Manager を起動しないと、ネットワークが有効にならない。


2. 対処方法


下記のいずれかの手順を実施する。


(1) Network Manager を使用しない場合


(a) 下記のパッケージの追加を行う。

・network-scripts.x86_64
・net-tools.x86_64 … ifconfig 等のコマンドを使用する場合


パッケージの依存関係により、下記のパッケージがインストールされる。
・network-scripts-team.x86_64
・bc.x86_64


(b) network.service を起動する。

# systemctl enable network
# systamctl start network


(2) Network Manager を使用する場合


(a) Network Manager による /etc/resolv.conf の更新を無効化する。


/etc/NetworkManager/NetworkManager.conf に下記の設定を追加する。

[main]
dns=none


(b) Network Manager を起動する。

# systemctl enable NetworkManager
# systemctl start NetworkManager


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

GmailからのPOP受信で有用なフィルターの設定 [misc]

現在、Gmail を下記のように使用している。

・PC では、POP/SMTP サーバーを使用してメールの送受信を行う。
 必要時に、POP サーバーを使用してメールを受信する。
 必要時に、SMTP サーバーを使用してメールを送信する。
 定期的に、POP サーバーにアクセスしてメールの有無を確認する。
・スマホでは、Gmail アプリを使用してメールの送受信と参照を行う。
・Gmail の設定変更は、PC から Gmail にログインして行う。

以下は、上記の使用方法において、有用と思われるフィルターの設定についての説明である。

1. 送信済みメールを POP で新着メールとしないための設定
条件: in: sent    ← [含む] 欄で指定
処理: 既読にする、削除する

2. 特定のアドレスからのメールを迷惑メールしないための設定
条件: from: xxx    ← [From] 欄でアドレスを指定
処理: 迷惑メールにしない、カテゴリ "メイン" を適用

3. ゴミ箱の保存期間を 14 日に短縮するための設定
条件: in:trash AND older_than:14d    ← [含む] 欄で指定
処理: 削除する


(追記)
設定としては間違っていないが、下記の理由から機能しないことが判明した。
・ゴミ箱、および迷惑メール内のメールについては、フィルター処理の適用外となる。
 (検索はできるが、検索されたメールへの処理が実施されないようである。)



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

Firefox でのGoogle 翻訳、PDF Viewerのフォント指定 [misc]

[ソフトウェアのバージョン]
Firefox 78.11.0 ESR

1. 発生事象


Firefox において、Google 翻訳、PDF Viewer の表示で下記の問題が発生する。
また、[ウェブページが指定したフォントを優先する] を選択すると改善される。

(1) Google 翻訳


アイコンの表示がおかしい。

・上部の [テキスト/ドキュメント] ボタンのアイコン
 英語で表示され、ボタンのタイトルと重なる。
・中央部の [言語の入れ替え] ボタンのアイコン
 英語で表示され、言語名と重なることがある。


・ウィンドウの幅が狭い状態では、発生しない。
 言語の候補が入出力で 3 個ずつ表示された状態で、発生する。


(2) PDF Viewer


エラー・メッセージが表示され、一部または全部が表示されないことがある。

[エラー・メッセージ]
この PDF 文書はサポートされていないため正しく表示できない可能性があります。

2. 対処方法
[ウェブページが指定したフォントを優先する] を選択しない。
・すべてのページで適用され、デメリットが大きいため。


(1) Google 翻訳


(a) 上部のボタンの表示を補正する場合


不要なコンテンツを削除するためのフィルターやスタイルを追加する。
uBlock Origin の場合には、[Myフィルター] に、下記のエントリーを追加する。

# ボタン上のアイコンを削除する場合 (後から 4 文字目は数字の 0)
translate.google.co.jp##.ep0rzf
# ボタンを削除する場合 (後から 2 文字目は大文字の o)
translate.google.co.jp##.hgbeOc


・2018-11 の変更で、Material Icons が使用されるようになった。
 この部分のアイコンが表示できない時に、上記の問題が発生する。


(b) 別の翻訳サイトを使用する場合

(例)
・Bing 翻訳
 https://www.bing.com/translator/
・DeepL 翻訳
 https://www.deepl.com/ja/translator
・Weblio 翻訳
 https://translate.weblio.jp/


(2) PDF Viewer


(a) PDF Viewer で表示する場合

・問題の発生時に、[ウェブページが指定したフォントを優先する] を選択する。
・PDF Viewer の出力を再読み込みする。
・PDF Viewer の使用後、上記のフォント選択を元に戻す。


(b) 他のビューアーで表示する場合

問題の発生時には、[ほかのビューアーで開く] ボタンが表示される。
よって、表示されたボタンをクリックし、他のビューアーを選択する。


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

CentOS 7でgpmが機能しない問題の再発 [CentOS]

[ソフトウェアのバージョン]
gpm-1.20.7-6.el7.x86_64
gpm-libs-1.20.7-6.el7.x86_64
kernel-3.10.0-1160.25.1.el7.x86_64

1. 発生事象


CentOS 7 で gpm が機能しない。

・マウスカーソルが表示されず、使用できない。
・カーネルのアップデートにより、再度、再発するようになった。
 必ず発生するわけではなく、発生頻度は 10% 未満と思われる。
 (以前よりは発生頻度が低くなっている。)
 cf. https://dan-project.blog.ss-blog.jp/2019-10-16
・関係するようなエラー・メッセージは、出力されていない。

(補足)
・2 ノードでディスプレイを共有している(切替器で切り替えて使用)。
・同一ノードでマルチ・ブートする Debian 10 では、発生しない。
 (systemd ではなく、rc ファイルで起動している点が異なる。)
 gpm 1.20.7-5
 linux-image-3.16.0-4-686-pae 3.16.43-2
・systemd での起動を無効化し、/etc/rc.local で起動しても改善されない。
 'gpm -m /dev/input/mice -t exps2' で起動。


2. 対処方法


現時点では、根本的な原因を特定できていない。
また、使用頻度、発生頻度ともに低いため、取り敢えずは下記の手順で対応を行う。

(1) ディスプレイの接続状態の維持


ディスプレイを共有する環境では、ブート完了までディスプレイを占有する。


(2) 上記の問題が発生した場合には、X Window System を起動


X Window System を起動し、X のコピー・ペースト機能を使用する。

尚、どうしてもコンソールを使用したい場合には、リブートを実施する。
ほとんどの場合、1-2 回のリブートで改善される。



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

Mewのメール返信で引用する送信日付のフォーマット変更 [Linux]

[ソフトウェアのバージョン]
Mew 6.8 on Emacs 26.1
Mew 6.3 on Emacs 24.3.1

Mew のメール返信で、mew-cite-fields、mew-cite-format を使用して送信日時を引用する場合、メールヘッダーの Date: 行の値が使用される。
今回は、これを 'YYYY-MM-DD hh:mm:ss tz' のように変更する。

(理由)
・曜日の情報が不要。
・日付のフォーマットが複数存在。
 (曜日の有無、秒の有無)

詳細は、以下の通りである。

1. 変更前後での引用のイメージの違い(例)


(1) 変更前

On Tue, 8 Jun 2021 01:23:34 +0900 :
  From: xxx
  Subject: xxx

> ...


(2) 変更後

On 2021-06-08 01:23:34 +0900 :
  From: xxx
  Subject: xxx

> ...

2. 設定


~/.mew.el の mew-cite-format の設定の後に、下記の設定を追加する。

(setq mew-cite-strings-function 'my-mew-cite-strings)
(defun my-mew-cite-strings ()
  (let ((date (mew-cite-get-value mew-date:))
        (str (mew-cite-strings))
        item tmzn)
    (if (not (string-match mew-time-rfc-regex date))
        str
      (setq item (parse-time-string date))
      (setq date
            (format "%04d-%02d-%02d %02d:%02d:%02d"
                    (nth 5 item)
                    (nth 4 item)
                    (nth 3 item)
                    (nth 2 item)
                    (nth 1 item)
                    (nth 0 item)))
      (when (setq tmzn (nth 8 item))
        (setq tmzn (format "%+03d%02d" (/ tmzn 3600) (/ (% tmzn 3600) 60)))
        (setq date (concat date " " tmzn)))
      (replace-regexp-in-string "^On [^\n]+"
                                (format "On %s :" date)
                                str))))


・mew-time-rfc-regex を使用するチェックは、異常な値を除外するためである。
・mew-time-rfc-regex は、有効なデータを下記のように定義している。
 下記の項目を空白文字で連結した文字列
 日(数字)
 月(文字列)
 時分秒(数字を : で接続。秒は省略可。)
 タイムゾーン(符号付きの数字、または文字列。省略可。)



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