web-dev-qa-db-ja.com

loadlocale.c _nl_intern_locale_dataアサーションエラー

Debian Jessieで作業して、Debian不安定リポジトリを有効にしました(テストと同じ問題)。その後、cmakeをインストールするとエラーがスローされます。

[...]
dpkg: error while cleaning up:
 subprocess rm command for cleanup was killed by signal (Aborted)
dpkg-split: loadlocale.c:129: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.
[...]

その後、Sudoを含むほとんどのコマンドが独自のエラーをスローするため、コマンドラインを使用することは不可能です。

>$ ls
ls: loadlocale.c:129: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.
Aborted

マシンをシャットダウンせずにこのエラーから回復するにはどうすればよいですか?

さらに、これはloadlocale.cのバグですか?どうやら、同様の問題が至る所で発生しています:
https://github.com/junegunn/fzf/issues/356
https://www.reddit.com/r/archlinux/comments/3g9dzf/loadlocalec130_error_on_everything/
https://patchwork.openembedded.org/patch/114739/

6
GammaSQ

私はこれらの投稿のおかげで解決策を見つけました:
https://stackoverflow.com/questions/37121895/yocto-build-loadlocale-c-1
ロケールを設定できない問題。$ LC_ *と$ LANGが正しいことを確認してください!

しかし、私はまだこの問題の責任をどこに置くかわかりません。

まず、使用可能なコマンドラインを取得するには、$LANGを定義する必要があります。

>$ LANG=/usr/lib/locale/en_US

LANG=en_USの設定は機能しませんでした、パスが必要です!)

その後、コマンドラインは再び使用可能になります。ルートとしてlocale.genを編集し、システムで使用するすべてのロケールのコメントを解除します。

>$ Sudo vim /etc/locale.gen

ここで、ルートとしてlocale-genを実行すると、システムが修正されます。

注:dpkg-reconfigure localesもエラーをスローしたため、機能しませんでした。


この問題を回避するには、アップグレードする前にcmakeを削除し(インストールされている場合)、apt-get upgradeを使用してシステムをアップグレードします。特にアップグレードが必要なパッケージを特定できませんでした。

localesのアップグレードで十分だと思いましたが、apt-get upgrade locales(または関連パッケージ)がborkenパッケージエラーになるため、これは機能しませんでした。

>$ Sudo apt-get upgrade locales
[...]
The following packages have unmet dependencies:
 libc-dev-bin : Depends: libc6 (< 2.20) but 2.27-3 is to be installed
                Recommends: manpages-dev but it is not going to be installed
 libc6-dev : Depends: libc6 (= 2.19-18+deb8u10) but 2.27-3 is to be installed
E: Broken packages

そして、関連するパッケージはconsole-dataであると私は信じていますが(完全なアップグレード中に使用するキーボードレイアウトが適切に尋ねられるため)、console-dataをアップグレードすると、apt-get upgradeと同じパッケージがアップグレードされました。

8
GammaSQ