On Sat, Dec 24, 2011 at 03:17:03AM +0400, Dmitry V. Levin wrote: DVL> apt масштабируется пропорционально размеру индексов. Так что, строго DVL> говоря, тормознее он становится не столько вследствие импорта из федоры, DVL> сколько от роста пакетной базы. Да. DVL> Есть два независимых метода борьбы с этим торможением: DVL> - Сделать apt существенно быстрее, чтобы эффект торможения не так сильно DVL> раздражал; мы думаем над этим. Самая глобальная проблема в том, что у rpm и apt свои базы, и apt перед рядом операций приходится создавать кэш, вычисляющийся на основе этих двух баз (список установленых пакетов с их метданными, и список пакетов котрые можно установить с их метаданными). Проблема №1 -- ряд операций (таких как apt-cache) выполняют ненужно большой объем работ перед запуском. Проблема №2 -- операции вида apt-get install/remove (одни из самых частых) требуют вычисления этого кэша в любом случае. Возможно ли вычислять его инкрементально? DVL> - Разделить пакетную базы на части. Критериев, по которым можно было бы DVL> делить, я полагаю, каждый может назвать несколько. Самым безболезненным DVL> типом деления является выделение кластеров пакетов по критерию DVL> независимости: если есть некоторое подмножество пакетов, которое не DVL> используется для установки и сборки всех остальных пакетов, то его можно DVL> было бы выделить без риска потерять связность репозитория. Если такое DVL> подмножество достаточно велико, то и компенсация эффекта торможения тоже DVL> будет достаточно заметна. Примером такого кластера, наверное, является DVL> множество debuginfo-пакетов. Интересно, существуют ли какие-то другие DVL> крупные кластеры этого типа? 1. Игры. 2. Дополнительные репозитории с массовыми импортами пакетов какого-то типа: - если собирать весь CPAN, то можно переносить в main/contrib только то, на что у кого-то есть buildrequires; - если собирать массово содержимое hackage -- аналогично, в основном его содержимое будет нужно для сборки с самим собой; - те же массовые импороты библиотек из fedora; 3. В принципе можно вообще попытаться отделить в отдельную компоненту "листья", которе никому не нужны для сборки. Их много. 4. Таки пакеты необходимые только для сборки -- *devel*. Это не ускорит сборочницу, но ускорит работу apt у большинства "обычных пользователей". -- С уважением, Денис http://mithraen.ru/ ----------------------------------------------------------------------------