答案1
METAR 格式的天气信息是通过 libgnomeweather 库(后来通过 libmateweather 库)从 NOAA 网站下载的(它是全球信息)。大约四年前,NOAA 宣布将停止该服务。显然没有人注意到,当几周前该服务停止时,人们开始Failed to get METAR data: 404 Not Found
在 syslog 日志中(或就我而言Falló al obtener datos METAR: 404 Not Found.
,因为我的计算机是西班牙语)找到该消息。
更新:这个问题已经修复在为 Ubuntu Mate 16.04 发布的最新 libmateweather (1.12.2) 中,因此不再需要此解决方案。(但是,该版本可能无法在代理后面工作,但这是另一个问题)。
这个问题的修复已经在 libmateweather 中实现,你可以在 Mate Desktop GitHub 存储库中看到该补丁提交 835055e0d0b950d3f66ad236de7e40942f6f7d8e。但是,我不清楚这个修复程序是否会针对 Ubuntu Mate LTS (16.04) 进行分发(因为这实际上不是安全修复程序)。显然它将针对 16.10 进行分发,因为根据Mate Desktop 博客中有关 16.10 的“已知问题”的帖子:
时钟和天气小程序中的天气报告目前不可用。已提交修复,更新的软件包将在 Beta 1 之后发布。
这是我在计算机上修复它的方法(使用 Ubuntu 源重新编译 libmateweather):
在 APT 中启用源下载。您可以在系统/行政/软件和更新对话框中,通过检查源代码项目Ubuntu 软件选项卡。您也可以在 /etc/apt/sources.list 文件中启用它们。
使用 MATE 终端(或任何其他终端程序或直接在 Linux 控制台中),创建一个临时目录,您可以在其中编译 libmateweather 源(例如
mkdir newlibmateweather
),然后更改到该目录(cd newlibmateweather
)。下载 libmateweather 的源代码(
apt-get source libmateweather
),注意这不需要使用 sudo)。安装构建包所需的依赖项(
sudo apt-get build-dep libmateweather
)。还要安装假根包裹 (sudo apt-get install fakeroot
)。编辑
./libmateweather-1.12.1/libmateweather/weather-metar.c
文件,更改以下行:在第 525 行,更改
"National Weather Service"
为"AVIATION WEATHER CENTER"
在第 553 行,更改
"http://weather.noaa.gov/mgetmetar.php"
为"http://aviationweather.gov/metar/data"
在第 554 行,更改
"cccc"
为"ids"
更改为库源目录 (
cd libmateweather-1.12.1/
)。创建 .deb 包(
dpkg-buildpackage -rfakeroot -uc -b
)。这可能需要一段时间。最后你会发现几个 .deb 文件在父目录中根据您的计算机的架构(例如,在我的计算机中,创建了 libmateweather1_1.12.1-1_amd64.deb、libmateweather1-dbg_1.12.1-1_amd64.deb、libmateweather-common_1.12.1-1_all.deb 和 libmateweather-dev_1.12.1-1_amd64.deb。安装刚刚编译的主要 lib 包(
sudo dpkg -i libmateweather1_1.12.1-1_amd64.deb
)。您可能需要重新启动小程序或整个面板或将其删除然后添加它或注销并再次登录。
笔记:
运行以下命令时,将自动安装重新编译 libmateweather 所需的所有软件包:apt-get build-dep命令,当你安装假根包裹。
我不确定如果 libmateweather 的新版本发布并分发到 16.04 会发生什么(我猜这个更改将被覆盖)。但是,如果为此 LTS 发布新版本,则可能包含(或不包含)此修复。避免这种情况(覆盖)的方法是使用
sudo apt-mark hold libmateweather1
。如果您有多台计算机,只需针对每个架构编译一次,然后在所有计算机中使用 .deb 文件。如果您需要维护多台计算机(在您的公司、组织、学校或其他地方),更完整的解决方案是创建一个本地私有存储库,以便 APT 可以从中自动安装软件包。
答案2
美国政府改变了一些东西,并破坏了这些应用程序使用的数据(也破坏了我的 conky)。
具体来说 :
应用程序引用的整个“weather.noaa.gov”URL 显示“服务已删除”错误。GNOME Weather(或更具体地说是库 libgweather)使用此 URL 来获取其 METAR 数据。它需要更新才能适应 NOAA 的 METAR 交付域结构所做的更改。