Debian ソースパッケージからビルドしてください。

Debian ソースパッケージからビルドしてください。

私はDebianで働いています。私は次のコマンドを実行しました。

./configure && make && sudo make install

このエラーが発生しました。

./etc/rxvt-unicode.terminfo", line 57, col 20, terminal 'rxvt-unicode': unknown capability 'kDC5'
./etc/rxvt-unicode.terminfo", line 58, col 19, terminal 'rxvt-unicode': unknown capability 'kDC6'
./etc/rxvt-unicode.terminfo", line 59, col 17, terminal 'rxvt-unicode': unknown capability 'kDN'
./etc/rxvt-unicode.terminfo", line 60, col 18, terminal 'rxvt-unicode': unknown capability 'kDN5'
./etc/rxvt-unicode.terminfo", line 62, col 20, terminal 'rxvt-unicode': unknown capability 'kIC5'
./etc/rxvt-unicode.terminfo", line 63, col 19, terminal 'rxvt-unicode': unknown capability 'kIC6'
./etc/rxvt-unicode.terminfo", line 65, col 21, terminal 'rxvt-unicode': unknown capability 'kEND5'
./etc/rxvt-unicode.terminfo", line 66, col 20, terminal 'rxvt-unicode': unknown capability 'kEND6'
./etc/rxvt-unicode.terminfo", line 68, col 21, terminal 'rxvt-unicode': unknown capability 'kFND5'
./etc/rxvt-unicode.terminfo", line 69, col 20, terminal 'rxvt-unicode': unknown capability 'kFND6'
./etc/rxvt-unicode.terminfo", line 71, col 21, terminal 'rxvt-unicode': unknown capability 'kHOM5'
./etc/rxvt-unicode.terminfo", line 72, col 20, terminal 'rxvt-unicode': unknown capability 'kHOM6'
./etc/rxvt-unicode.terminfo", line 74, col 19, terminal 'rxvt-unicode': unknown capability 'kLFT5'
./etc/rxvt-unicode.terminfo", line 76, col 21, terminal 'rxvt-unicode': unknown capability 'kNXT5'
./etc/rxvt-unicode.terminfo", line 77, col 20, terminal 'rxvt-unicode': unknown capability 'kNXT6'
./etc/rxvt-unicode.terminfo", line 79, col 21, terminal 'rxvt-unicode': unknown capability 'kPRV5'
./etc/rxvt-unicode.terminfo", line 80, col 20, terminal 'rxvt-unicode': unknown capability 'kPRV6'
./etc/rxvt-unicode.terminfo", line 82, col 19, terminal 'rxvt-unicode': unknown capability 'kRIT5'
./etc/rxvt-unicode.terminfo", line 83, col 17, terminal 'rxvt-unicode': unknown capability 'kUP'
./etc/rxvt-unicode.terminfo", line 84, col 18, terminal 'rxvt-unicode': unknown capability 'kUP5'

誰もが問題を解決する方法を知っていますか?

答え1

これtic計画報告書によると能力未知。使用-xオプションが教えてくれるticこれをカスタム関数と考えてください。

これアドホックのように固定doc/Makefile、これは次のように言います。

tic $(srcdir)/etc/rxvt-unicode.terminfo

それに変える

tic -x $(srcdir)/etc/rxvt-unicode.terminfo

コメントで述べたように、同じ目標を達成する別の方法があります。

ユーザー定義関数はncurses 5.0。これは拡張なので(他の実装との互換性は常に問題です)、これを機能させるにはオプションが必要です。

答え2

Debian ソースパッケージからビルドしてください。

あなたが経験している問題は、部分的に元のソースから直接構築しているためです。ここでそうするのは間違っています。少なくともDebianソースパッケージをインポートしてdebian/使用してください。

Debian ビルドプロセスを使用する理由

私が最近指摘したように、https://unix.stackexchange.com/a/468218/5132、Stephen Kittはこれを行う方法についてステップバイステップのガイドラインを追加しました。 Debian ソースコードからビルドして、Debian の人々が Debian で動作するようにパッケージに入れた修正の 1 つを取得するか (この例のように) 作業します。

一つDebian は、ソース rxvt-unicode ソースコードに対する複数のパッチを提供します。(Debianでも他のものが必要であることは間違いありません)はパッチです建物のterminfoエントリをオフにしますrxvt-unicodeに含まれているソースコードから。

そうでなければどうなりますか?

これには多くの歴史があり、そのいくつかはncurses docoとそのハイパーリンクにあります。ただし、この回答の目的に応じて簡単な説明は次のとおりです。

rxvt-unicode が提供する terminfo エントリに問題があり、その問題の 1 つが複数のビルド時間メッセージを表示します。変化は歓呼を呼び起こした何もない10年以上前、Marc Lehmannはそれが「すでに非常に正確だった」と主張しました。長年のデッドロックのために、Debianの人々や他の人々は静かに上記のパッチを使ってMarc Lehmannの用語情報の記録を完全に削除しました。ncursesの独自のパッケージを使用してパッケージ化代わりに。

ここで提供されるterminfoの関連する問題は、非標準関数(例えば)を定義することですkDC5。 terminfoデータベースメカニズムの長い間知られている問題の1つは、user_capsマニュアルページに記載されているように固定関数名システムがあることです。 rxvt-unicodeが提供するterminfoレコードには、この固定システムの一部ではない追加機能が含まれています。この-xオプションがないと、ticコマンドはその機能について文句を言います。

これらの非標準機能が解決する最初の問題は、terminfoのもう1つの長い問題です。これは、端末が入力をどのように送信するかを適切に表現するために実際に作業に依存しないことです。特に、ここでは、キーボード修飾子の状態情報を含むキーストローク制御シーケンスを表す標準として機能しない(例:+と区別できるようにするため)、これらの非標準拡張の発明が必要です。しかし、問題はここでは終わりません。これは、基本モデルが端末と端末エミュレータが実際に動作する方法とは異なるためです。ただし、これはこの回答の範囲外です。 (詳細は追加の読書から読むことができます。)

その他のオペレーティングシステム

他のオペレーティングシステムでもこのエラーが発生します。

FreeBSDの人々、例えば。 Debianと同様に、FreeBSDには「ポート」ツリーに修正パッチセットが含まれています。本当にパッチの1つは、Marc Lehmannのterminfoレコードを削除することです。

Gentooは静かに同じことをしました。これrxvt-unicodeのebuildもMarc Lehmannのterminfoレコードを削除しました。

OpenSUSEは2015年にMarc Lehmannのterminfo記録を破りました。

Arch Linuxもこれを行う必要がありますrxvt-unicodeのterminfoレコードのビルド+インストールプロセスの解決、Archは他の人のように完全にあきらめないことを決めたが。

したがって、ソースソースから直接ビルドするのではなく、これらのシステムのポート/ ebuild / PKGBUILDからビルドしてください。

追加読書

答え3

これはパッケージのバグの問題のようですurxvt.git。パッケージ自体が再構築されました。このガイドの指示に従ってください。協会。同じエラーメッセージが表示されます。

関連情報