Сложности сборки пакетов (отрезано от "Подскажите текстовый редактор")

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Сложности сборки пакетов

Сообщение Hephaestus »

GNUUser писал(а):
20.07.2015 13:39
Один только под x64, другой невозможно установить по причине отсутствия нужных версий библиотек в стабильном Дебиане.
Дебиан вообще не очень подходит для установки софта мимо репов.
Один случай - тот, что у Вас сейчас: нет в репах зависимостей - и привет. Либо собирай всё сам, либо не будет софтины.
Второй случай - масса самосборных пакетов, полученных в результате преодоления первого случая. И всё это дружно перестаёт работать (в лучшем случае, в худшем - идёт под нож), как только обновилась система, а следовательно, обновились и основные либы, которые участвовали в сборке. То есть всё это хозяйство нужно собирать по-новой.
Поэтому в Дебиан такими штуками лучше не увлекаться.
Можно иметь один-два самосборных пакета каких-нибудь специфических штуковин вроде принтерного драйвера или LigthScribe. Но не более того.
iУведомление от модератора /dev/random
Отрезано отсюда: Подскажите текстовый редактор
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21178
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сложности сборки пакетов

Сообщение Bizdelnick »

Hephaestus писал(а):
20.07.2015 14:19
Второй случай - масса самосборных пакетов, полученных в результате преодоления первого случая. И всё это дружно перестаёт работать (в лучшем случае, в худшем - идёт под нож), как только обновилась система, а следовательно, обновились и основные либы, которые участвовали в сборке. То есть всё это хозяйство нужно собирать по-новой.

Версии либ с изменившимся API/ABI пакуются в пакеты с другими именами, поэтому старые версии остаются в системе, пока есть что-то, что от них зависит. А если ABI не менялся, обновление проходит безболезненно. В любом случае пересборка не потребуется.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

Bizdelnick писал(а):
20.07.2015 14:24
Версии либ с изменившимся ABI пакуются в пакеты с другими именами, поэтому старые версии остаются в системе, пока есть что-то, что от них зависит.
Не понял.
Вот, к примеру, программе надо какую-нибудь libc6. В Debian Lenny она была 2.7, в Squeeze - 2.11, а в Wheezy - 2.13.
Меняется минорная версия. Можно ли с уверенностью сказать, что самосборная программа, собранная в Lenny не откажется работать в Squeeze, где libc6 уже имеет версию 2.11 и не запросит обратно 2.7? Я всё-таки думаю, что зависит от программы.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21178
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сложности сборки пакетов

Сообщение Bizdelnick »

Hephaestus писал(а):
20.07.2015 14:55
Вот, к примеру, программе надо какую-нибудь libc6. В Debian Lenny она была 2.7, в Squeeze - 2.11, а в Wheezy - 2.13.
Меняется минорная версия. Можно ли с уверенностью сказать, что самосборная программа, собранная в Lenny не откажется работать в Squeeze, где libc6 уже имеет версию 2.11 и не запросит обратно 2.7?

Да. У нас кой-что собирается ажно в Etch и работает не только во всех последующих дебианах, но и вообще во всех дистрибутивах с ядром 2.6 и выше, до которых можно дотянуться. Впрочем, на 2.4 тоже работает, но уже не без бубна.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

Bizdelnick писал(а):
20.07.2015 15:09
У нас кой-что собирается ажно в Etch и работает
А кое-что другое, наоборот? Так надо понимать?
Вот скажем, kxstitch переехал в unstable по каким-то причинам. И до сих пор там. Уж года два, по-моему.
Про модули ядра я и не говорю. VirtualBox каждый раз плюётся.

А я вот сейчас пытаюсь собирать старые версии некоторых программ (это уже не в Debian) - не получается.
Make не отрабатывает до конца. Ругается там по-всякому. То преобразование типов не нравится, то ещё чего.
Будь оно в бинарном виде, как бы оно заработало? Да чёрт его знает...
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21178
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сложности сборки пакетов

Сообщение Bizdelnick »

Hephaestus писал(а):
20.07.2015 15:35
А кое-что другое, наоборот? Так надо понимать?

Нет. Всё, что должно быть совместимо с максимальным количеством дистрибутивов, собирается таким бразом, и неплохо себя чувствует.

Hephaestus писал(а):
20.07.2015 15:35
Вот скажем, kxstitch переехал в unstable по каким-то причинам.

Ну и что? Много чего туда переезжает по разным причинам. Если оные интересуют, надо смотреть в багтрекере.

Hephaestus писал(а):
20.07.2015 15:35
Про модули ядра я и не говорю.

Модули ядра — это модули ядра, а библиотеки — это библиотеки. Несколько ядер одновременно в системе работать не могут, а несколько версий одной библиотеки — запросто.

Hephaestus писал(а):
20.07.2015 15:35
А я вот сейчас пытаюсь собирать старые версии некоторых программ (это уже не в Debian) - не получается.
Make не отрабатывает до конца. Ругается там по-всякому. То преобразование типов не нравится, то ещё чего.

Если преобразование типов не нравится, то дело в версии компилятора, а не в библиотеках. Можно попробовать с опцией -std поиграться... Но это мы что-то совсем далеко от темы отошли.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

Bizdelnick писал(а):
20.07.2015 16:08
Ну и что?
Ну как "что"? Если программа переехала из стабильной ветки в нестабильную, это как минимум означает, что она перестала стабильно работать.
Причём заметьте, версия данной конкретной программы в стабильной и нестабильной ветках одна и та же. То есть в Squeeze оно работало, работало, в Wheezy вдруг перестало. Почему? Вероятнее всего, дело как раз в библиотеках.
А раз такое возможно, стало быть, оно возможно и с моей самосборной программой - до обновления работало, потом перестало.

Bizdelnick писал(а):
20.07.2015 16:08
Если преобразование типов не нравится, то дело в версии компилятора, а не в библиотеках. Можно попробовать с опцией -std поиграться... Но это мы что-то совсем далеко от темы отошли.
Да, мы немного отвлеклись, но по сути это туда же - до обновления дистра оно компиляется, а потом уже нет.
То есть это вполне себе может быть. И в таком дистре, как Дебиан, с самосборами будет сложнее разбираться, чем с программами из репов. Вот собственно то, что я имел в виду выше.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21178
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сложности сборки пакетов

Сообщение Bizdelnick »

Hephaestus писал(а):
20.07.2015 23:10
Если программа переехала из стабильной ветки в нестабильную, это как минимум означает, что она перестала стабильно работать.

Это означает, что майнтейнер не смог дальше сопровождать пакет, а других желающих не нашлось. Зачем гадать, если всё описано в багтрекере?

Hephaestus писал(а):
20.07.2015 23:10
в таком дистре, как Дебиан, с самосборами будет сложнее разбираться, чем с программами из репов.

Почему? В нём какой-то не такой gcc, как в других дистрибутивах?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

Bizdelnick писал(а):
20.07.2015 23:52
Почему? В нём какой-то не такой gcc, как в других дистрибутивах?
Нет, не поэтому.
У меня в двух Дебианах пакеты спокойно собирались только в одном случае: когда я делал apt-get source имя_пакета и dpkg-buildpackage. Если требовалось что-то больше, то начинались танцы с бубном. В частности, выполняя всё по инструкции с официального сайта, я стабильно получал пустой пакет. Да, он собирался и вроде было всё нормально (с виду), но внутри пакета программы не было. Были только дебиановские файлы.

Короче говоря, сложности собственно компиляции (отсутствие зависимостей в репах и т.п.) усугубляются ещё и сложностями опакечивания.
И это реально было, скажем, при переходе из Lenny в Squezze. dh_make отрабатывал по-разному и файлы генерил по-разному. В результате в Lenny пакет собирался нормально, в Squeeze - уже нет.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

Bizdelnick писал(а):
20.07.2015 23:52
Зачем гадать, если всё описано в багтрекере?
Да я и не гадал. Просто у меня unstable, как ни странно, стойко ассоциируется с нестабильной работой. И все пакеты из unstable я воспринимаю именно так.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21178
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сложности сборки пакетов

Сообщение Bizdelnick »

Hephaestus писал(а):
21.07.2015 07:16
все пакеты из unstable я воспринимаю именно так.

Так его и в unstable уже нет, кроме как под m68k, а это неофициальный порт.

Hephaestus писал(а):
21.07.2015 06:49
выполняя всё по инструкции с официального сайта, я стабильно получал пустой пакет. Да, он собирался и вроде было всё нормально (с виду), но внутри пакета программы не было. Были только дебиановские файлы.

А у меня всегда нормальные пакеты получаются. Кто-то из нас двоих что-то делает не так.
Но это уже относится не собственно к сборке софта, а к пакетированию. Перед этим в любом случае неплохо проверить, что он собирается ./configure && make (или mkdir build && cd build && cmake .. && make, или как там ещё в README написано).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

Bizdelnick писал(а):
21.07.2015 08:58
А у меня всегда нормальные пакеты получаются. Кто-то из нас двоих что-то делает не так.
Разумеется, я что-то делал не так, это ясно.
Вот в том-то и сложность, что мало просто выполнить инструкцию, надо ещё разобраться, что не так, почему не получилось.
А не получалось оно стабильно, потому что dh_make создавал файлы ну, скажем так, не совсем такие, как нужно.
Заявлялось, что шаблон, который был в rules, обобщает кучу других шаблонов и по идее должно было всё собираться, но не собиралось.
Это было в squeeze. В wheezy это вроде бы пофиксили, и я тем временем тоже разбирался в этой кухне, но это сколько времени ушло.
Вот всё это, вместе взятое, оставило у меня впечатление сложности сборки пакетов в Дебе.
В слаке всё значительно проще. Там инструкция-то на одной страничке. Пошагово выполняем - получаем корректный пакет.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21178
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сложности сборки пакетов

Сообщение Bizdelnick »

Сложность сборки пакетов не означает сложности отладки несобирающейся программы. Это совершенно независимые вещи.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

Bizdelnick писал(а):
21.07.2015 11:19
Сложность сборки пакетов не означает сложности отладки несобирающейся программы. Это совершенно независимые вещи.
Я этого и не говорил.
Я говорил, что сборка в Дебиан сложна: порой программа не собирается, но даже если собирается, то сам процесс пакетирования добавляет трудностей.
Поэтому сложно получается в любом случае.

P.S Если Вы сочтёте нужным отрезать нашу дискуссию о сложности пакетов Дебиан куда-нибудь в корзину, я - только за.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
HAW
Сообщения: 1328
ОС: ALT 4.1branch

Re: Сложности сборки пакетов

Сообщение HAW »

Hephaestus писал(а):
21.07.2015 11:34
Я говорил, что сборка в Дебиан сложна:

под ALTLinux собери
хочется вывести в чисто поле,
поставить лицом к стенке
и выстрелить в лоб,
что бы поняли!!!
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Сложности сборки пакетов

Сообщение Hephaestus »

HAW писал(а):
02.08.2015 10:22
под ALTLinux собери
Было дело. Только вот не помню, был ли это именно AltLinux или Mandriva.
Не могу сказать, какой пакет собрать проще - deb или rpm.
Deb-пакет легко собирается по apt-get source и dpkg-buildpackage.
RPM-пакет так же легко собирается при наличии src.rpm

При сборке с нуля для rpm нужно написать spec-файл и это основная сложность.
Для deb нужно написать несколько файлов и это ничуть не проще.
Не думаю, что rpm сильно сложнее.
Создание spec-файла я не осилил, но я и не старался особо.

Я вообще не считаю нормальной ситуацию, когда простой пользователь занимается сборкой для пакетного дистра. Не его это задача.
Другое дело - Slackware. Здесь абсолютно все пакеты собираются с помощью слакбилдов и сборка пакета для слакварщика - абсолютно штатная ситуация. Это немного другой уровень.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали: