Привет Debian Russian! В письме от Kiryanov Vasiliy <[EMAIL PROTECTED]> (Wed, 9 Apr 2003 00:26:27 +0300) было написано :
> 2) А почему после apt-get update, не обновляется база dselect, и нужно > дополнительно использовать dselect update, почему эти две программы > используют разные базы? Собственно и apt-get, и dselect используют одну и ту же базу пакетов. Состояние пакетов хранится в /var/lib/dpkg/status, и резервируется предыдущее состояние в /var/lib/dpkg/status-old. Также имеются файлы /var/lib/dpkg/available - список всех доступных пакетов с их описанием. apt-get дополнительно имеет кэшы пакетов /var/cache/apt/*.bin, хранящие указатели на информацию в базе и зависимости пакетов. Ещё есть каталог /var/lib/apt/lists, в котором хранятся списки пакетов отдельно для каждого архива из файла /etc/apt/sources.list При 'apt-get update' происходят следующие действия: - скачиваются файлы Packages из архивов пакетов и помещаются в /var/lib/apt/lists (имена файлов формируются на основе расположения архива) - далее они объединяются в единый список и помещаются на место /var/lib/dpkg/available (старый список сохраняется) - изменяется ли /var/lib/dpkg/status - я ещё не уловил - переписываются кэшы пакетов Вот вроде бы и всё, что делает apt-get. Команду 'dselect update' сам я не пускал, но судя по man'у должно происходить тоже самое. Возможно apt-get и dselect различаются в данном случае по параметрам передаваемым в dpkg. > 1) А может кто-то знает способ как привести его базу в соответствие с > тем что уже на самом деле, то есть что установлено, то пеметить как > устанолено, что удалено как удалено, а все пометики для установки и > для удаления снести! Судя по тому как была описана проблема, то произошли некоторые изменения файла /var/lib/dpkg/status. Теперь в нём должно быть много примерно таких записей: Package: имя_пакета Status: install ok not-installed (Т.е. пакет отмечен для установки и неустановлен) либо Package: имя_пакета Status: deinstall ok installed (Т.е. пакет отмечен для удаления и установлен) Также возможны промежуточные состояния (подробнее 'man dpkg' - секция INFORMATION ABOUT PACKAGES, где PACKAGE STATES - третье поле строки Status, а PACKAGE SELECTION STATES - первое поле) Дальнейшее - дело техники. Искать неправильное сочетание и заменить на правильное. (Кто напишет скрипт - будет очень интересно взглянуть). С наилучшими, Woland.