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 итд", либо с умолчальными установками. |
Вопрос - а зачем тогда тянуть из сорцов? Эта замечательная apt- и т.д. заточена под бинарные пакеты.
Кстати, по причине этих самых зависимостей при неосторожном обращении может снести систему запросто :) |
как раз вопрос обратный: зачем тогда вообще поддерживается система deb-src если на выходе у нее получается тоже самое что и в пакетах?? Начальников пугать? согласен, тоже фича полезная: зарядил на компиляцию что-нить типа OpenOffice, и можно с умным видом двое суток пиво пить возле терминала.
А как раз компиляция из сорсов и подразумевает то что, как уже сказано выше: например, в бинарниках PHP идет mysql Client API version 5.0.51, а mysql у меня стоит 5.1.34. Вот для того и должна служить возможность сборки from source дабы иметь возможность скрестить их. А так же для того чтоб иметь возможность внести какие-то другие изменения, и при этом чтоб все это хозяйство стало частью системы, а не было "прикручено проволокой сбоку", как это получается при компилении руками. Повторяю, в БСД это рулится совершенно прозрачно. Не верю, что нет такой возможности здесь. Иначе действительно смысл src сводится только к пуганию начальников. |
Костя, мы с тобой это уже обсуждали в аське.
Если ты хочешь собрать пакет с другими опциями, с другими зависимостями и либами - ну так залезь в пакет, измени эти зависимости и либы. Там ar, нету ну никакой проблемы это сделать. Если жее ты автоматически забираешь приготовленный пакет, и автоматически его собираешь, ну разумеется ты получаешь что-то очень близкое к уже собранному и доступному бинарному пакету. в таком случае, дествительно, смысла пересобирать многое почти никакого в общеем-то... |
тоесть нет ни ключей командной строки для перекрытия опций, ни инструментария. берем и тупо правим исходники.
классная система. тогда уж проще действительно руками компилить через "проволокой сбоку" :bad: |
Цитата:
|
поверьте, мне очень конечно интересно послушать все это, но, я вроде достаточно хорошо описал вопрос в заголовке.
посему предлагаю закончить с общими рассуждениями и перейти в реалити: есть/нет - как. всё. еще раз говорю - возможность сорсов не может оставляться только для того чтоб пугать начальников. если только для этого - то в топку эту систему, я буду компилить через ./configure (и поверьте, здесь как раз если вопросы и есть, то их знааачительно меньше, и спрашивать их я буду в отдельном топике, если приспичит) если кто-то в теме по сабжу топика - очень хочу услышать. ps. Hubbitus & all, забудте про бинары, я не собираюсь их разбирать. меня интересуют возможности внесения опциями команд изменений в что нить типа Код:
dpkg-buildpackage -rfakeroot -b -d -us -uc -tc -v -j10 dixi. pss. переименовал название немного, чтоб не было разночтений |
>в частности, пытаемся собрать 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 . помоему довольно не плохо , особенно если есть собственный репозитарий с кототрого можно потом ставить бинарные пакеты . |
Цитата:
Код:
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.