我从 ubuntu 18.10 降级到 18.04 后出现 bash: /usr/bin/locale-check: 没有这样的文件或目录错误

我从 ubuntu 18.10 降级到 18.04 后出现 bash: /usr/bin/locale-check: 没有这样的文件或目录错误

将我的 Ubuntu 从 18.10 降级到 18.04 后,每次尝试登录时都会出现以下错误:

查看错误截图

打开终端后显示以下错误

bash:/usr/bin/locale-check:没有此文件或目录

我该如何修复这个错误?

答案1

将 18.10 降级到 18.04 后,我遇到了同样的问题

-bash:/usr/bin/locale-check:没有此文件或目录

在降级时我必须创建此文件: /etc/apt/preferences.d/preferences 强制降级,这会阻止在删除并更新/升级后下载某些软件包:

注意:您可能创建了不同的首选项文件,因此下面的文件名称可能会有所不同

sudo rm /etc/apt/preferences.d/preferences
sudo apt update && sudo apt upgrade

这帮我解决了问题!:)

答案2

问题是,base-files以版本开头的软件包10.1ubuntu2.6bionic-updates口袋)或更新版本(cosmic及更高版本)与bionic发布版本及以上:

  • /etc/profile.d/01-locale-fix.sh
  • /usr/bin/locale-check

但是,其中的文件/etc是配置文件,除非您删除,否则通常不会随软件包一起删除apt purge。特别是在降级期间(这不受官方支持),不会删除此类文件。

这就是为什么从较新的版本降级到 18.04 最初附带的版本后,您会收到“文件未找到”错误 - shell 初始化脚本/etc作为残留配置被遗留,而所需的可执行文件已根据请求的降级正确删除。这也在回复中进行了解释@roganartu 的被拒绝的错误报告

建议的解决方案是修复您的软件存储库配置并bionic-updates再次启用从包中获取软件包,然后升级base-files到该版本。/usr/bin/locale-check应该会再次回来。

或者,如果你坚持使用发布包并且不启用更新,你要么必须手动删除/etc/profile.d/01-locale-fix.sh,要么你可能会尝试强制清除并重新安装base-files

答案3

是的,这是由软件包“base-flies”引起的,我通过降级然后升级重新安装了它。这是我所做的:

$ sudo apt-cache madison base-files

然后我们就可以得到包的准确版本:

基础文件 | 10.1ubuntu2.7 |https://mirrors.tuna.tsinghua.edu.cn/ubuntubionic-updates/main amd64 软件包

基础文件 | 10.1ubuntu2.7 |http://archive.ubuntu.com/ubuntubionic-updates/main amd64 软件包

基础文件 | 10.1ubuntu2.2 |https://mirrors.tuna.tsinghua.edu.cn/ubuntubionic-security/main amd64 软件包

基础文件 | 10.1ubuntu2.2 |http://security.ubuntu.com/ubuntubionic-security/main amd64 软件包

基础文件 | 10.1ubuntu2 |https://mirrors.tuna.tsinghua.edu.cn/ubuntubionic/main amd64 软件包

基础文件 | 10.1ubuntu2 |http://archive.ubuntu.com/ubuntubionic/main amd64 软件包

然后选择要降级的版本:

$ sudo apt install base-files=10.1ubuntu2.7 

最后一步是升级:

$ sudo apt upgrade base-files

答案4

应该通过重新安装包基础文件来修复此问题,方法如下:

sudo apt install base-files

不幸的是,这没有用,所以我只是将它从另一个 Ubuntu 18.04 系统复制到了这个系统上。

相关内容