IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (http://www.imho.ws/forumdisplay.php?f=76)
-   -   Debian - сборка приложений из dep-src (http://www.imho.ws/showthread.php?t=140043)

Plague 03.06.2009 15:32

Debian - сборка приложений из dep-src
 
Тяжело однако зная одну ось пытаться врубиться в другую. :rolleyes:
в общем, в чем вопрос:
даю пример из FreeBSD: имеем дерево портов, посредством коего замечательно все из сорсов собирается. причем можно собрать все по умолчанию:
# make install
а можно и
# make -Dтуева_хуча_опций install
и в этом случае эта самая туева хуча опций передастся сборке (у меня строка сборки mysql того же в 4ре яруса заворачивалась как-то).

вопрос: как тож самое можно осуществить в debian? про вариант ./configure итд я в курсе (и через него все на данный момент и сделано), но интересует все-таки его "родная" система (apt-* dpkg-* и прочее).

в частности, пытаемся собрать php5-mysql:
#apt-get source -b php5-mysql

какого ... оно начинает компилить все известные ей модули? (опять же сравнивая с БСД - там все модули PHP по раздельным портам разнесены, и этот нечастный mysql.so компилится замечательно за 40 секунд, не вытягивая для этого зависимости типа gd png и прочей ахинеи совершенно ему не нужной)
какого оно вцепилось хваткой питбуля в зависимость libmysqlclient15-dev (mysql-5.0), когда у меня рядом стоит libmysqlclient-dev 5.1.34-1 MySQL database development files, и тот самый "./configure итд" его замечательно видит?

есть ключи какие чтоб ее заставить работать как мне надо, а не как дядя написал? :mad:
гугление и чтение debian.org ничего не дало. ощущение такое что все либо компилят либо через "./configure итд", либо с умолчальными установками.

SinClaus 03.06.2009 18:34

Вопрос - а зачем тогда тянуть из сорцов? Эта замечательная apt- и т.д. заточена под бинарные пакеты.
Кстати, по причине этих самых зависимостей при неосторожном обращении может снести систему запросто :)

Plague 03.06.2009 18:52

как раз вопрос обратный: зачем тогда вообще поддерживается система deb-src если на выходе у нее получается тоже самое что и в пакетах?? Начальников пугать? согласен, тоже фича полезная: зарядил на компиляцию что-нить типа OpenOffice, и можно с умным видом двое суток пиво пить возле терминала.
А как раз компиляция из сорсов и подразумевает то что, как уже сказано выше: например, в бинарниках PHP идет mysql Client API version 5.0.51, а mysql у меня стоит 5.1.34. Вот для того и должна служить возможность сборки from source дабы иметь возможность скрестить их. А так же для того чтоб иметь возможность внести какие-то другие изменения, и при этом чтоб все это хозяйство стало частью системы, а не было "прикручено проволокой сбоку", как это получается при компилении руками.
Повторяю, в БСД это рулится совершенно прозрачно. Не верю, что нет такой возможности здесь. Иначе действительно смысл src сводится только к пуганию начальников.

Hubbitus 03.06.2009 19:58

Костя, мы с тобой это уже обсуждали в аське.
Если ты хочешь собрать пакет с другими опциями, с другими зависимостями и либами - ну так залезь в пакет, измени эти зависимости и либы. Там ar, нету ну никакой проблемы это сделать.
Если жее ты автоматически забираешь приготовленный пакет, и автоматически его собираешь, ну разумеется ты получаешь что-то очень близкое к уже собранному и доступному бинарному пакету. в таком случае, дествительно, смысла пересобирать многое почти никакого в общеем-то...

Plague 03.06.2009 20:03

тоесть нет ни ключей командной строки для перекрытия опций, ни инструментария. берем и тупо правим исходники.
классная система.
тогда уж проще действительно руками компилить через "проволокой сбоку" :bad:

Hubbitus 03.06.2009 20:24

Цитата:

Сообщение от Plague (Сообщение 1657666)
тоесть нет ни ключей командной строки для перекрытия опций, ни инструментария. берем и тупо правим исходники.
классная система.

Система классная, но:
  1. Она прежде всего бинарная. То есть упаковкой в бинаные пакеты занимаются те кто этим и должен заниматься - мэйнтэйнеры пакетов, дистрибутива. Для этого у них есь четкие Guidelines, Policy опыт и надзор.
  2. править надо не исходники, а скрипты сборки пакета. Там и задаются зависимости, опции конфигурирования и прочее.
  3. Инструментарий разумеется есть и весьма продвинутый. Просто опять же, по логике, он для мэнтэйнеров (даже не девелоперов, заметь). Если хочешь этим заниматься осерьезнее, просто с ним надо познакомится поближе.
  4. Ну и последнее, я с этим не особо знаком, я все в RPM мэйнтэйню. В одном из последних Линукс-Форматов была какраз вводная статья о том как создавать deb-пакеты и о их структуре, базовом инструментарии (понятное дело что в одну статью много не впихнешь, но в целом суть понятна). Если нету и надо, могу pdf-номер прислать в ПМе (уже вроде как варез получается :) )

Plague 04.06.2009 00:36

поверьте, мне очень конечно интересно послушать все это, но, я вроде достаточно хорошо описал вопрос в заголовке.
посему предлагаю закончить с общими рассуждениями и перейти в реалити:
есть/нет - как.
всё. еще раз говорю - возможность сорсов не может оставляться только для того чтоб пугать начальников.
если только для этого - то в топку эту систему, я буду компилить через ./configure (и поверьте, здесь как раз если вопросы и есть, то их знааачительно меньше, и спрашивать их я буду в отдельном топике, если приспичит)

если кто-то в теме по сабжу топика - очень хочу услышать.

ps.
Hubbitus & all, забудте про бинары, я не собираюсь их разбирать. меня интересуют возможности внесения опциями команд изменений в что нить типа
Код:

dpkg-buildpackage -rfakeroot -b -d -us -uc -tc -v -j10
зачем это всё существует? не нужно дальше демагогии, всё равно не убедите, давайте по сабжу темы. нет решений - пускай топ тонет.
dixi.

pss. переименовал название немного, чтоб не было разночтений

noname 04.06.2009 23:33

>в частности, пытаемся собрать php5-mysql:
>#apt-get source -b php5-mysql

причем тут флаг -b ?
-b, --compile, --build
Compile source packages after downloading them.
до того как скомпилить мы должны его изменить ?

вобщем результатом apt-get source php5-mysql
будет скачаный php5 source

php5-5.2.9.dfsg.1 php5_5.2.9.dfsg.1-4.diff.gz php5_5.2.9.dfsg.1-4.dsc php5_5.2.9.dfsg.1.orig.tar.gz

идем в php5-5.2.9.dfsg.1/debian
cd php5-5.2.9.dfsg.1/debian

открываем файл rules , немного скролим и видим все те опции ./configure которые можно задать .

>какого оно вцепилось хваткой питбуля в >зависимость libmysqlclient15-dev (mysql-5.0), когда у >меня рядом стоит libmysqlclient-dev 5.1.34-1 MySQL >database development files, и тот самый "./configure >итд" его замечательно видит?

далее идем смотрим файл control
и видим , что там для пакета php5-mysql
есть зависимость
libmysqlclient15off так что все ок , можно отредактировать по вкусу .

далее
после изменений
debuild -us -uc
соберет все пакеты указаные в debian/control
и и положит в ../ относительно source .

помоему довольно не плохо , особенно если есть собственный репозитарий с кототрого можно потом ставить бинарные пакеты .

Plague 04.06.2009 23:59

Цитата:

Сообщение от noname (Сообщение 1657929)
причем тут флаг -b ?
-b, --compile, --build
Compile source packages after downloading them.

просто я по опыту БСД привык менять все опциями строки непосредственно одной командой. например, mysql собираю вот так:
Код:

make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci WITH_OPENSSL=yes WITHOUT_INNODB=yes BUILD_OPTIMIZED=yes WITH_ARCHIVE=yes WITH_CSV=yes -Dlocalstatedir="/usr/mysql" install
тоесть как видно, все действия в одном флаконе. удивительно, что здесь сие не предусмотрено. но всё равно спасибо. :)

ps. было б здорово, если была б опция на отключку предустановленных в rules параметров и задания своих. для игнорирования зависимостей как раз ключ -d есть.


Часовой пояс GMT +4, время: 09:49.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.