Решено: Apt-pkg (менеджер пакетов)

Модераторы: Skull, Модераторы разделов

Аватара пользователя
alexis031182
Сообщения: 180
ОС: ALTLinux 4.0 Desktop

Решено: Apt-pkg

Сообщение alexis031182 »

Здравствуйте.

Я большой поклонник дистрибутива 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 (если конечно она существует в природе), черкните, пожалуйста, ссылку.

Спасибо.
Да пребудут в целости хмуры и усталы
Делатели ценностей Профессионалы.
Спасибо сказали:
aen
Сообщения: 8

Re: Решено: Apt-pkg

Сообщение aen »

Ух ты! Действительно, такая разработка очень нужна, спасибо!
Напишите Александру Мыльцеву, avm at altlinux, он поможет.
Спасибо сказали:
Аватара пользователя
alexis031182
Сообщения: 180
ОС: ALTLinux 4.0 Desktop

Re: Решено: Apt-pkg

Сообщение alexis031182 »

Спасибо. Мне удалось решить проблему. Как всегда решение - тривиально. При запуске данного кода из-под обычного пользователя программа вылетает с ошибкой сегментирования. Нужен пользователь root, и тогда всё в порядке.

aen писал(а):
13.12.2007 08:57
Ух ты! Действительно, такая разработка очень нужна, спасибо!
Напишите Александру Мыльцеву, avm at altlinux, он поможет.

Александр Мыльцев занимается apt? Думаю, вопросы у меня ещё будут появляться, так как документации разработчика для apt нет совсем.

На сегодняшний день реализовано получение полного списка пакетов и его сортировка по категориям. Расположение виджетов приложения будет как у Synaptic (хотя это ещё и не окончательное утверждение), сами виджеты - Qt. Принимаются пожелания по функциональности и реализации интерфейса.

Спасибо за участие. :yes3:
Да пребудут в целости хмуры и усталы
Делатели ценностей Профессионалы.
Спасибо сказали: