Решено: очистка системы

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Решено: очистка системы

Сообщение nadge »

Как можно удалить из системы все файлы, не принадлежащие ни одному пакету?


Чтобы разом и темпы, и кэши, и лишние конфиги, и просто мусор и т.д.

З.Ы. Только естественно нужна возможность просмотреть список файлов перед удалением, дабы не удалилось чего лишнего.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: очистка системы

Сообщение serzh-z »

Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Решено: очистка системы

Сообщение nadge »

serzh-z, спасибо. Открыл для себя скрипт findcruft. Вроде это то, что нужно.
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Решено: очистка системы

Сообщение nadge »

serzh-z, а он еще работает? 2004 год всетаки.

Список выводит, но нет уверенности в его корректности.
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Решено: очистка системы

Сообщение nadge »

Создал вручную список мусора на основе анализа базы portage. Он уменя получился чуть больше, чем у findcruft. Ноу последнего не было ни одного файла, не найденного мною.


Собственно систему очистил :) Кроме /etc. Потом пришлось переустанавливать gcc (благо из бинарного пакета) и восстановить симлинки для binutils и python, а так же переустановить тему KDM, драйвера нвидии и пару шрифтов.

Зато теперь точно ни одного лишнего файла :)
Спасибо сказали:
Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Re: Решено: очистка системы

Сообщение Atragor »

nadge, а как проводился анализ базы portage?
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Решено: очистка системы

Сообщение nadge »

Вот так:

Код: Выделить всё

#!/bin/bash

find / > all_files

contents=$(cat /var/db/pkg/*/*/CONTENTS | awk '{print $2}')
touch managed_files
for content in ${contents}; do
echo $content >> managed_files
done

sort -u all_files > all_sorted
sort -u managed_files > managed_sorted

comm -1 -3 managed_sorted all_sorted

rm all_files managed_files all_sorted managed_sorted

Строки 5-9.
Скрипт сравнивает содержимое /var/db/pkg/*/*/CONTENTS со списком найденных в системе файлов. Идею подглядел в findcruft, только он огромный и сложный какой-то, я половину не понял.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: очистка системы

Сообщение serzh-z »

nadge писал(а):
08.09.2007 17:11
Список выводит, но нет уверенности в его корректности.
Я со времён того топика избегаю "чистки"... В частности чистки /etc. :)
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Решено: очистка системы

Сообщение nadge »

serzh-z, /etc я тоже не стал чистить :) А так вцелом после чистки полет нормальный, ничего не глючит.
Спасибо сказали:
Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Re: Решено: очистка системы

Сообщение Atragor »

nadge, спасибо, посмотрю, что у меня лишнего завалялось.
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Решено: очистка системы

Сообщение nadge »

Добавлю на всякий случай, что в системе много файлов, которых нет составе установленных пакетов, но системе они необходимы. Например, упомянутая выше база portage или содержимое /lib/modules. Их нужно исключать при чистке.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: очистка системы

Сообщение serzh-z »

nadge писал(а):
09.09.2007 19:02
которых нет составе установленных пакетов, но системе они необходимы
Именно, особенно полно симлинков, которые в базе Portage не присутствуют.
Спасибо сказали:
Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Re: Решено: очистка системы

Сообщение Atragor »

А если я, скажем, в /usr/lib/scons-0.97 (например) нашел файлы, которых нет в /var/db/pkg/bla-bla-bla/CONTENTS, это значит, что их можно удалить? Или тут все намного хитрее?
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: очистка системы

Сообщение serzh-z »

В большинстве случаев - да.

Но, как показывает практика, некоторые пакеты ebuild могут в постинсталляционных шагах (после регистрации файлов и их контрольных сумм в базе пакетов) - например .pyc-файлы для приложений Python или тот же "/usr/bin/gcc32"... Эти файлы потом обычно убираются (если они не являются частью базовой системы и т.д.) пакетами при деинсталляции, но в базе файлов их нет.

Посему, имхо, лучше просто правильно устанавливать/удалять пакеты и положится на пакетный менеджер.
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Решено: очистка системы

Сообщение nadge »

Atragor, попробуйте :) Система работоспособности не потеряет. Я удалил (как ни странно, этот же каталог), а потом emerge -1 scons. На всякий случай. Сам сконс мне нужен для пары программ.

serzh-z
Именно, особенно полно симлинков, которые в базе Portage не присутствуют.

Да, это создает определенные проблемы...


Вцелом согласен, что лучше полагаться на пакетный менеджер, но в то же время, думаю, стоит следовать правилу "доверяй, но проверяй".
Спасибо сказали: