Ваша система не может подключиться к магазину snap.

Вопрос или проблема

Я попытался обновить свою подсистему Windows Ubuntu до версии 18.10, используя эту инструкцию:
https://linuxconfig.org/how-to-upgrade-ubuntu-to-18-10-cosmic-cuttlefish#h9-how-to-upgrade-ubuntu-the-debian-way

Но во время обновления я получаю такую ошибку:

 Ваша система не может подключиться к snap store, пожалуйста, убедитесь, что у вас есть подключение к Интернету и обновите настройки   │
 │ брандмауэра или прокси по мере необходимости, чтобы вы могли достичь snap store.                                           │
 │                                                                                                                   │
 │ Вы можете вручную проверить подключение, запустив "snap info lxd"                                                │
 │                                                                                                                   │
 │ Прерывание приведет к сбою обновления и потребует повторной попытки после восстановления работоспособности snapd на системе.   │
 │                                                                                                                   │
 │ Не удается подключиться к snap store

Мой брандмауэр отключен, поэтому я не вижу причин, почему это не работает.

Я также пытался запустить snap info lxd, но

Взаимодействие с snapd пока не поддерживается в Windows Subsystem for Linux.
Эта команда оставлена доступной только в документационных целях.

Вот полное сообщение в командной строке, когда я пытаюсь выполнить обновление:

Будут установлены следующие дополнительные пакеты:
  lxd
Будут обновлены следующие пакеты:
  lxd
1 обновлено, 0 новых установлено, 0 удалено и 227 не обновлено.
180 не полностью установлены или удалены.
Необходимо получить 0 B/11.1 kB из архивов.
После этой операции будет освобождено 20.5 MB дискового пространства.
Хотите продолжить? [Y/n] y
Предварительная настройка пакетов ...
(Чтение базы данных ... 61051 файлов и каталогов в настоящее время установлены.)
Подготовка к распаковке .../archives/lxd_1%3a0.4_all.deb ...
invoke-rc.d: не удалось определить текущий уровень выполнения
Остановка гипервизора контейнеров на основе LXC: (не запущен).
=> Установка LXD snap
==> Проверка подключение к snap store
===> Не удается подключиться к магазину
===> Прерывание по запросу пользователя
dpkg: ошибка обработки архива /var/cache/apt/archives/lxd_1%3a0.4_all.deb (--unpack):
 новый предустановочный скрипт пакета lxd вернул код ошибки 1
invoke-rc.d: не удалось определить текущий уровень выполнения
Во время обработки произошли ошибки:
 /var/cache/apt/archives/lxd_1%3a0.4_all.deb
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)

Есть идеи, как я могу это исправить? У подсистемы есть подключение к Интернету, поэтому я не уверен, почему она не может подключиться к snap store

Этот вопрос с WSL от Microsoft полностью решил проблему для меня. По сути, все сводилось к:

  1. Прервать скрипт do-release-upgrade
  2. Перезапустить Ubuntu
  3. Удалить lxd с помощью: sudo dpkg --force-depends --purge lxd-client lxd
  4. Завершить с sudo apt upgrade

Я столкнулся с той же проблемой и нашел этот вопрос.

На данный момент единственный ответ требует отмены скрипта do-release-upgrade. Я этого не хочу.

Вот решение:

Когда появилось сообщение об ошибке от lxd, у вас есть три выбора, один из которых — пропустить.

После выбора пропустить появилось следующее сообщение:

Пропуск не разрешен, когда LXD уже инициализирован
LXD, кажется, уже настроен на этой системе.
Пожалуйста, остановите LXD и удалите локальные данные в /var/lib/lxd/, если вы хотите пропустить установку LXD snap и миграцию локальных данных.
                                     <Ok>

Итак, сначала я открыл другое окно оболочки Ubuntu и ввел: sudo /etc/init.d/lxd stop
Ответ был Остановка гипервизора контейнеров на основе LXC: (не запущен).

Затем во-вторых я удалил указанную в сообщении директорию: sudo rm -rf /var/lib/lxd

И наконец, я вернулся к первому окну оболочки Ubuntu и нажал клавишу ввода. Снова выбрал пропустить. На этот раз установка продолжилась.

Метод JBCP отлично сработал для меня. Небольшая разница: я остановил lxd и удалил /var/lib/lxd перед запуском do-release-upgrade. Теперь я мог просто нажать “пропустить”, когда система дошла до этого момента. Никаких дополнительных окон или шагов. Большое спасибо, иначе я бы этого не нашел.

Просто для протокола: Обновление WSL с 20.4 до 22.4 с do-release-upgrade, там опция пропуска работала (для меня:) прекрасно без какого-либо вмешательства

.

Ответ или решение

Ваш вопрос о проблемах с доступом к магазину snap в одной из версий подсистемы Windows для Linux (WSL) обусловлен несколькими особенностями функционирования WSL и особенностями использования snap в этой среде. Давайте разберем суть проблемы и предложим возможные решения.

Теория

Windows Subsystem for Linux (WSL) создает в Windows среду, позволяющую запускать приложения Linux, но с некоторыми ограничениями. Одним из таких ограничений является поддержка системы управления пакетами snap, которая отличается от традиционного apt. В WSL1, например, snap не поддерживается, так как он требует системные функции, недоступные в этой версии (например, systemd). WSL2 получил полноценную поддержку ядра Linux, примерно решив этот вопрос, но полностью функциональные возможности snap все еще могут быть ограничены.

Советы из этой ситуации требуют понимания, что не всегда возможно идеально отразить функционал Linux в Windows через WSL. Поэтому обновление или установка пакетов, зависящих от snap, может вызвать трудности, как это видно в вашем случае.

Пример

Вы натолкнулись на ошибку при попытке обновления, которая гласит, что система не может связаться с магазином snap. Попытки произвести диагностику через команду snap info lxd также ни к чему не привели, поскольку ваша среда не поддерживает взаимодействие с snapd.

Ваша среда сообщала:

Interacting with snapd is not yet supported on Windows Subsystem for Linux.
This command has been left available for documentation purposes only.

Это сообщение указывает, что ваша версия WSL не поддерживает snap, и дальнейшие попытки использовать эту функциональность приведут к ошибкам. Причина в том, что snapd требует определенных системных процессов и возможностей ядра, которые могут отсутствовать в вашей конфигурации WSL.

Применение

Вот ряд шагов, которые можно сделать для устранения или обхода проблемы:

  1. Проверка версии WSL и совместимости: Убедитесь, что используете WSL2, так как она предоставляет полноценное ядро Linux и лучше поддерживает дальнейшую интеграцию пакетов. Вы можете это проверить и обновить WSL при необходимости. Для перевода существующей инстанции на WSL2 можете использовать команду:

    wsl --set-version <distro-name> 2
  2. Правильное обновление пакетов: В случае, если snap вам не принципиален, рекомендуем использовать традиционные средства управления пакетами, такие как apt, которые полностью поддерживаются. Это может требовать удаления зависимостей от snap, что описано в вашем опыте, используя хак:

    sudo dpkg --force-depends --purge lxd-client lxd
    sudo apt upgrade
  3. Удаление конфликтующих данных из LXD: Если вы ранее инициализировали LXD, следует остановить эту службу и удалить связанные с ней данные до начала обновления:

    sudo /etc/init.d/lxd stop
    sudo rm -rf /var/lib/lxd
  4. Попробуйте новое действие: Если WSL не является строгим требованием, рассмотрите возможность использования виртуальной машины для запуска Ubuntu, где snap и lxd будут работать без ограничений WSL.

Таким образом, фактическую функциональность snap в WSL лучше минимализировать или избегать, используя инструменты и пакеты, которые не требуют его использования в вашей версии системы. Однако, если snap функциональность критична, изучите возможность работы с WSL2, или, возможно, даже полноценной виртуализированной средой, что упростит управление пакетами и уменьшит количество конфликтов.

Оцените материал
Добавить комментарий

Капча загружается...