[devel] Q: contents_index content ?
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Окт 3 08:33:09 MSD 2008
On Wed, Oct 01, 2008 at 12:43:28PM +0400, Vitaly Ostanin wrote:
> Скажите, а как создаются файлы contents_index в
> репозиториях и с какой целью?
Создаются в /usr/bin/sisyphus_gen_contents,
используются в /usr/lib/rpm/find-package с целью
отображения пути файла в имя зависимости.
> То, что они содержат кучу строк вида
> /file /file
> вместо
> /file package
> , ещё терпимо, пакеты можно выдрать из
> pkglist апта.
Запись '/file /file', означает, что файл принадлежт более чем одному
пакету (то есть двум или более пакетам с разными названиями). Поэтому
отображение файл -> зависимость принимает вид файл0 -> файл0.
> Но вот в пакете service есть каталог
> /etc/rc.d/init.d. А в contents_index (Sisyphus/i586/base) записи
> об этом нет. Так и должно быть?
$ fgrep $'/etc/rc.d/init.d\t' /ALT/Sisyphus/i586/base/contents_index
/etc/rc.d/init.d /etc/rc.d/init.d
$
Каталогом /etc/rc.d/init.d владеют несколько пакетов.
$ bzcat /ALT/Sisyphus/i586/base/pkglist.classic.bz2 |./pkglist-query '[%{FILENAMES}\t%{NAME}\n]' - |fgrep $'/etc/rc.d/init.d\t'
/etc/rc.d/init.d 3proxy
/etc/rc.d/init.d atslog
/etc/rc.d/init.d ez-ipupdate
/etc/rc.d/init.d service
$
----------- следующая часть -----------
#include <rpmlib.h>
#include <stdio.h>
///extern int _rpmio_debug = 1;
int main(int argc, const char *argv[])
{
const char *progname = argv[0];
if (argc != 3) {
fprintf(stderr, "Usage: %s QUERY pkglist", progname);
exit(2);
}
const char *query = argv[1], *pkglist = argv[2];
FD_t Fd = Fopen(pkglist, "r");
if (Ferror(Fd)) {
fprintf(stderr, "%s: %s: %s\n", progname, pkglist, Fstrerror(Fd));
exit(1);
}
Header h;
while ((h = headerRead(Fd, HEADER_MAGIC_YES))) {
char *str = headerSprintf(h, query, rpmTagTable, rpmHeaderFormats, NULL);
if (str) {
fputs(str, stdout);
str = _free(str);
}
headerFree(h);
}
Fclose(Fd);
return 0;
}
/* ex:set ts=8 sts=4 sw=4 noet: */
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20081003/f3049907/attachment-0002.bin>
Подробная информация о списке рассылки Devel