Я большой поклонник дистрибутива ALTLinux, хотя и относительно недавно начал с ним работать. Качество исполнения и скорость работы меня более чем устраивают. На мой взгляд данная система одна из лучших. Однако при более пристальном рассмотрении, в некоторых сервисах для пользователя обнаруживается, я бы так сказал, незаконченность.
Выбор менеджера пакетов Synaptic, по умолчанию, мне не кажется слишком удачным. Несмотря на то, что система управления пакетами apt, используемая в дистрибутиве, предоставляет множество функциональных и очень полезных в повседневной работе функций, эти возможности по большому счёту не используются выше означенным приложением (к примеру, отсутствует возможность посмотреть список файлов, входящих в пакет, ну и прочее...).
Раньше я использовал Debian. Там аналогичная ситуация с графическим менеджером пакетов, то есть по умолчанию стоит Synaptic, однако, есть выбор. Например отличная программа Adept. Составленная из нескольких графических модулей в единой системе. Она позволяет решать множество задач, причём не требуется никаких специальных познаний. Всё очень доступно.
Для ALTLinux я решил написать своё приложение. Однако, как это обычно и бывает, возникло множество вопросов. Хотя в дистрибутиве и используются rpm-пакеты, управление ими по большому счёту отдано apt. Мне не хотелось идти путём, при котором моя программа просто бы выполняла консольные команды. Это не практично в том плане, что пришлось бы писать анализатор результата их работы, а уже затем создавать представление в графическом окружении у себя. Поэтому я решил познакомиться с apt поближе. К сожалению, мне не удалось найти хоть какой-нибудь документации, описывающей функции apt (облазил наверное весь Интернет). Пришлось разбираться с нуля методом тыка, так как даже комментарии к некоторым функциям в файлах исходников напрочь отсутствуют.
На сегодняшний день я столкнулся с некоторой проблемой. Если кто-нибудь может мне помочь, буду очень благодарен. В исходниках для консольной команды apt-cache присутствует такой код:
Код: Выделить всё
pkgCache::PkgIterator I = Cache.PkgBegin();
for(; I.end() != true; I++) {}
Когда я пытаюсь воспользоваться данным подходом у себя, приложение "вылетает" на 8-мом проходе цикла. apt я инициализирую функциями pkgInitConfig и pkgInitSystem. Некоторая информация о пакетах мне становится доступной, но вот что касается процесса просмотра списка этих самых пакетов - тут и возникает такая вот проблема.
Если кому-нибудь известно, где можно достать документацию, API DOC для apt (если конечно она существует в природе), черкните, пожалуйста, ссылку.
Спасибо.