「Webで情報発信するというのは世界に向けて話している」の真の実現

Xで自動翻訳しておすすめとして提示する機能が実現された。

Grok が他の言語の 𝕏 投稿を自動的に翻訳して推奨する機能が動作し始めています。

一方でBBQの話題でほっこりしそうな方向がある(その裏にはドロドロした愛国心がありそうだけど)。
news.yahoo.co.jp

もう一方で、バカッター(内輪の悪乗りをTwitterで発信して問題になる現象をこう揶揄していた)が発生している。発端は、日本国内に向けて排外主義的投稿で閲覧数を集めていると思われるアカウントの以下の投稿。

迷惑系外国人、購入前のカップラーメンを勝手に開封
お湯まで入れてしまい店員さんガチギレ😱🦁

上記の動画について、やりとりを文字起こしされた方のポストがこれ。


話戻って、「迷惑外国人」とラベリングしたポストに対してタイから日本語でタイの話題を届けているアカウントから以下のようなポストがくる。

それに対して以下のような反応がつく。


元のポストや上のポストなどに対して、タイ人から反応が多く寄せられる。たとえばこういうの(日本語訳はXの自動翻訳をコピーしている)。

もしこれがタイで起きたら、周りの従業員やその場にいる人たちはきっと笑って一緒に教えてくれるだろうし、ネット民のコメントも励ましつつ、親しみを込めた軽いツッコミで笑える感じになるだろう。でも、日本人の場合、そうはならない。深刻に捉えて、できるだけ早く他人を責めてしまうんだよ。 . .

日本の奴らもめっちゃ罵り合って、犯罪だとか言ってるよな、エイバカ。誰がカウンター前で待ってる間にインスタントラーメン盗んで食うかよ。タイじゃ支払う前に熱湯かけて開けられるんだからさ。単なる誤解か、慣れっこになってるだけだろ。お前らが俺らの国に来て何も知らねえのに、タイ人なんて優しく教えてやるよ。タイ人がちょっとしたミスしたら、お前らめっちゃ罵倒してくるよな。じゃあ俺もお前らを罵ってやるよ。

一件シェアしたいことがあります。
私は、日本人の男性がトイレを間違えそうになったところに出くわしたことがあります。彼はタイ語が読めなかったんです。私は彼が正しいトイレに入れるよう、コミュニケーションを取って助けようとしました。

動画で起きた問題も、ただお互いに理解し合えなかっただけです。優しく注意すればいいんです(将来、看板を作って貼っておくのもいいかも)。彼に悪意なんてないんですよ。誰だって生まれたときから、ミスを犯すことはありますよね 😅

2026年のニュースだよ。日本人が左から車で追い越して、道端を歩くタイ人をはねちゃった。袋ラーメンを開けるのがそれよりも重い犯罪かな…。

簡単に言うと、今の日本は観光客を欲しがっていないし、歓迎もしていないんだ。ちょっとしたことでもダメで、日本人はあなたの行動を非難するよ。最近よくニュースで見るけど、日本人がわざとぶつかって転ばせるんだ。子供だろうが大人だろうが関係ない。日本は先進国だけど、人間関係はタイよりずっと劣ってるよ。

タイには年間30〜40百万人もの観光客がいます。私たちは多くの混乱した観光客に出会いますが、叱りつけるよりも助けることを選びます。もしこのことがタイで起きたら、誰も叱りません。この件で日本人の見方が完全に変わりました。とても心が冷たいです。

ルール知らないのはお互いさまでしょという日本人からのポスト。

この日本 vs タイの言及合戦についての英語によるまとめポスト(日本語訳はリンク先のポストをみてください)。フェアなまとめ。

タイについて詳しい日本人もこういう感想に。


かくして、数日前までは日本国内の愛国ビジネスで閉じていた話が世界に広がり、いわゆる「親日国」を減らしていく事態に。十数年前から新入生向けの講義で「Webで情報発信するというのは世界に向けて話している」と言っていたけど、頭の片隅では「でも、日本語でかかれてれば読むのは日本語話者だけだけど」というのがあったけど、イーロンが余計な事してくれたおかげで、「つぶやき」が世界に飛び交うようになってしまった。

再掲:うつ病や双極性障害は講義において合理的調整を求められます

まとめ

  • すべての大学では合理的調整(合理的2024年4月の改正障害者差別解消法施行により、私立大学を含むすべての大学で障害のある学生への「

合理的配慮」の提供が法的義務となりました。)を行うことが義務付けられています。

  • 身体的障害だけでなく、神経発達症(発達障害)や精神的障害も配慮すべき障害として認められています。
  • 大学における合理的調整の中心的な考えは「成績評価のダブルスタンダードは設けない」です。
  • このため、合理的調整は「ずる」ではありません。
  • うまくいかなかった前学期のことはおいておいて、新年度は合理的調整を申請して、新しい気持ちで学業に取り組みましょう。

大学における合理的調整(合理的配慮)

2016の試行時には国立大学では義務、私立大学では努力義務でしたが、2024年4月の改正障害者差別解消法施行により、私立大学を含むすべての大学で障害のある学生への「合理的配慮」の提供が法的義務となりました。

合理的「配慮」だと、健常者集団に「配慮してもらう」という印象が強いので合理的「調整」という呼び方の方が適していると主張している方々もいます。私も賛同します。
shohgaisha.com

──令和6年4月から障害者差別解消法が改正され、合理的配慮の提供が民間事業者にも義務化されましたが、日本の「障害者差別解消法」に対して思うところがあれば、お聞かせください
「作家としてここは『言葉』について語ります。『合理的配慮』という訳はほとんど誤訳と言ってよく、今からでも『合理的調整』とするべきだと考えています。例えば『rights』は『権利』ではなく『権理(権理通義)』(by福沢諭吉)と訳すべきだった、つまり『利』という字のネガティブな印象のせいで人権を理解できない国民になってしまったという話もあるように、こうした言葉の誤選択は国民の精神性に悪影響を及ぼし尾を引いたりするので、私は意地でも『合理的調整』と書いていこうと思います」

大学の講義における合理的配慮の中心的な考えは「成績評価のダブルスタンダードは設けない」です。学力を測る際の段差を合理的配慮で埋めた上で、他の学生と同等の基準で成績評価を行うという考え方になります。

内容決定の際の留意事項:教育の目的・内容・評価
合理的配慮の内容が妥当かどうかの判断基準として、教育の目的・内容・評価の本質を変えないという原則があります。合理的配慮としてできること、できないことの基準が明確となるよう、これらの本質は明確にして公開される必要があります。具体的には、次に挙げる教育に関する三つのポリシーや授業のシラバスがそれに当たります。判断の基準になるよう、抽象的で形式的記述ではなく、具体的であることが期待されます。
日本学生支援機構:合理的配慮ハンドブックより)

合理的調整の対象範囲に神経発達症(発達障害)や精神的障害も入る

障害というと身体的障害を思い浮かべる方も多いと思いますが、日本学生支援機構が出している「教職員のための障害学生修学支援ガイド」では、発達障害や精神的障害も配慮すべき障害として例示されています。

発達障害は、これまで乳幼児や児童の問題とされてきました。しかしながら、その特徴や問題は長期にわたって変わらずに続くこと、知的に問題はなくとも発達障害のある人がとても多いことが指摘されています。平成16年12月に成立した発達障害者支援法第八条第2項では「大学及び高等専門学校は、発達障害者の障害の状態に応じ、適切な教育上の配慮をするものとする。」と明記され、支援の必要性が示されました。大学等においてもかなりの学生にこの障害があると想定されるため、発達障害も“障害”の一つとして、その困難さに応じた支援が必要です。

第6章 1 支援ガイド 発達障害とはより

大学生の年代にあっても精神疾患はもはや珍しいものではありません。自殺が依然として大学生の死因の上位を占めており(大学における休・退学、留年学生に関する調査、平成23年)、精神疾患の早期発見に力を注ぐ大学もあります。従来、精神疾患のある大学生の多くが、症状が増悪した時に休学し、回復したら復学するという決断をしてきました。そのため、療養に専念する期間が数か月程度でも半年単位の休学や留年を経験することがしばしばありました。大学生の年代に見られる精神疾患の多くは医学的治療によってかなりの程度まで回復が期待できますが、復学の時点では、必ずしも通常のレベルで修学や生活に取り組めるとは限らず、症状が残遺したり知的作業の能力が十分に回復していなかったりします。このように平均的な状態から多少とも偏りが認められる精神状態が続くようであれば、精神障害のある学生として修学上の配慮や環境調整が必要となるでしょう。そこで復学が決まったら、支援を申請する手続きや具体的な支援内容の決定について検討されることになります。

 精神障害のある学生に提供される合理的配慮は、各人の精神疾患固有の経過や症状を理解した上で、個別的な対応を決定するプロセスの基礎をなします。精神障害のある学生の支援について、大学として明確なポリシーを発信することが重要です。

第7章 1 支援ガイド 精神障害とはより

精神障害の例として以下のものがあげられています(主な精神障害より)。
1. 統合失調症
2. 気分障害(大うつ病性障害、双極性感情障害を含む)
3. 不安性障害
4. 睡眠障害
5. 高次脳機能障害

また、主な精神障害のページにはそれぞれの障害について「どのような疾患か 」「どのような困難があるか 」「どのような支援・配慮が必要か」が説明されています。

気分障害(大うつ病性障害、双極性感情障害を含む)の「どのような困難があるか 」は以下のとおりです(赤字強調はnext49による)。

気分障害は、軽度であれば病感や病識が十分にないまま年月を経過することがありますが、多大なストレスに遭遇するなどのきっかけにより、社会生活や体調の面で急激に支障が生じることがあります。試験や授業への出席が困難になって欠席が続いたり、教職員や家族からの連絡に無反応になったりします。うつ状態があると、集中力や意欲が低下して修学が全般的に困難になり、さらに対人関係を避けたり、物事を決断できなくなったりします。深刻な状態の時期に講義や試験が重なった場合、支援を申請して変更・調整を講じてもらうか、あるいは進学や卒業を延期することもあります。また、就職活動をしている時期に不調に陥ると、就職、卒業論文、履修などが予定どおりにこなせず、留年や休学を余儀なくされる場合があります。このような場合、なるべく早急に診断書を提出して休養や休学、あるいは支援つきの試験を受けるなど、具体的な支援を選択することが大切です。

気分障害の配慮例としては以下のようなものが考えられると思います。これらが配慮されているだけで、だいぶ講義を受けやすくなると思います。

  • 遅刻や欠席を成績評価に反映させない(うつ状態のときには起きられない/家から出られない場合もあるため)
  • 中間試験や期末試験を欠席した場合、可能であるならば再試験を行う(同上)
  • レポートなどの提出日の延期を認める(同上)
  • 欠席した講義のレジュメなどを渡す(同上)
  • 人前でのプレゼンテーションやグループワークなど免除する(ストレス要因を減らす)
  • 講義中の水分摂取を許可する(服薬のため)

状況別の配慮事例としては場面一覧にあります。

これから太陽光が増え、精神的な状況が多少はましになる季節です。比較的調子がよいうちに講義において合理的調整をもとめて、生きづらい環境を少しでもマシなものにしていきましょう。

Debian GNU/Linux 13上でroundcubeを1.6.1から1.6.14へアップグレード

はじめに

これまでDebian GNU/Linux上で roundcube 1.6.1を稼働させてきた。

Debian12を13へアップグレードした際には、roundcubeは動いているように見えたが、dovecotの設定変更にともない動いていない部分があった。

不具合の解消ついでにroundcubeも1.6.1から1.6.14へアップグレードした。

前提

% cat /etc/debian_version
13.3

%  php -v
PHP 8.4.16 (cli) (built: Dec 18 2025 21:19:25) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.16, Copyright (c), by Zend Technologies

roundcubeのアップグレード

Roundcube公式より、最新版のソースコードをダウンロードする。

% cd /tmp
% wget https://github.com/roundcube/roundcubemail/releases/download/1.6.14/roundcubemail-1.6.14-complete.tar.gz
% tar xvfz roundcubemail-1.6.14-complete.tar.gz
% sudo mv roundcubemail-1.6.14 /var/lib
% cd /var/lib

現在の /var/lib/roundcube は /var/lib/roundcubemail-1.6.1へのシンボリックリンクなので作り直す。

% sudo rm roundcube
% sudo ln -s roundcubemail-1.6.14 roundcube
% sudo chown root:root roundcube -R
% cd roundcube
% sudo chown www-data:www-data temp logs -R

プラグインや設定ファイルをコピーする。元の設定ファイルやプラグインは /var/lib/roundcubemail-1.6.1 以下にあるとする。設定ファイルをコピーする。

%  pwd
/var/lib/roundcube

% cd config
% cp -p /var/lib/roundcubemail-1.6.1/config/config.inc.php

roundcube 1.6.1にプラグインを追加するで追加したプラグインをコピーする。

まず、contextmenu(右クリックでメニューを表示するプラグイン)をコピーする。GitHub - johndoh/roundcube-contextmenu: Adds context menus to various parts of Roundcubeをみると、前回インストールしたときからバージョンの変更がないため、そのままコピーする。

% cd /var/lib/roundcube/plugins
% cp -pr /var/lib/roundcubemail-1.6.1/plugins/contextmenu .

続いて、managesieve(サーバサイドのメールフィルター機能プラグイン)をコピーする。このプラグインはroundcubeに標準搭載のため、dovecotの設定ファイルを2.4版に対応させればよい。dovecotの2.3版から2.4版への設定ファイルの変更についてはDebian GNU/Linux 12から13へのアップグレード覚書を参照のこと。ここでは当該ページで編集していなかった設定ファイルのみ記載する。まず、15-lda.conf 。

% cd /etc/dovecot/conf.d
% sudo cp -p 15-lda.conf 15-lda.conf.org
% sudo vi 15-lda.conf

編集結果は以下の通り。

%  diff 15-lda.conf.org 15-lda.conf
47,49c47,49
<   #mail_plugins {
<   #   sieve = yes
<   #}
---
>   mail_plugins {
>      sieve = yes
>   }

続いて 20-lmtp.conf。

% sudo cp -p 20-lmtp.conf 20-lmtp.conf.org
% sudo vi 20-lmtp.conf

編集結果は以下の通り。

% diff 20-lmtp.conf.org 20-lmtp.conf
40,41c40,41
< #  mail_plugins {
< #    sieve = yes
---
>   mail_plugins {
>     sieve = yes

dovecotの設定ファイルを編集したので、dovecotを再起動する。

% sudo systemctl restart dovecot

以下のプラグインは設定ファイル config.inc.phpに記載するだけのため、pluginsからコピーする必要はない。

  • 指定した行より多い引用を隠す(hide_blockquote)
  • 添付ファイルの一時置き場の指定(filesystem_attachements)
  • ヘルプ(help)

Two Factor Authenticationはファイルのコピーが必要。

% cd /var/lib/roundcube/plugins
% cp -pr /var/lib/roundcubemail-1.6.1/plugins/xframework .
% cp -pr /var/lib/roundcubemail-1.6.1/plugins/x2fa .

ログのタイムゾーン設定

phpを8.2から8.4にアップグレードしたため、タイムゾーンの設定をし直す必要がある。

roundcubeのエラーログに使われているタイムゾーンはphpのタイムゾーンが使用される。標準ではUTCになっているため、日本時間(JST)に変更する。今回は php8.4-fpmを利用しているため、設定ファイルのphp.iniは/etc/php/8.4/fpmにある。

% sudo vi /etc/php/8.4/fpm/php.ini

タイムゾーンの記載を以下のようにする。

% grep timezone /etc/php/8.4/fpm/php.ini
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
;date.timezone =
date.timezone = "Asia/Tokyo"

確認

以下のログを見て、適切に起動しているか確かめる。

  • Apacheのログ:/var/log/apache2/error.log
  • roundcubeのエラーログ: /var/lib/roundcube/logs/error.log
  • postfixやdovecotのログ: /var/log/mail.log

メモ:生成AIを用いて執筆されたサーベイ「Vocabulary, Corpus and Language Teaching: A Machine-Generated Literature Overview」

Xのポストで流れてきたのでメモ。

出版企画のお誘いを海外の数社からいただいているのだけど、Springer Natureだけは、この「ハルシネーションばかりで実在しない論文を挙げている、全部生成AIで書いた丸投げ本」が出版され続けている限り、絶対に仕事はしません。
Vocabulary, Corpus and Language Teaching: A Machine-Generated Literature Overview | Springer Nature Link

当該の書籍。
link.springer.com

About this book

This book is the result of a collaboration between a human editor and an artificial intelligence algorithm to create a machine-generated literature overview of research articles analyzing the importance of ESL/EFL vocabulary and corpus studies. It is a new publication format in which state-of-the-art computer algorithms are applied to select the most relevant articles published in Springer Nature journals and create machine-generated literature reviews by arranging the selected articles in a topical order and creating short summaries of these articles.

This comprehensive book explores ESL/EFL vocabulary and corpus studies from five main perspectives: acquisition, strategies, ICT, corpus, and current practices. The sections delve into topics such as the impact of technology on learning, the power of corpora in language education, and innovative vocabulary-development techniques.

This book is an essential resource for researchers, educators, and language facilitators seeking a deeper understanding of vocabulary within ESL/EFL teaching and learning contexts.


DeepL訳
本書について
本書は、ESL/EFLの語彙およびコーパス研究の重要性を分析した研究論文の文献概要を機械生成するために、人間の編集者と人工知能アルゴリズムが共同で作成した成果です。これは、最先端のコンピュータアルゴリズムを適用し、Springer Natureのジャーナルに掲載された最も関連性の高い論文を選定し、それらをトピック順に整理して短い要約を作成することで、機械生成された文献レビューを生成するという、新しい出版形式です。

本書は、習得、戦略、ICT、コーパス、そして現在の実践という5つの主要な視点から、ESL/EFLの語彙およびコーパス研究を包括的に探求しています。各章では、テクノロジーが学習に与える影響、言語教育におけるコーパスの力、革新的な語彙開発手法といったトピックを深く掘り下げています。

本書は、ESL/EFLの教授・学習の文脈における語彙についてより深い理解を求める研究者、教育者、および言語指導者にとって不可欠なリソースです。

この本の書評。
https://academic.oup.com/eltj/article/7
9/2/325/8015739
 

表題から期待される「体系化された最新レビュー」は得られず、元論文から自動抽出されたらしい「重要文」と称される断片的文の羅列が提示されているだけだと批判。
こうした本が一流出版社名義で「研究入門書」として流通すること自体が危険だ、と指摘。

上のポストで紹介されている書評。
academic.oup.com

~前略~
In short, Vocabulary, Corpus and Language Teaching provides 145 pages of computer-generated output, with very little (if any) evidence of human curation or critical appraisal during the process of writing. Such practice cannot be accepted, in my view, because it sets a dangerous precedent for the world of publishing. Further, such misuses of AI, and I dare say that we might see more examples of those in the wake of the AI revolution, also raise a number of important ethical and pedagogical questions for all of us to consider. And with technological development progressing so rapidly, it is perhaps unsurprising that the current state of knowledge poses more questions rather than provides answers, but this makes it even more pertinent to consider the pros and cons of AI (see Moorhouse 2024 for a useful overview in relation to ELT).


DeepL訳
要するに、『Vocabulary, Corpus and Language Teaching』は145ページにわたるコンピュータ生成の出力を提供しているが、執筆過程における人間のキュレーションや批判的評価の痕跡は(あったとしても)ごくわずかである。私の見解では、このような慣行は出版界にとって危険な先例となるため、容認できない。さらに、このようなAIの誤用(AI革命の波に乗って、今後さらに多くの事例が見られることになるだろうと私は敢えて言う)は、私たち全員が検討すべき数多くの重要な倫理的・教育的な問題を提起している。技術開発がこれほど急速に進んでいる中、現在の知見が答えを提供するよりもむしろ多くの疑問を投げかけていることは、おそらく驚くべきことではない。しかし、それゆえに、AIの長所と短所を検討することが一層重要となる(ELTに関連する有益な概説については、Moorhouse 2024を参照)。

~後略~


上の書評に対する反応(当該書評が掲載されている雑誌の編集者含む)
academic.oup.com

It is probably unusual to see a ‘readers response’ to a book review in the ELT Journal. However, this was a rather unusual book review, reviewing a rather unorthodox book. We read with interest and alarm the eloquently written review of the book ‘Vocabulary, corpus and language teaching: A machine-generated literature overview’ by Szudarski’s (2025) in ELT Journal. We commend Szudarski for writing the book review, and the journal for publishing it. We agree with him that the way the authors used GenAI in the reviewed book, ‘cannot be accepted… because it sets a dangerous precedent for the world of publishing’. (p. 3) and wish to respond to his call for more dialogue in the field regarding the responsible use of Artificial Intelligence (AI) and to ‘consider what skills, knowledge and policies are required to ensure research integrity and the maintenance of high standards in written and published material’ (p. 5).


DeepL訳
『ELT Journal』誌において、書評に対する「読者の反応」が掲載されるのは、おそらく珍しいことだろう。しかし、今回の書評は、かなり型破りな本を扱った、それ自体もまた異例の書評であった。我々は、『ELT Journal』誌に掲載された、Szudarski(2025)著『Vocabulary, corpus and language teaching: A machine-generated literature overview』に対する、雄弁に綴られた書評を、興味と懸念を込めて読んだ。Szudarski氏がこの書評を執筆したこと、そして同誌がこれを掲載したことを称賛する。我々は、著者が当該書籍においてGenAI(生成AI)を用いた手法について、彼が「出版界にとって危険な先例となるため、容認できない」と指摘した点に同意する。(p. 3)また、人工知能(AI)の責任ある利用に関する分野内でのさらなる対話、および「研究の誠実性と、執筆・出版資料における高い水準の維持を確保するために、どのようなスキル、知識、方針が必要か」を検討するよう求める同氏の呼びかけ(p. 5)に応えたいと思います。
~後略~

書評およびそれへの反応ともに、当該文献に対してかなり否定的。当該文献の第一筆者の所属は、所属じゃなくて住所なのはなぜ?

Debian GNU/Linux 12から13へのアップグレード覚書

はじめに

管理しているサーバがDebian12のため、13にアップグレードする。その際のメモ。

いかに従ってアップグレードする。

Debian12を最新へ

最新の状態にする。

% export LANG=C
% sudo apt update
% sudo apt upgrade -y
% cat /etc/debian_version
12.13

利用されなくなったパッケージを削除する。

4.9. 利用されなくなったパッケージに従って、利用されなくなったパッケージを削除する。以下のコマンドで表示されたパッケージを削除する。

% apt list '?obsolete'
% sudo su
# apt purge '?obsolete'

Debian 由来でないパッケージを削除する

% sudo apt install apt-forktracer
% apt list '?narrow(?installed, ?not(?origin(Debian)))'
% apt-forktracer | sort

上記で表記されたパッケージを削除する。

% sudo apt purge パッケージ名

sources.listをdeb822書式に合わせる

既存のsources.listを保存し、推奨のファイルに変更する。参考:4.3. APT sources ファイルの準備

% cd /etc/apt
% sudo cp -p sources.list sources.list.bookworm
% sudo mv sources.list sources.list.d/debian.sources

deb822書式版に従いdebian.sourcesを以下のように書き直す(参考:SOURCES.LIST(5))。

Types: deb
URIs: http://cdn.debian.net/debian/
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

aptを用いたアップグレード

% sudo apt update
% sudo apt upgrade --without-new-pkgs
% sudo apt full-upgrade

私の環境にはdovecotが稼働しており、このdovecotのためfull-upgradeが途中でとまった。たぶん、Debian13ではdovecotの設定ファイルの書式が変わるため(参考:5.1.18. Dovecot configuration changes)。dovecotの設定ファイルについては、メンテナの推奨版に置き替えておく。

再度、full-upgradeを実行したら完了した。

% sudo apt full-upgrade

再起動する。

アップグレード後の後始末

バージョンを確認する。

% export LANG=C

% cat /etc/debian_version
13.3

% uname -a
Linux rook 6.12.74+deb13+1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.74-2 (2026-03-08) x86_64 GNU/Linux

不要になったパッケージを削除する。

% sudo apt update
% sudo apt upgrade
% sudo apt autoremove
% sudo apt autoclean

削除したパッケージの設定ファイルを削除する。

% apt list '?config-files'
% sudo apt purge '?config-files'

WordPressへの対応

Debian12から13へのアップグレードにともない、動いていたWordPress 6.9.4 が動かなくなった。アップグレード前の「利用されなくなったパッケージを削除する」および「Debian 由来でないパッケージを削除する」でPHPを削除したこと、および、Debian13ではphpのバージョンが8.4になったので、それに合わせたライブラリー(libapache2-mod-php8.4)がインストールされていないため。

phpをインストールする(私の環境ではApache 2がインストール済みのため、libapache2-mod-php8.4は自動でインストールされる)。

% sudo apt install -y php php-mysql
% php -v
PHP 8.4.16 (cli) (built: Dec 18 2025 21:19:25) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.16, Copyright (c), by Zend Technologies

WordPressのサイトヘルスステータスの機能でいくつかの推奨PHPモジュールが足りないというメッセージがでていたので追加した。

% sudo apt install php-curl
% sudo apt install php-dom
% sudo apt install php-imagick
% sudo apt install php-mbstring
% sudo apt install php-zip
% sudo apt install php-gd
% sudo apt install php-intl
% sudo systemctl restart apache2

gitlab-ceのアップグレード

GitLabをDebian 10から11へアップグレードするに従い、gitlab-ceをaptで更新できるようにしていた。Debian13用に対応させる。

まず、GPG鍵を最新版に更新する。GitLab:Manual Installationのページに記載のあるコマンドを参考にGPG鍵をダウンロードする。今回は /usr/share/keyrings/gitlab-ce.gpg として保存する。

% sudo su
#  curl -fsSL https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | gpg --dearmor > /usr/share/keyrings/gitlab-ce.gpg
# exit

続いて、deb822書式のソースファイルを/etc/apt/sources.list.d/gitlab-ce.sources として作成する。gitlab-ce.sourcesの中身は以下のようにする。

Types: deb
URIs: https://packages.gitlab.com/gitlab/gitlab-ce/debian/
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/gitlab-ce.gpg

gitlab-ceをアップグレードする。エラーがでて失敗した。

% sudo apt update
% sudo apt upgrade
~省略~
gitlab preinstall: It seems you are upgrading from 18.7 to 18.9.
gitlab preinstall: It is required to upgrade to the latest 18.8.x version first before proceeding.
gitlab preinstall: Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/index.html#upgrade-paths
dpkg: アーカイブ /var/cache/apt/archives/gitlab-ce_18.9.2-ce.0_amd64.deb の処理中にエラーが発生しました (--unpack):
 new gitlab-ce package pre-installation script subprocess returned error exit status 1
処理中にエラーが発生しました:
 /var/cache/apt/archives/gitlab-ce_18.9.2-ce.0_amd64.deb
Error: Sub-process /usr/bin/dpkg returned an error code (1)

Debian12(bookworm)上でのgitlab-ceのバージョンが18.7で、Debian13(trixie)上のバージョンが18.9のため、うまくいかなかった様子。現在のgitlab-ceのバージョンを確かめるために以下のコマンドを実行したところ、データベースの方にも問題が。

% sudo gitlab-rake gitlab:env:info
WARNING:  database "データベース名" has a collation version mismatch
DETAIL:  The database was created using collation version 2.36, but the operating system provides version 2.41.
HINT:  Rebuild all objects in this database that use the default collation and run ALTER DATABASE データベース名 REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.
WARNING:  database "データベース名" has a collation version mismatch
DETAIL:  The database was created using collation version 2.36, but the operating system provides version 2.41.
HINT:  Rebuild all objects in this database that use the default collation and run ALTER DATABASE データベース名 REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.
WARNING:  database "データベース名" has a collation version mismatch
DETAIL:  The database was created using collation version 2.36, but the operating system provides version 2.41.
HINT:  Rebuild all objects in this database that use the default collation and run ALTER DATABASE データベース名 REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.

System information
System:         Debian 13
Current User:   git
Using RVM:      no
Ruby Version:   3.2.8
Gem Version:    3.7.1
Bundler Version:2.7.1
Rake Version:   13.0.6
Redis Version:  7.2.11
Sidekiq Version:7.3.9
Go Version:     unknown
WARNING:  database "データベース名" has a collation version mismatch
DETAIL:  The database was created using collation version 2.36, but the operating system provides version 2.41.
HINT:  Rebuild all objects in this database that use the default collation and run ALTER DATABASE データベース名 REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.

GitLab information
Version:        18.7.0
Revision:       ef8306c4594
Directory:      /opt/gitlab/embedded/service/gitlab-rails
DB Adapter:     PostgreSQL
DB Version:     16.10
URL:            https://hogehoge.jp
HTTP Clone URL: https://hogehoge.jp/some-group/some-project.git
SSH Clone URL:  git@hogehoge.jp:some-group/some-project.git
Using LDAP:     no
Using Omniauth: yes
Omniauth Providers:

GitLab Shell
Version:        14.45.5
Repository storages:
- default:      unix:/var/opt/gitlab/gitaly/gitaly.socket
GitLab Shell path:              /opt/gitlab/embedded/service/gitlab-shell

Gitaly
- default Address:      unix:/var/opt/gitlab/gitaly/gitaly.socket
- default Version:      18.7.0
- default Git Version:  2.50.1

【PostgreSQL】database has a collation version mismatchへの対処法およびOmnibus gitlab-ce Debian 13 (trixie)を参考にPostgreSQLのインデックスをリフレッシュする。

% sudo su
# /opt/gitlab/bin/gitlab-psql
> ALTER DATABASE データベース名 REFRESH COLLATION VERSION;
> \q
# exit

データベースに関するエラーが出ないか確かめる。

% sudo gitlab-rake gitlab:env:info

エラーが出ないことを確認したら、現在のgitlab-ceのバージョン18.7の次のバージョン18.8をインストールする。18.8の最新パッケージ名を
https://packages.gitlab.com/gitlab/gitlab-ce から探す。今回は 18.8.6-ce.0 だった。以下のコマンドで18.8へアップグレードする。

% sudo apt install gitlab-ce=18.8.6-ce.0

続いて、最新版へアップグレードする。

% sudo apt update
% sudo apt upgrade

無事、GitLabをアップグレードできた。

dovecotの設定ファイルの修正

Debian12ではdovecot 2.3だが、Debian13ではdovecot 2.4に変更されている。
dovecotは2.3から2.4で設定ファイルの書式が変わっているため、修正が必要となる。
このため、Debian12から13へのアップグレード時(apt full-upgrade)の際にdovecot関連の設定ファイルはメンテナ推奨の設定ファイルに置き換えておく必要がある。

私の元の設定は以下の通りだった。

大まかには以下の通り

  1. dovecotはIMAPで用いている。
  2. メールは各ユーザディレクトリにメールディレクトリ形式で保存している。
  3. IMAPのログインにpamを利用している。

dovecotの設定ファイルは /etc/dovecot に置いてある。

  • /etc/dovecot/dovecot.conf (メンテナ推奨の設定ファイル、修正せず)
  • /etc/dovecot/conf.d/10-auth.conf(メンテナ推奨の設定ファイル、修正)
  • /etc/dovecot/conf.d/10-logging.conf(メンテナ推奨の設定ファイル、修正せず)
  • /etc/dovecot/conf.d/10-mail.conf(メンテナ推奨の設定ファイル、修正)
  • /etc/dovecot/conf.d/10-master.conf(メンテナ推奨の設定ファイル、修正)
  • /etc/dovecot/conf.d/10-ssl.conf(メンテナ推奨の設定ファイル、修正)
  • /etc/dovecot/conf.d/15-lda.conf(メンテナ推奨の設定ファイル、修正せず)
  • /etc/dovecot/conf.d/20-lmtp.conf(メンテナ推奨の設定ファイル、修正せず)
  • /etc/dovecot/conf.d/20-pop3.conf(メンテナ推奨の設定ファイル、修正せず)
  • /etc/dovecot/conf.d/90-quota.conf(メンテナ推奨の設定ファイル、修正せず)
  • /etc/dovecot/conf.d/auth-system.conf.ext(メンテナ推奨の設定ファイル、修正せず)

メンテナ推奨の設定ファイルを10-auth.conf.orgとしている。基本はコメントアウトしているだけ。

% diff 10-auth.conf.org 10-auth.conf
10c10
< #auth_allow_cleartext = yes
---
> auth_allow_cleartext = yes
40c40
< #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
---
> auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
49c49
< #auth_username_format = %{user|username|lower}
---
> auth_username_format = %{user|username|lower}
93c93
< #auth_mechanisms = plain login
---
> auth_mechanisms = plain login

メンテナ推奨の設定ファイルを10-mail.conf.orgとしている。デフォルトはメールボックス式だが、メールディレクトリ式に変更している。

% diff 10-mail.conf.org 10-mail.conf
36,39c36,42
< mail_driver = mbox
< mail_home = /home/%{user | username}
< mail_path = %{home}/mail
< mail_inbox_path = /var/mail/%{user}
---
> #mail_driver = mbox
> #mail_home = /home/%{user | username}
> #mail_path = %{home}/mail
> #mail_inbox_path = /var/mail/%{user}
> mail_driver = maildir
> mail_path = ~/Maildir
>

メンテナ推奨の設定ファイルを10-master.conf.orgとしている。IMAPとSMPT認証の設定をしている。

% diff 10-master.conf.org 10-master.conf
22,23c22,23
<     #port = 993
<     #ssl = yes
---
>     port = 993
>     ssl = yes
29c29
<   #service_restart_request_count = 1
---
>   service_restart_request_count = 1
40c40
<     #port = 110
---
>     port = 110
43,44c43,44
<     #port = 995
<     #ssl = yes
---
>     port = 995
>     ssl = yes
58,59c58,61
<   unix_listener lmtp {
<     #mode = 0666
---
>   unix_listener /var/spool/postfix/private/dovecot-lmtp {
>     mode = 0666
>     group = postfix
>     user = postfix
110,112c112,116
<   #unix_listener /var/spool/postfix/private/auth {
<   #  mode = 0666
<   #}
---
>   unix_listener /var/spool/postfix/private/auth {
>     mode = 0666
>     user = postfix
>     group = postfix
>   }

メンテナ推奨の設定ファイルを10-ssl.conf.orgとしている。Dovecot 2.4からDH鍵は不要になったとのこと。

diff 10-ssl.conf.org 10-ssl.conf
18c18,19
< ssl_server_cert_file = /etc/dovecot/private/dovecot.pem
---
> #ssl_server_cert_file = /etc/dovecot/private/dovecot.pem
> ssl_server_cert_file = サーバ認証ファイルの絶対パス表記
20c21,22
< ssl_server_key_file = /etc/dovecot/private/dovecot.key
---
> #ssl_server_key_file = /etc/dovecot/private/dovecot.key
> ssl_server_key_file = サーバ鍵ファイルの絶対パス表記

/etc/dovecot/conf.d/10-director.conf を削除する。

% cd /etc/dovecot/conf.d/
% sudo mv 10-director.conf 10-director.conf.org

ちゃんと動くか確かめる。

% sudo systemctl start dovecot

うまく動かない場合は以下のコマンドでまずいところを確認し、適宜修正する。

% sudo systemctl status dovecot --no-pager