Gam*_*aSQ 8 debian upgrade locale
在 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.
[...]
Run Code Online (Sandbox Code Playgroud)
之后,使用命令行几乎是不可能的,因为大多数命令,包括 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
Run Code Online (Sandbox Code Playgroud)
如何在不关闭机器的情况下从此错误中恢复?
此外,这是 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/
我想出了一个解决方案,非常感谢这些帖子:
https : //stackoverflow.com/questions/37121895/yocto-build-loadlocale-c-130
无法设置语言环境的问题;确保 $LC_* 和 $LANG 是正确的!
但是,我仍然不确定该将问题归咎于何处。
首先,要获得可用的命令行,$LANG
需要定义:
>$ LANG=/usr/lib/locale/en_US
Run Code Online (Sandbox Code Playgroud)
(设置LANG=en_US
不起作用,需要路径!)
之后,命令行应该可以再次使用。locale.gen
以 root 身份编辑并取消注释您要在系统上使用的所有语言环境:
>$ sudo vim /etc/locale.gen
Run Code Online (Sandbox Code Playgroud)
现在locale-gen
以 root 身份运行,系统应该已修复。
注意: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
Run Code Online (Sandbox Code Playgroud)
虽然我相信相关的软件包是console-data
(因为它会很好地询问您在完全升级期间想要使用的键盘布局),但升级console-data
导致升级的软件包与升级的软件包相同apt-get upgrade
。
归档时间: |
|
查看次数: |
20977 次 |
最近记录: |