Очистка системы до первоначального состояния

Есть старенький ноутбук, использую его для экспериментов. За год было установлено и удалено куча всякого софта. Возможно ли удалить разом все, чтобы остались только пакеты установленные при первоначальной установке (base, base-devel, загрузчик), чтобы не осталось мусора, пустых папок и всяких хвостов?
abc
Возможно ли удалить разом все
Здесь посмотрите
abc
Возможно ли удалить разом все, чтобы остались только пакеты установленные при первоначальной установке (base, base-devel, загрузчик), чтобы не осталось мусора, пустых папок и всяких хвостов?
Думается, проще и надежнее это сделать вручную, т.е. оставить только пакеты из указанных групп + обдуманное удаление лишнего.

Я время от времени проделываю следующее (система не экспериментальная):
  • смотрю какие явно установленные пакеты (pacman -Qe) мне нужны. Если какими-то явно не пользуюсь, но они так же являются чьими-то зависимостями - обозначаю их как зависимости (pacman -D –asdeps ==> тут два дефиса, тег [список] один "съедает");
  • удаляю сироты (pacman -Qdtt), не бездумно, конечно;
  • смотрю файлы, которых нет в пакетной базе пакмана (lostfiles), удаляю явно ненужное;
  • запускаю bleachbit от рута и от пользователя;
  • в mc прохожусь по директориям корня и хомяка в т.ч. и скрытым с целью поиска оставшихся хвостов, кеша, миниатюр…
Автоматизированного средства не знаю, да и вряд ли это хорошая идея.
iradia
Здесь посмотрите
Очень интересно. Спасибо.

Единственное, чтобы не забыть учесть изменение группы base. Хотя тоже вопрос, что останется после чистки на старых системах.
А смысл все удалять если есть настроенная система?
Места мало - так подчистить что много занимает, ncdu в помощь
Я в основном пакеты из аура внимательно смотрю на нужность, а из реп особо каши не просят сирот подчистить да и все.
Ну иногда грохну группу типа
pacman -Rds $(pacman -Qsq plasma)
А лишнее типа локалей, доков и пр. просто ноэкстрат в конфиге пакмана.
vs220
А смысл все удалять если есть настроенная система?
Дык система же для экспериментов.

vs220
ncdu в помощь
Мне хватает
# du -hxd1 /
+ mc
)

vs220
А лишнее типа локалей, доков и пр. просто ноэкстрат в конфиге пакмана.
Ну с доками - вопрос вкуса: наглядно и перевести можно налету.
Кстати, многие устанавливают пакет man-pages, который, можно сказать с 99% уверенностью, вам не понадобится, разве что вы захотите локально почитать ман для неустановленной проги.

А вот про локали не понял. Это что, каждую ненужную локаль "ноэкстрактить"? Это напряжно прописать будет. Регулярные выражения, как я понимаю, тут не проходят?
Да кажется проходят. У меня так
[anode@TM-8481 etc]$ cat /etc/pacman.conf | grep NoExtr
NoExtract   = usr/share/doc/*
NoExtract   = usr/share/licenses/*
NoExtract   = usr/share/gtk-doc/*
NoExtract   = usr/share/info/*
NoExtract   = usr/share/locale/[a-q,s-t,v-z]*/*
NoExtract   = usr/share/locale/r[a-t,v-z]*/*
NoExtract   = usr/share/locale/u[a-j,l-z]*/*
NoExtract   = usr/share/man/[a-q,s-t,v-z]?/*
NoExtract   = usr/share/man/??_??*/*
NoExtract   = usr/share/man/r[a-t,v-z]*/*
NoExtract   = usr/share/man/u[a-j,l-z]*/*
#NoExtract   = usr/share/man/{[a-q]?,[a-q]?_*,r[!u],[s-t]*,u[!k],[v-z]*}/*


правда не все отлавливает в man, давно писалось, а локалей две ua и ru.
PS. Соврамши. uk, ru и pysol прилепил недавно ru_RU.
PSS. Коряво прописал, стало стыдно :(
NoExtract   = usr/share/doc/*
NoExtract   = usr/share/licenses/*
NoExtract   = usr/share/gtk-doc/*
NoExtract   = usr/share/info/*
NoExtract   = usr/share/locale/[^u,r]*/*
NoExtract   = usr/share/locale/r[^u]*/*
NoExtract   = usr/share/locale/u[^k]*/*
NoExtract   = usr/share/man/[^r,u]?*/*
NoExtract   = usr/share/man/??_??*/*
NoExtract   = usr/share/man/r[^u]*/*
NoExtract   = usr/share/man/u[^k]*/*
anode
NoExtract   = usr/share/locale/[^u,r]*/*
NoExtract   = usr/share/locale/r[^u]*/*
NoExtract   = usr/share/locale/u[^k]*/*
Тогда просто:
NoExtract = usr/share/locale/* !usr/share/locale/en/* !usr/share/locale/ru/* !usr/share/locale/uk/*
Так понятнее. И работает. )
А шо так было можно? )))
Aivar
Мне хватает
du -hxd1 /
ncdu имхо все же удобней и наглядней да и удалить в ней же без лишних движений можно, но то дело привычки.

Aivar
с доками - вопрос вкуса
Согласен, хотя все же не всем нужен например gtk-doc

Aivar
каждую ненужную локаль "ноэкстрактить"? Это напряжно прописать будет. Регулярные выражения, как я понимаю, тут не проходят?
Можно "ноэкстрактить" разницу с нужными (их обычно не много)
например
NoExtract = usr/share/locale/* !usr/share/locale/ru*  !usr/share/locale/en*  !usr/share/locale/locale.alias
Пока писал уже и сами показали
Ну заодно и у себя ru_Ru en_US уберу они и так попадут
Или регулярные использовать anode пример привел

ман
NoExtract = file …
All files listed with a NoExtract directive will never be extracted from a package into the
filesystem. This can be useful when you don’t want part of a package to be installed. For example,
if your httpd root uses an index.php, then you would not want the index.html file to be extracted
from the apache package. These files refer to files in the package archive, so do not include the
leading slash (the RootDir) when specifying them. Shell-style glob patterns are allowed. It is
possible to invert matches by prepending a file with an exclamation mark. Inverted files will
result in previously blacklisted files being whitelisted again. Subsequent matches will override
previous ones. A leading literal exclamation mark or backslash needs to be escaped.

Мой для члепримера
NoExtract = usr/share/dbus-1/services/org.a11y.*  usr/share/dbus-1/accessibility-services/org.a11y.*  usr/lib/systemd/user/at-spi-dbus-bus.service usr/share/doc/* usr/share/info/* usr/share/gtk-doc/html/* usr/share/licenses/* usr/share/locale/* !usr/share/locale/ru* !usr/share/locale/ru_Ru* !usr/share/locale/en* !usr/share/locale/en_US* !usr/share/locale/locale.alias

P.s. c usr/share/gtk-doc* у меня по моему какой то питоновский пакет не собирался менял на usr/share/gtk-doc/html/* (возможно просто кривые руки )
 
Зарегистрироваться или войдите чтобы оставить сообщение.