Мой виджет погоды не работает

3

Мой виджет погоды больше не работает. Я использую Ubuntu MATE. Вот скриншот:

    

задан cyberdelic 26.08.2016 в 13:33
источник

2 ответа

2

Правительство США что-то изменило и сломало данные, используемые этими приложениями (тоже сломал мой конки).

В частности:

  

Весь URL 'weather.noaa.gov' в ссылках на приложение показывает «Сервис   Удалена ". Погода в GNOME (или, более конкретно, библиотека   libgweather) использует этот URL для получения данных METAR. Это должно быть   обновлен для работы с изменениями, внесенными в доменную структуру для NOAA   Доставка METAR.

Источник OMG-Ubuntu

    
ответ дан Organic Marble 26.08.2016 в 14:01
источник
3

Информация о погоде в формате METAR загружалась с веб-сайта NOAA (это была всемирная информация) через библиотеку libgnomeweather (а позже через библиотеку libmateweather). Около четырех лет назад NOAA объявила, что прекратит эту услугу. Видимо, никто не заметил, и когда служба была прекращена несколько недель назад, люди начали находить сообщение Failed to get METAR data: 404 Not Found в журнале syslog (или в моем случае Falló al obtener datos METAR: 404 Not Found. , так как мой компьютер находится на испанском языке).

UPDATE: это уже исправлено в последнем выпуске libmateweather (1.12.2), выпущенном для Ubuntu Mate 16.04, поэтому это решение больше не нужно. (Тем не менее, эта версия может не работать за прокси, но это другая проблема).

Исправление к этому уже реализовано в libmateweather, вы можете увидеть патч в репозитории Mate Desktop GitHub как зафиксировать 835055e0d0b950d3f66ad236de7e40942f6f7d8e . Однако мне непонятно, будет ли это исправление распространено для этого Ubuntu Mate LTS (16.04) или нет (поскольку это не действительно исправление безопасности). По-видимому, он будет распространен на 16.10, так как согласно сообщению в блоге Mate Desktop относительно «известных проблем», с 16.10 :

  

Сообщения о погоде в аплетах «Часы и погода» в настоящее время недоступны. Исправление уже выполнено, и обновленный пакет скоро появится после Beta 1.

Вот как я исправил его на своем компьютере (перекомпилируйте libmateweather с использованием источников Ubuntu):

  • Включить загрузку источников в APT. Это можно сделать в диалоговом окне Система / Администрирование / Программное обеспечение и обновления , проверив элемент Исходный код в вкладку Ubuntu software . Вы также можете включить их в файле /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 ).

  • Вам может потребоваться перезапустить апплеты или всю панель или удалить ее, а затем добавить ее или выйти из системы и снова войти в систему.

Это результат:

Примечания:

  • Все необходимые пакеты для перекомпиляции libmateweather будут установлены автоматически при запуске команды apt-get build-dep и при установке пакета fakeroot .

  • Я не уверен, что произойдет, если новая версия libmateweather будет выпущена и распространена для 16.04 (я предполагаю, что это изменение будет перезаписано). Однако, если для этой LTS выпущена новая версия, она может включать (или нет) это исправление. Способ избежать этого (переписывание) заключается в использовании sudo apt-mark hold libmateweather1 .

  • Если у вас несколько компьютеров, просто скомпилируйте эту единицу для каждой архитектуры и используйте файл .deb на всех ваших компьютерах. Если у вас много компьютеров для поддержки (в вашей компании, организации, школе или где-то еще), более полным решением будет создание локального частного репозитория, чтобы APT мог автоматически установить пакет из него.

ответ дан MV. 31.08.2016 в 06:30