[проект] Переносимый фреймворк из GNU-утилит и библиотек для разработчика
Всем привет!
Некоторое время назад у меня появилась идея собрать набор базовых средств разработки (gcc и основные библиотеки), который можно было бы установить параллельно с теми, которые уже есть в системе. Идея была успешно воплощена в жизнь, в результате появился проект "Суверен", можно почитать об этом тут:
http://sgn.sourceforge.net/readme_rus.html
http://sourceforge.net/projects/sgn
Вкратце: утилиты/библиотеки устанавливаются в директорию /opt/sgn, и зависят _только от библиотек из /opt/sgn. Благодаря этому можно просто скачать прекомпилированный архив с "Сувереном", распаковать его в /opt/sgn, и сразу приступать к работе. Единственное требование к системе - чтобы ABI ядра был совместим с прекомпилированной glibc.
По сути система представляет собой набор скриптов для сборки пакетов (а-ля e-build'ов). Процесс сборки с особым префиксом взят из документации к "Linux from scratch".
Вот список причин, почему это может быть удобно (взято с веб-страницы):
* Библиотеки и утилиты в дистрибутиве, который вы используете,
устарели (нет возможностей, присутствующих в последних версиях; API устарел; есть известные ошибки), и вы хотите установить более новую версию, не поломав при этом существующую инсталляцию Linux;
* В выбранный вами дистрибутив включена новая версия библиотеки/утилиты, в которой есть регрессии по сравнению с предыдущими версиями. Вы хотите работать с одной из предыдущих версий, не нарушая при этом целостность дистрибутива;
* Вам нужна утилита/библиотека, которая не входит в установленный дистрибутив Linux, и при этом конфликтует с некоторыми из установленных пакетов;
* При работе вы используете сразу несколько компьютеров (пару ноутбуков и десктопов, офисную рабочую станцию, дюжину серверов в тестовом кластере и т.п.), и не хотите заниматься сопровождением и синхронизацией установленных на этих компьютерах дистрибутивов;
* Тип используемого дистрибутива Linux устанавливается политикой компании, и вы не хотите тратить время на его настройку и проверку того, что всё работает так, как надо;
* У вас есть сервер, на котором не установлены -devel-пакеты (и, возможно, нет gcc), и вы хотите скомпилировать и запустить программу, не устанавливая при этом никаких дополнительных пакетов.
В состав фреймворка можно включить всё, что угодно, потому что он модульный. Сейчас состав пакетов такой:
atk-1.9.1.sgn
binutils-2.18.sgn
bzip2-1.0.4.sgn
cairo-1.2.6.sgn
cups-1.2.12.sgn
fontconfig-2.5.0.sgn
freetype-2.3.5.sgn
gcc-4.1.2+gm2-cvs_07-12-20_10-57.sgn
gcc-4.2.2.sgn
glib-2.12.13.sgn
glibc-2.7.sgn
gtk+-2.10.14.sgn
jpegsrc.v6b.sgn
libpng-1.2.8.sgn
libxml2-2.6.30.sgn
linux-headers-2.6.23.8.sgn
pango-1.16.4.sgn
pkg-config-0.20.sgn
tiff-3.7.4.sgn
xlib-7.3.sgn
xproto-7.3.sgn
zlib-1.2.3.sgn
Может заинтересует кого-нибудь?