[Comm] Re: [Comm] Кэш apt

Konstantin Vinokurov altlinux на tut.by
Сб Май 24 17:53:19 MSD 2003


В сообщении от 24 Май 2003 11:16 ASA написал(a):
> Hello Konstantin,
>
> Saturday, May 24, 2003, 12:34:16 PM, you wrote:
>
> KV> Вчера пытался почистить /var/cache/apt/archives Сделал
> список KV> rpm-ок 1, 2-го дисков Юноши 2.2 и список rpm-ок в
> кэше. Я был KV> очень удивлен, узнав что имена файлов в кэше и
> на дисках не KV> совпадают. Зачем apt-get изменяет символы в
> именах файлов (. в _ KV> или %3a и _ в %5f)?
>
> Присмотритесь внимательно. Он изменяет не каждую точку, а
> только те точки, которые отделяют имя пакета от версии и
> версию от архитектуры - так проще обрабатывать имена пакетов.
> Соответственно, просто подчеркивания (не несущие смысла
> разделения частей имени файла) тоже заменяются - чтобы "не
> путались под ногами".

А обратно оно могёт?

> KV> Как тогда удалить из кэша те файлы, которые
> KV> есть на дисках, оставив скачанные из интернета?┼э
> Обработайте имена файлов с дисков подоходящим sed-выражением
> а-ля
>
> sed -e "s/_/%5f/" | sed -e
> "s/^\([^.]\+\)\.\(.\+\)\.\([^.]\+\.rpm\)$/\1_\2_\3/"
>
> (не проверял, но если не сработает - пишите, проверю)

Не прошло. Я придумал следующее:

#! /bin/sh
cat APT | sed s/%5f// | sed s/%3a// | tr -d '_.-' | tr -d 
'[:digit:]' > APT.1
cat CD.1 | sed s/%5f// | sed s/%3a// | tr -d '_.-' | tr -d 
'[:digit:]' > CD.1.1

comm -1 -2 APT.1 CD.1.1 > 1

И потом вручную удаляю файлы из 1.


Подробная информация о списке рассылки Community