С клиентом Яндекс.Диск’а для Linux версии 0.1.5.940 (возможно и с другими) возникает проблема: его невозможно обновить до следующей версии, или удалить, так как, при попытке удаления, процесс aptitude зависает.
Краткое гугление на эту тему позволило найти только одно упоминание: https://toster.ru/q/119609 где пользователь долго мучается с удалением, и наконец ему это удаётся, путём разнообразных танцев с бубном.
В чём собственно проблема?
Кратко: проблема в том, что внутренний девелоперский сервер яндекса недоступен снаружи, и, мало того, он даже не резолвится снаружи.
Подробно:
В скрипте /var/lib/dpkg/info/yandex-disk.postinst указаны пути к репозиториям, в которых скрипт установки будет искать GPG-ключ.
Конкретно, в начале текста файла указано:
EXT_REPOURL="http://repo.yandex.ru/yandex-disk" # URL of the external repository INT_REPOURL="http://dist.yandex.ru/repo.yandex.ru/yandex-disk" # URL of the internal repository |
где EXT_REPOURL — это доступный извне репозиторий, а INT_REPOURL — доступный только изнутри компании Яндекс.
Также, чуть ниже указано:
GPG_FILE="YANDEX-DISK-KEY.GPG" |
Дальше, идёт запрос при помощи команды wget к файлу $INT_REPOURL/$GPG_FILE, после чего, если запрос не удался, запрос идёт по адресу $EXT_REPOURL/$GPG_FILE.
А проблема в том, что сервер dist.yandex.ru не резолвится, и, в некоторым случаях, делает это ОЧЕНЬ ДОЛГО.
Причём, таймаут для wget не работает.
Что нужно делать:
- После того, как aptitude зависла, нажать Ctrl+C и дождаться, пока aptitude поймёт что пора остановиться
- Открыть файл
/var/lib/dpkg/info/yandex-disk.postinst
- Просто заменить строчку в INT_REPOURL на значение, прописанное в EXT_REPOURL
- Запустить
dpkg --configure -a
Оставить комментарий