Как остановить snapd от автообновления?
Я только что установил Ubuntu 18.04. Через несколько минут я заметил, что моя пропускная способность на удивление низкая. Я установил nethogs
и понял /usr/lib/snapd/snapd
потребляет мой интернет.
Вопросы:
- Как я могу отключить это? Это действительно мешает мне пользоваться интернетом.
- Можно ли отключить систему моментальных пакетов при установке Ubuntu?
Большое спасибо,
2 ответа
Пакеты Snap являются хорошим способом получить доступ к гораздо большему количеству программного обеспечения, чем раньше. Теперь вы можете получить в виде мгновенных пакетов Skype, последние версии LibreOffice, последние GIMP, все интегрированные среды разработки JetBrains или даже игры.
Все они устанавливаются с помощью приложения Ubuntu Software, и нет необходимости использовать командную строку.
Важный вопрос для вас заключается в следующем: действительно ли вам нужно отключить пакеты моментальных снимков?
Чтобы временно отключить пакеты моментальных снимков (до перезагрузки или при запуске с start
):
sudo systemctl stop snapd.service
Чтобы навсегда отключить пакеты моментальных снимков:
sudo systemctl stop snapd.service
sudo systemctl disable snapd.service
Чтобы включить пакеты оснастки:
sudo systemctl reenable snapd.service
sudo systemctl start snapd.service
Вы можете отключить автозапуск для сервиса. как это.
Если вам нужно обновить программу Snap, вы можете использовать команду snap refresh
PS Если эти ответы не помогли, вы можете сделать следующее:
sudo systemctl mask snapd.service
- полностью отключить сервис, связав его с /dev/null; вы не можете запустить сервис вручную или включить сервис.
sudo systemctl unmask snapd.service
- Удаляет ссылку на / dev / null и восстанавливает возможность включить и / или вручную запустить службу
Вы можете замаскировать свой сервис Snap с помощью:
systemctl mask snapd
А затем используйте этот скрипт, который даст вам возможность легко обновлять ваши снимки:
#!/bin/bash
# this script unmasts and starts the snapd service, do a refresh and disable it again
set -x
systemctl unmask snapd.service
systemctl start snapd.service
systemctl status --no-pager snapd.service
snap refresh
systemctl mask snapd.service
systemctl stop snapd.service
kill -9 $(pgrep snapd)
Положи это в
/usr/local/sbin/snap-update
и дайте ему права на исполнение с помощью
chmod +x
.
Тогда вы можете просто запустить:
sudo snap-update
Я создал здесь суть, которая также удаляет старые привязки после установки новых.
Примечание. Если вы запустите
apt
автоматическое обновление, и есть обновление для пакета, которым управляет
snapd
, он будет зависать, если snapd замаскирован, поэтому не забудьте демаскировать snapd в этом случае и запустить
apt upgrade
еще раз
Я пытался определить pid
за /usr/lib/snapd/snapd
, с помощью sudo nethogs wlp4s0
,
Затем убил этот процесс, используя sudo kill -9 pid_of_the process
,
Затем отключил этот процесс с помощью sudo systemctl disable snapd.service
,
С тех пор я живу мирной жизнью. Мое использование данных также остается под контролем.
Вы можете изменить время обновления привязки, скажем, на понедельник, 12 часов утра, следующим образом:
sudo snap set system refresh.timer=mon,12:00
Тогда вам нужно обновить его
sudo snap refresh
Как уже упоминалось, вы также можете временно отключить обновления:
sudo systemctl stop snapd.service
Я вижу, что отключить службу недостаточно, чтобы остановить службу. для меня мне нужно было отключить snapd.socket
sudo systemctl stop snapd.socket
sudo systemctl disable snapd.socket
Обновления снимков контролируются разработчиками приложений, если вы не хотите, чтобы конкретная привязка обновлялась, вы можете попросить разработчика создать "статический" канал, который они просто не обновляют, тогда обновления будут простым вопросом переключения каналов с `sudo snap refesh --channel=
я вижу, что nextcloud подходит к этому таким образом; у них, среди прочего, есть канал для версии 12, которая не обновлялась с 2018 года.