将我的 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.6
(bionic-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 系统复制到了这个系统上。