Linux Mint 18.3 32位MATE环境下calendar命令报错求助
修复Linux Mint 18.3中
calendar命令的报错问题 我之前也碰到过类似的calendar语法错误问题,尤其是在旧版本的bsdmainutils包中,给你几个实际可行的修复步骤,帮你搞定这个问题而不是简单删掉内容:
1. 先确认错误细节(关键前提)
先执行calendar命令,把完整的报错信息记下来,比如类似:
calendar: /usr/share/calendar/calendar.croatian:XX: invalid date
这个XX就是出错行号,能帮你精准定位错误类型(是日期格式、编码还是语法问题)。
2. 备份原文件,避免误操作
先给有问题的calendar.croatian做个备份,防止改坏了没法恢复:
sudo cp /usr/share/calendar/calendar.croatian /usr/share/calendar/calendar.croatian.bak
3. 针对性修复出错行
打开文件编辑出错行:
sudo nano /usr/share/calendar/calendar.croatian
根据错误类型对应修复:
- 日期格式错误:
calendar要求日期格式为MM/DD(单个日期)或MM/DD-MM/DD(日期范围),检查出错行的日期是否符合规范,比如是不是写了13/01(月份超过12)、02/30(二月没有30号),或者用了点号/横杠代替斜杠,修正成标准格式即可。 - 字符编码问题:克罗地亚语有特殊字符,如果文件编码不是UTF-8,可能会导致解析错误。先检查编码:
如果显示是ISO-8859-2之类的编码,转成UTF-8:file /usr/share/calendar/calendar.croatianiconv -f ISO-8859-2 -t UTF-8 /usr/share/calendar/calendar.croatian.bak > /usr/share/calendar/calendar.croatian - 语法/注释错误:检查出错行是不是有多余的符号,比如注释
#是不是写在了错误位置,或者有没有未闭合的特殊字符,修正后保存退出(nano里按Ctrl+O保存,Ctrl+X退出)。
4. 测试修复效果
执行calendar命令,如果不再报错,说明修复成功。如果还有问题,再对照报错信息调整。
5. 关于重装bsdmainutils失败的补充
如果重装命令没用,大概率是因为Linux Mint 18.3是比较老的版本,官方源里的bsdmainutils包本身就带有这个bug。你可以试试清理缓存后重装:
sudo apt-get clean && sudo apt-get install --reinstall bsdmainutils
如果还是不行,那就只能靠手动修复calendar.croatian文件来解决了,毕竟系统源已经停止维护旧版本包的更新了。
不建议删除
calendar.all里的#include <calendar.croatian>行,那样会直接丢失克罗地亚日历的所有内容,不是最优解。
内容的提问来源于stack exchange,提问作者RBV
相关产品推荐
相关产品推荐

