Вопрос или проблема
Как и многие из вас, я получаю раздражающее уведомление о том, что есть ожидающее обновление 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 можно достичь несколькими способами, однако основное решение заключается в удалении файла автозапуска и обеспечении его отсутствия при обновлениях. Если этот процесс вызывает ненужные сложности, использование сценария для закрытия приложения является универсальным решением для многих пользователей.