Debian の psql で日本語を入力できない

Debian の PostgreSQL のフロントエンド psql で日本語が入力できなくなっていることに気づいた。いろいろ検索してみてわかったことをざっと記すと、まず、以前の psql では問題なかったのが最近おかしくなったのは

#603599
これまでの psql は libreadline (GPL v2+) と libssl (BSD-like であり GPL とは非互換) の両方にリンクしており、ライセンス的にバイナリの再配布は不可能。そこで、libreadline をやめて BSDライセンスの libedit にする

という事情らしい。

#607109
psql でマルチバイト文字が使えない

で指摘されているように、-n オプションを使えば回避できることから、libedit のバグのようだ。

同じ libedit を使っている gnuplot

#596870
非アスキー文字が使えない

で、実際に試してみたらそのとおりだ。

当の libedit には

#579729
utf8 に対応した新しいバージョンをパッケージしてほしい

という要望が出されているものの、動きはなし。

上流は NetBSD libedit なのだけれど、「libedit I18N化への道」(イントロ)を見ると、utf8 対応といっても問題が多く、ことの成り行きはこの方にかかっているらしい (つづきが(その1)(その2)(その3)(その4)(その5)。そしてこの時点での最新の「めもがき」によると、たいへんお忙しいらしい)。

さし当たりこの問題を回避するには、libreadline / libedit の機能をあきらめて psql -n として使うか、libedit を libreadline に差し替えてパッケージを作り直すか。根本的解決は、能力のない者としてはただじっと待つより為す術がない。

“Debian の psql で日本語を入力できない” への 1 件のフィードバック

  1. 当面、psqlコマンドにはオプション’-n’を付けて使います。
    ありがとうございました。

    返信

”まさ”と申します へ返信する コメントをキャンセル