Когда я запускаю snap list --all
команду, она показывает все установленные версии пакетов Snap.
Name Version Rev Tracking Developer Notes
atom 1.26.1 150 stable snapcrafters classic
brave v0.22.669dev 23 stable brave -
core 16-2.32.6 4571 stable canonical core
core 16-2.32.5 4486 stable canonical core,disabled
firefox 59.0.2-1 71 stable mozilla disabled
firefox 60.0-2 85 stable mozilla -
gimp 2.10.0 38 stable snapcrafters disabled
gimp 2.10.0 39 stable snapcrafters -
gimp 2.8.22 30 stable snapcrafters disabled
gnome-3-26-1604 3.26.0 64 stable/… canonical -
gnome-3-26-1604 3.26.0 62 stable/… canonical disabled
gnome-characters 3.28.0 86 stable/… canonical -
gnome-characters 3.26.2 69 stable/… canonical disabled
gnome-logs 3.26.2 25 stable/… canonical disabled
gnome-logs 3.28.0 31 stable/… canonical -
gnome-system-monitor 3.26.0 36 stable/… canonical disabled
gnome-system-monitor 3.26.0 39 stable/… canonical -
libreoffice 6.0.3.2 59 stable canonical disabled
libreoffice 6.0.4.2 63 stable canonical -
Сейчас там так много отключенных пакетов, которые больше не используются. Поэтому я хочу удалить эти пакеты. Здесь команда есть snap remove gnome-3-26-1604 --revision=62
. Теперь я должен сделать это для всех ревизий и для всех пакетов один за другим. Есть ли какая-нибудь команда, которая удалит отключенные или неиспользуемые пакеты моментальных снимков одной строкой команды?
Заранее спасибо...
Ответы:
Я постараюсь добавить это в ближайшее время (как 20%). Между тем, вы могли бы бросить
в сценарий оболочки и запустить его.
источник
snap remove
(если вы это сделалиsnap login
)xargs
чтобы сделать это oneliner :)Я нашел более элегантным и простым в использовании псевдонимом (используя одинарные кавычки) это решение :
Начиная с версии 2.34 и более поздних, вы можете установить максимальное количество версий оснастки, сохраняемых системой, установив
refresh.retain
параметр ( источник ).источник
Возможность очистки / удаления старых / отключенных моментальных снимков обсуждалась ранее, но еще не реализована. Между тем, к сожалению, это ручной процесс.
источник
Основываясь на предыдущих ответах, вы, вероятно, должны делать что-то вроде:
Это позволяет избежать выдачи ошибки, когда нет отключенной редакции моментального снимка, и ищет слово «отключено», в частности, в столбце примечаний.
источник
$6
а не$5
.snap list
Команда действительно нуждается--format
параметр , чтобы выход может быть последовательным для сценариев.Основываясь на предложениях @Chipaca, @ Ctrl-C и @Pablo Lalloni:
При этом выполняется поиск «отключено» в столбце «Примечания»
snap list --all
и выполняетсяsnap remove <snap> --revision <rev>
соответствующая привязка.источник
Увидев заметку Майка об этих скриптах, разбивающихся между версиями, потому что количество выходных столбцов изменилось, я посмотрел, есть ли какие-нибудь машиночитаемые привязки к этой вещи.
То, что я нашел, было REST API Snapd .
Эквивалент
snap list --all
ISВозвращает JSON. Чтобы отфильтровать его до неактивных пакетов и включить в список
snap remove
команд, вы можете использоватьjq
:Технически вы можете выполнить все это в одной строке (разрывы, которые я вставил, предназначены для удобства чтения), но это довольно скромно, поэтому я обернул это в скрипт: remove-disabled-snaps.sh
источник