Мой виджет погоды не работает
Мой виджет погоды больше не работает. Я использую Ubuntu MATE. Вот скриншот:
https://a sk-ubuntu.ru/images/851a0246003da3c3fa0f4ea2bcc7b93ea1dd9632.jpg
2 ответа
Правительство США что-то изменило и взломало данные, используемые этими приложениями (тоже сломало мой конки).
В частности:
Весь URL-адрес "weather.noaa.gov", на который ссылается приложение, отображает ошибку "Служба удалена". GNOME Weather (или, точнее, библиотека libgweather) использует этот URL для получения своих данных METAR. Он должен быть обновлен для работы с изменениями, внесенными в структуру домена для доставки METAR NOAA.
Источник OMG-Ubuntu
Информация о погоде в формате METAR загружалась с веб-сайта NOAA (это была всемирная информация) через библиотеку libgnomeweather (а затем через библиотеку libmateweather). Около четырех лет назад NOAA объявила, что прекратит эту услугу. Очевидно никто не заметил, и когда обслуживание было прекращено пару недель назад, люди начали находить сообщение Failed to get METAR data: 404 Not Found
в журнале системного журнала (или в моем случае Falló al obtener datos METAR: 404 Not Found.
, так как мой компьютер на испанском языке).
ОБНОВЛЕНИЕ: это уже исправлено в последней версии libmateweather (1.12.2), выпущенной для Ubuntu Mate 16.04, поэтому это решение больше не требуется. (Однако эта версия может не работать через прокси, но это другая проблема).
Исправление к этому уже было реализовано в libmateweather, вы можете увидеть патч в репозитории Mate Desktop GitHub как https://github.com/mate-desktop/libmateweather/commit/835055e0d0b950d3f66ad236de7e40942f6f7d8e. Тем не менее, мне не ясно, будет ли это исправление распространяться для Ubuntu Mate LTS (16.04) или нет (так как это на самом деле не исправление безопасности). По всей видимости, он будет распространяться до 16.10, как и в сообщении в блоге Mate Desktop относительно "известных проблем" с 16.10:
Отчеты о погоде в апплетах Clock и Weather в настоящее время недоступны. Исправление уже зафиксировано, и обновленный пакет появится вскоре после бета-версии 1.
Вот как я это исправил на своем компьютере (перекомпилируйте libmateweather, используя исходники Ubuntu):
Включить загрузку источников в 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
).Вам может потребоваться перезапустить апплет (ы) или всю панель или удалить ее, а затем добавить ее или выйти из системы и снова войти в систему.
Заметки:
Все необходимые пакеты для перекомпиляции libmateweather будут установлены автоматически при запуске команды apt-get build-dep и при установке пакета fakeroot.
Я не уверен, что произойдет, если новая версия libmateweather будет выпущена и распространена на 16.04 (я предполагаю, что это изменение будет перезаписано). Однако, если новая версия выпущена для этой LTS, она может включать (или не включать) это исправление. Чтобы избежать этого (переписывание), используйте
sudo apt-mark hold libmateweather1
,Если у вас несколько компьютеров, просто скомпилируйте один раз для каждой архитектуры и используйте файл.deb на всех своих компьютерах. Если у вас есть много компьютеров для обслуживания (в вашей компании, организации, школе или где-либо еще), более полным решением было бы создание локального частного репозитория, чтобы APT мог автоматически установить пакет из него.