我的天气小部件无效

我的天气小部件不再起作用了。 我正在使用Ubuntu MATE。 这是一个截图:

SS

美国政府改变了一些东西并打破了这些应用程序使用的数据(也打破了我的骗局)。

特别是:

应用程序引用的整个“weather.noaa.gov”URL显示“Service Removed”错误。 GNOME Weather(或更具体地说,libgweather库)使用此URL来获取其METAR数据。 需要对其进行更新,以便对NOAA的METAR交付的域结构进行更改。

来源OMG-Ubuntu

METAR格式的天气信息正在通过libgnomeweather库(以及稍后通过libmateweather库)从NOAA网站(它是全世界的信息)下载。 大约四年前,NOAA宣布将停止该服务。 显然没有人注意到,几周前服务停止时,人们开始发现消息Failed to get METAR data: 404 Not Found在syslog日志中Failed to get METAR data: 404 Not Found (或者在我的情况下Falló al obtener datos METAR: 404 Not Found. ,as as我的电脑用西class牙语)。


更新:这已经在为Ubuntu Mate 16.04发布的最新libmateweather(1.12.2)中得到修复 ,因此不再需要此解决方案。 (但是,该版本可能无法在代理后面工作,但这是一个不同的问题)。


已经在libmateweather中实现了对此的修复,您可以在Mate Desktop GitHub存储库中看到提交835055e0d0b950d3f66ad236de7e40942f6f7d8e的补丁 。 但是,我不清楚是否将为此Ubuntu Mate LTS(16.04)分发此修复程序(因为这不是真正的安全修复程序)。 显然它将分发给16.10,正如Mate Desktop博客中有关16.10的“已知问题”的post所述 :

时钟和天气小程序中的天气报告目前无法使用。 修复程序已经提交,更新的程序包将在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 )。 还要安装fakeroot包( 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 )。

  • 您可能需要重新启动小程序或整个面板或将其删除,然后添加或注销并再次登录。

这是结果: 在此处输入图像描述

笔记:

  • 运行apt-get build-dep命令和安装fakeroot软件包时,将自动安装重新编译libmateweather所需的所有软件包。

  • 我不确定如果发布新版本的libmateweather并以16.04分发会发生什么(我的猜测是这个改变会被覆盖)。 但是,如果为此LTS发布了新版本,则可能包含(或不包含)此修复程序。 一种避免(覆盖)的方法是使用sudo apt-mark hold libmateweather1

  • 如果您有多台计算机,只需按架构编译一次,并在所有计算机中使用.deb文件。 如果您有许多计算机需要维护(在您的公司,组织,学校或其他任何地方),更完整的解决方案是创建一个本地私有存储库,以便APT可以自动安装该程序包。

    Interesting Posts