Linux-Mint

內置日曆顯示“#include <hr_HR/calendar.all>”錯誤

  • February 19, 2018

適用於 Linux Mint 18.3、32 位、MATE 桌面 1.18.0。

在 BASH 中,鍵入calendar會產生以下錯誤。

rbv@rbv-F80Q ~ $ calendar
In file included from /usr/share/calendar/calendar.all:23:0,
                from &lt;stdin&gt;:16:
/usr/share/calendar/calendar.croatian:10:0: fatal error: hr_HR/calendar.all: No such file or directory
#include &lt;hr_HR/calendar.all&gt;
^
compilation terminated.
Feb 15  Galileo Galilei born in Pisa, Italy, 1564

------ list of dates ------ 

Feb 16  Stephen Decatur burns US frigate in Tripoli, 1804
rbv@rbv-F80Q ~ $

我找到了引用的文件calendar.croatian和違規行:

/*
* Croatian calendar files
*
* $FreeBSD$
*/

#ifndef _calendar_croatian_
#define _calendar_croatian_
/* THIS IS THE LINE CITED IN THE ERROR */
#include &lt;hr_HR/calendar.all&gt;

#endif /* !_calendar_croatian_ */

但我不知道該怎麼做。刪除線路?編輯它?或者?

還是編輯calendar.all並簡單地刪除該行的最佳解決方案#include &lt;calendar.croatian&gt;?雖然如果可能的話我想實際解決問題而不是簡單地刪除東西……


編輯#1:無法重新安裝 bsdmainutils

嘗試了重新安裝basmainutils的建議,但它似乎在我的系統上不存在,並且我無法使用apt-get下載和安裝它。

rbv@rbv-F80Q ~ $ sudo apt-get install --reinstall bsdmainutils
[sudo] password for rbv: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reinstallation of bsdmainutils is not possible, it cannot be downloaded.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
rbv@rbv-F80Q ~ $ 

具體到重新安裝,這台 32 位 Linux Mint / MATE 電腦上似乎不存在。


編輯#2:嘗試使用 dpkg-query 來辨識 basmainutils 的所有者

為了回應評論者的建議,執行以下內容:

rbv@rbv-F80Q ~ $ dpkg-query -S /usr/share/calendar/calendar.all
bsdmainutils: /usr/share/calendar/calendar.all

這似乎表明雖然我無法使用aboutorwhichaproposorman找到任何關於bsdmainutils的資訊,但它顯然是calendar.all的所有者。

另請注意,該locate bsdmainutils命令產生了以下內容:

rbv@rbv-F80Q ~ $ locate bsdmainutils
/etc/cron.daily/bsdmainutils
/etc/default/bsdmainutils
/usr/share/doc/bsdmainutils
/usr/share/doc/bsdmainutils/README
/usr/share/doc/bsdmainutils/calendarJudaic.py.gz
/usr/share/doc/bsdmainutils/changelog.gz
/usr/share/doc/bsdmainutils/copyright
/usr/share/doc/bsdmainutils/source.data.gz
/usr/share/lintian/overrides/bsdmainutils
/var/lib/dpkg/info/bsdmainutils.conffiles
/var/lib/dpkg/info/bsdmainutils.list
/var/lib/dpkg/info/bsdmainutils.md5sums
/var/lib/dpkg/info/bsdmainutils.postinst
/var/lib/dpkg/info/bsdmainutils.prerm
rbv@rbv-F80Q ~ $ 

因此,一方面bsdmainutils似乎不適用於apt-get等,但係統上存在一些basmainutils文件。


編輯#3:發現規避,請參閱我對自己問題的回答,如下

儘管apt-get無法找到並重新安裝bsdmainutils,但Synaptic包管理器確實列出了它,因此可以重新安裝它。詳情如下。

好吧,我“修復”了這個問題——但我對它最終得到修復的方式並不滿意。

解決方案是使用Synaptic而不是apt-get在命令行上重新安裝bsdmainutils。之後,不再發生日曆錯誤。

但這反映了我遇到的另一個反復出現的問題 ala Synaptic 不會列出 apt-get 將安裝的程序…?

在這種情況下,與現有文章的問題相反:Synaptic“知道”一個apt-getCLI 上不知道的包。重點是我無法弄清楚為什麼apt-get經常會找到Synaptic未列出的程序。在這種情況下,相反…


編輯 #1:可能會出現問題,因為Bleachbit刪除日曆文件

如果您重新安裝bsdmainutils並且日曆再次正常工作,並且稍後再次出現相同的問題,那麼請注意,根據設置, Bleachbit可能會刪除包含在/usr/share/calendar/. 使用編輯->首選項->白名單->添加文件夾/usr/share/calendar->從刪除中排除包含的文件。請注意,您可能需要以root 身份對 Bleachbit 和在使用者帳戶模式下對 Bleachbit**執行此操作…

我沒有一個 Linux Mint 系統來嘗試這個,所以我基於幾個-其他-展示了該選項的頁面:--reinstall

apt-get install --reinstall bsdmainutils

這裡的假設是某些東西無意中刪除了/usr/share/calendar/hr_HR/calendar.all文件。我們要求包管理器重新安裝包,它應該替換該文件。

引用自:https://unix.stackexchange.com/questions/424438