Как предотвратить автоматический запуск snap-store

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

Как и многие из вас, я получаю раздражающее уведомление о том, что есть ожидающее обновление snap-store:

Ожидающее обновление “snap-store”

Закройте приложение, чтобы избежать сбоев (осталось 13 дней)

Есть много предложений по этому вопросу о том, как убрать уведомление, но оно появится снова, как только будет новое обновление для snap-store.

Вопрос

Как я могу предотвратить автоматический запуск snap-store при входе в систему, не удаляя его?

Причина проблемы

Насколько я могу судить, причина автоматического запуска snap-store заключается в том, что в текущей версии есть файл автозапуска, расположенный по адресу ~/snap/snap-store/current/.config/autostart/ubuntu-software-service.desktop

~/snap/snap-store/current — это просто символьная ссылка, указывающая на текущую установленную версию snap-store:

ls -ld ~/snap/snap-store/current
lrwxrwxrwx 1 user user 3 Sep 28 08:43 /home/user/snap/snap-store/current -> 599

Я не уверен, когда был добавлен файл автозапуска, но я вижу, что на версии 41.3-66-gfe1e32544+ (ревизия 582) этого файла не было:

ls ~/snap/snap-store/582/.config/autostart
ls: не удается получить доступ к '/home/user/snap/snap-store/582/.config/autostart': Нет такого файла или каталога

А в ревизии 592 он уже есть:

$ ls ~/snap/snap-store/*/.config/autostart
/home/user/snap/snap-store/592/.config/autostart:
ubuntu-software-service.desktop

Что я пробовал

  • Этот ответ предлагает, что для предотвращения запуска snap при загрузке нужно отключить службу. Но для snap-store нет службы.

  • Нормальный способ предотвратить автоматический запуск приложения — создать файл автозапуска, который должен иметь приоритет над системным. Так я и сделал:

    $ cat ~/.config/autostart/ubuntu-software-service.desktop 
    [Desktop Entry]
    Name=Ubuntu Software
    Exec=snap-store.ubuntu-software --gapplication-service %U
    OnlyShowIn=GNOME;Unity;
    # Отключить автозапуск
    Hidden=true
    

    К сожалению, это не сработало.

  • Я пробовал создать скрипт в /etc/profile.d/, чтобы завершить snap-store, но он запускается до входа в систему, до того как snap-store запустился

Текущий обходной путь

cat ~/.config/autostart/stop-snap-store.desktop
[Desktop Entry]
Type=Application
Name=Stop Ubuntu Software
Exec=snap-store --quit
X-GNOME-Autostart-Delay=30
OnlyShowIn=GNOME;Unity;
NoDisplay=True

Или, чтобы внести изменения для всех пользователей, положите stop-snap-store.desktop в /etc/xdg/autostart/

Вы так близки!

Автозапуск snap находится не в ~/.config/autostart/
Они расположены в ~/snap/<application>/current/.config/autostart/
(справка)

Давайте посмотрим на автозапуск для snap-store:

$ ls -lah ~/snap/snap-store/current/.config/autostart/
lrwxrwxrwx 1 me me   66 Nov 26 08:24 ubuntu-software-service.desktop -> /snap/snap-store/current/autostart/ubuntu-software-service.desktop

Автозапуск — это ссылка на файл в /snap. Мы не можем редактировать этот файл (файлы в /snap только для чтения)
Но вы можете удалить (или восстановить) ссылку.

REMOVE:  $ rm ~/snap/snap-store/current/.config/autostart/ubuntu-software-service.desktop
RESTORE: $ ln -s /snap/snap-store/current/autostart/ubuntu-software-service.desktop ~/snap/snap-store/current/.config/autostart/

Snapd снова создаст ссылку при следующем обновлении этого snap, так что это не постоянное решение. Неподвижность, самовосстановление и частые обновления — ключевые особенности snap. Люди хотят этих функций в Ubuntu уже много лет.

Фундаментально, автозапуск в snap настраивается разработчиком, и эти определения разработчика ограничивают пользовательские настройки (снова, это давно желаемая функция snap).

Я никогда не находил лучшего решения, кроме упомянутого в моем вопросе обходного пути.

Тем не менее, кажется, что начиная с Ubuntu 23.10 старое приложение snap-store было заменено на Центр приложений.

К счастью, Центр приложений не настроен на автоматический запуск. Так что в конечном итоге “исправление” этой проблемы — обновиться до более новой версии Ubuntu.

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

Чтобы предотвратить автоматический запуск snap-store при входе в систему, важно понимать, что текущая версия snap-store имеет файл autostart, который активирует приложение. Вот пошаговое руководство, как это сделать, не удаляя сам snap-store:

1. Понимание проблемы

Snap-store запускается автоматически из-за наличия файла автозапуска, который находится по адресу:

~/snap/snap-store/current/.config/autostart/ubuntu-software-service.desktop

Этот файл создается при установке snap-store и считается не редактируемым, поскольку файлы внутри snap-пакетов имеют ограничения на запись. Следовательно, любые изменения, которые вы сделаете в этом файле, могут быть перезаписаны при следующем обновлении snap-store.

2. Удаление файла автозапуска

Чтобы предотвратить автоматический запуск snap-store при входе в систему, вы можете удалить ссылку на файл автозапуска. Для этого выполните команды в терминале:

rm ~/snap/snap-store/current/.config/autostart/ubuntu-software-service.desktop

3. Восстановление файла автозапуска при необходимости

Если вам нужно будет снова активировать автоматический запуск, вы можете восстановить ссылку с помощью следующей команды:

ln -s /snap/snap-store/current/autostart/ubuntu-software-service.desktop ~/snap/snap-store/current/.config/autostart/

4. Постоянное отключение автоматического запуска (рабочие обходные пути)

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

Создайте файл автозапуска, который будет закрывать snap-store через некоторое время после входа в систему:

nano ~/.config/autostart/stop-snap-store.desktop

И вставьте туда следующее содержимое:

[Desktop Entry]
Type=Application
Name=Stop Ubuntu Software
Exec=snap-store --quit
X-GNOME-Autostart-Delay=30
OnlyShowIn=GNOME;Unity;
NoDisplay=True

Это заставит систему ждать 30 секунд после завершения сеанса, прежде чем завершить работу snap-store, если он запустился.

5. Обновление системы

Если вы используете более старую версию Ubuntu, возможно, будет полезно рассмотреть возможность обновления до более новой версии, такой как Ubuntu 23.10, где snap-store был заменен на App Center, который не имеет аналогичной проблемы с автоматическим запуском.

Заключение

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

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

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