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/
答え1
次の投稿のおかげで解決策を見つけました。
https://stackoverflow.com/questions/37121895/yocto-build-loadlocale-c-130
ロケールを設定できません。 $LC_*と$LANGが正しいことを確認してください!
しかし、この問題をどこで責めるべきかはまだわかりません。
まず、使用可能なコマンドラインを取得するには、以下を$LANG
定義する必要があります。
>$ LANG=/usr/lib/locale/en_US
(設定はLANG=en_US
適用されません。パスが必要です!)
これでコマンドラインが再び機能します。ルートとしてlocale.gen
システムで使用するすべてのロケールを編集し、コメントアウトを削除します。
>$ sudo vim /etc/locale.gen
これでlocale-gen
rootとして実行すると、システムが回復します。
注:dpkg-reconfigure locales
エラーも発生するため動作しません。
この問題を回避するには、cmake
アップグレードする前にアンインストール(インストールされている場合)して使用してくださいapt-get upgrade
。具体的には、どのパッケージをアップグレードする必要があるのかわかりません。
アップグレードすると十分だと思いましたが(または関連パッケージ)、Borkenパッケージエラーが発生したlocales
ため機能しません。apt-get upgrade locales
>$ 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