Вход:  Пароль:  
FreeSource: Мусорка/AltLinux?/Sisyphus?/NewPM?/Main ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия Мусорка/AltLinux/Sisyphus/NewPM/Main за 2006-02-21 15:02:36..

Эта страница содержит описание пакетного менеджера нового поколения.


Внимание!
Это всего лишь наброски будущего концепт-кара.


Этому концепт-кару требуется имя!!! Если у вас есть название, красивое и прикольное, пишите мне на icesik@altlinux.ru


У меня есть три варианта, но они мне не сильно нравятся:
1) amnesia
2) anaesthesia, anaesthesias, anesthesia, anesthesias
3) anabiosis


Здесь будет выложено всё что будет требоваться от него.


Для начала, надо отделить котлеты от мух. Т.е. весь потенциал этой системы будет разложен по полочкам (разрезан на кучку отдельных приложений). И так, по порядку:
1) Пакетный менеджер. Это пакетный менеджер самого низкого уровня. Он умеет только ставить пакеты, удалять их и проверять целостность системы. Как пример из уже существующих систем, rpm или dpkg, только более лёгкая и менее функциональная. Нехватка функциональности будет компенсироваться остальными частями системы.
2) Пакетный менеджер более высокого уровня. Умеет ставить пакеты удовлетворяя зависимости. Как пример из уже существующих систем, apt.
3) Сборщик пакетов. Штука для сборки пакетов. Как пример уже существующих систем, rpmbuild и debuild.


Различные тулзы для облегчения жизни:


4) Проверщик пакетов (на этапе сборки и просто так). Как пример уже существующих, rpmlint и sisyphus_check.
5) Конвертер spec файлов rpm в наш формат
6) Конвертер бинарных пакетов rpm в наш формат
7) Безопасный сборщик пакетов (hasher).
8) Пересборщик всего (или части) репозитория (в hasher'е конечно!).
9) bootstrap пересборщик (подробнее об єтом я напишу позже).


Подробнее по каждому пункту:


1) Список критериев которым должен удовлетворять пакетный менеджер низкого уровня:
a) установка пакетов
b) удаление пакетов
c) обновление пакетов
d) контроль целостности зависимостей


2) Список критериев которым должен удовлетворять пакетный менеджер высокого уровня:
a) рекурсивная установка пакетов
b) рекурсивное удаление пакетов
c) рекурсивное полное обновление системы


3) Список критериев которым должен удовлетворять сборщик пакетов:
a) уметь собирать пакеты :)
b) умение работать не от root


4) Список критериев для проверщика пакетов:


7) hasher
hasher придётся немного попатчить, но всё должно работать как работало.


Список критериев к реализации:
1) Критические части системы должны быть написаны на чистом C / C?++. К критическим частям относятся пакетные менеджеры низкого и высоко уровней.
2) эта штука должна собираться с -Wall -Werror по умолчанию (пусть компилятор сделает своё грязное дело...)


Описание формата спек файлов которые будет использовать сборщик:
Небольшое лирическое отступление, формат очень сильно похож на rpm spec. Это сделано для облегчения миграции с rpm.


Итак, поехали. Формат (пример взят из Maximum-RPM):
%common
Name: cdplayer
Version: 1.0
Release: 1
%endcommon


%mainpackage
Summary: A CD player app that rocks!
License: GPL
Group: Applications / Sound?
Source 0?: ftp://ftp.gnomovision.com/pub/cdplayer/cdplayer-1.0.tgz
URL: http://www.gnomovision.com/cdplayer/cdplayer.html
Distribution: WSS Linux
Vendor: White Socks Software, Inc.
Packager: Santa Claus <sclaus@northpole.com>


%description
It slices! It dices! It's a CD player app that
can't be beat. By using the resonant frequency
of the CD itself, it is able to simulate 20X
oversampling. This leads to sound quality that
cannot be equaled with more mundane software...
%enddescription


%endmainpackage


%prep
%setup -q
%endprep


%build
%make_build
%endbuild


%install
%make_install DESTDIR=%buildroot install
%endinstall


%files
%doc README
%_bindir/cdp
%_bindir/cdplay
%_man1dir/cdp.*
%endfiles


%changelog
* Mon Nov 07 2005 Igor Zubkov <icesik@altlinux.ru> 1.0-alt1
– Initial build
%endchangelog


Или, ещё более глобальный пример:
%defines


%with feature1
%without feature2


%enable final
%disable debug


%enddefines


%common
Name: foopackage
Version: 1.2.3
Release: alt1
%endcommon


%mainpackage
Summary: Foo Package? that rocks!
License: GPL
Group: Applications / Sound?
Source 0?: %name-%version.tar.bz2
URL: http://www.foopackage.org/
Maintainer: Santa Claus <sclaus@northpole.com>


%description
Foo Package?
long
description
%enddescription


%endmainpackage


%prep
%setup -q
%endprep


%build
%configure
%make_build
%endbuild


%install
%make_install DESTDIR=%buildroot install
%endinstall


%files
%doc README
%_bindir/foo
%_man1dir/foo.*
%endfiles


%changelog
* Mon Nov 07 2005 Igor Zubkov <icesik@altlinux.ru> 1.2.3-alt1
– Initial build
%endchangelog


Теперь небольшое описание формата. Спек файл теперь поделен на разделы. Список разделов:
1) common
2) mainpackae
3) description
4) prep
5) build
6) install
7) files
8) changelog


Пара замечаний по функционалу (зависимости, поиск пакетов): http://wiki.sisyphus.ru/DmitryStropaloff


Ссылки:
RPM http://www.rpm.org/
dpkg http://packages.debian.org/stable/base/dpkg
apt (RPM) https://moin.conectiva.com.br/AptRpm
apt (debian) http://packages.debian.org/stable/base/apt
yum http://linux.duke.edu/projects/yum/
poldek http://poldek.pld-linux.org/
pkgutils http://www.fukt.bth.se/~per/pkgutils/
xpkg http://www.xpkg.org/
pacman http://www.archlinux.org/pacman
jacman http://www.andy-roberts.net/software/jacman/
synaptic http://www.nongnu.org/synaptic/
checkinstall http://asic-linux.com.mx/~izto/checkinstall/
alien http://kitenet.net/programs/alien/
lintian http://lintian.debian.org/
rpmlint http://people.mandriva.com/~flepied/projects/rpmlint/


kemerge http://kemerge.sourceforge.net/
porthole http://porthole.sourceforge.net/


mach http://thomas.apestaart.org/projects/mach/
RPM Delta Compression Virtual Update Repository http://www.wombat.ie/software/rpmdc/


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]