Автор Тема: Сборка пакетов из исходников (hasher, spec, checkinstall)?  (Прочитано 35286 раз)

Оффлайн faithman

  • Участник
  • *
  • Сообщений: 52
Пакеты я до сих пор собираю по старинке, команды все перечисленны, минус правда в том,  что в моём случае все зависимости ставятся локально в систему.

Я так понял должна стоять целая туча devel-пакетов чтоб эта утилита отработала и внесла BuildRequires в .spec, спасибо, но такая утилита мне даром не нужна, лучше вручную добавлять и собирать в окружении на tmpfs. Спасибо за ответы.

Оффлайн faithman

  • Участник
  • *
  • Сообщений: 52
Прошу прощения за море вопросов, но всё же: нужно создать на базе одного .spec devel-пакет и его бинарник на базе исходников в тарболле, как это реализовывается? Где смотреть документацию по %packаge?

Оффлайн faithman

  • Участник
  • *
  • Сообщений: 52
Пакеты я до сих пор собираю по старинке, команды все перечисленны, минус правда в том,  что в моём случае все зависимости ставятся локально в систему.

А если для Сизифа пакет собирать? У вас отдельный рабочий chroot без hasher или отдельно установленная система с репами Сизифа? Поделитесь опытом.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Прошу прощения за море вопросов, но всё же: нужно создать на базе одного .spec devel-пакет и его бинарник на базе исходников в тарболле, как это реализовывается? Где смотреть документацию по %packаge?
Проще посмотреть любой спек с -devel (обычно, библиотека) на http://packages.altlinux.org. Там всё понятно по примеру.
Андрей Черепанов (cas@)

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
У вас отдельный рабочий chroot без hasher или отдельно установленная система с репами Сизифа? Поделитесь опытом.
Локально собираю на 7 бранче прямо в системе без всяких чрутов и хэшэров (минус - в систему ставится куча зависимостей, однако, плюс, если надо потом собрать пакет с данными зависимостями, то сборка идёт быстрее, ну и места на винте хватает, а потому пущай лежит), раньше собирал только на p6 (ну, ещё под 4.1 пробовал), сейчас на 7 бранче, поэтому и собираю на нём, а уже потом (по необходимости) пробую собрать под другие бранчи (под Сизиф не собирал ни разу - не было необходимости). Хэшер использую только тогда, когда уже есть готовый srpm, который проще можно пересобрать в хэшере под другой бранч, собственно в этом аспекте хэшер вне конкуренции.

Оффлайн winhex

  • Участник
  • *
  • Сообщений: 19
Подскажите, нужен Darktable версии не ниже 2.0, он есть в сизифе. На седьмой платформе (если не путаю) - 1.6.6
Решил пересобрать из сизифа при помощи hasher, получил такую проблему зависимостей:
E: Версия >='3.10' для 'libgtk+3-devel' не найдена
hsh-install: Failed to calculate package file list.
hsh-install: Failed to generate package file list.
Причина ясна - в репах libgtk+3-devel версии 3.8.9
Как решить эту проблему? Прописать в спеке версию ниже? Или нужно бэкпортить libgtk+3-devel указанной версии?? :-\

Второй вопрос - нужен старый Netowrk-manager  версии 0.8 - можно ли собрать эту старую версию под современный дистр в Альте? Эта версия нужна, т.к. в ней нормально работает инет-соединение в связке с Blueman по блютузу, в следующих сломали навсегда.  На ноуте, где это нужно, стоит дебиан Wheezy и древний NM от squeeze, все работает - но такой подход создает проблемы при обновлениях. Хотелось бы нормально решить это.

Третий вопрос - поставил libgtk+3-devel - он за собой притянул кучу пакетов. Но при удалении удалился только пакет libgtk+3-devel, как удалить ненужные зависимости?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Как решить эту проблему? Прописать в спеке версию ниже? Или нужно бэкпортить libgtk+3-devel указанной версии?? :-\
Универсального решения тут нет - надо смотреть исходники. Возможно можно уменьшить версию, возможно придётся ещё и ключики сборки какие-то поменять. Я-бы начал просто с уменьшения необходимой версии libgtk-devel

Второй вопрос - нужен старый Netowrk-manager  версии 0.8 - можно ли собрать эту старую версию под современный
Ну, пока не попробуешь, не узнаешь, но тода этому пакету надо придумать какое-то другое имя (типа Network-Manager-compat), что-бы при обновлении системы его каждый раз не выносило.
Третий вопрос - поставил libgtk+3-devel - он за собой притянул кучу пакетов. Но при удалении удалился только пакет libgtk+3-devel, как удалить ненужные зависимости?
Ну, надо смотеть логи того, что вы установили.

Оффлайн winhex

  • Участник
  • *
  • Сообщений: 19
Я-бы начал просто с уменьшения необходимой версии libgtk-devel
К сожалению не имел дела со сборкой rpm, да и Альт линукс пока только осваиваю. Я так понимаю, нужно из пакета с исходниками извлечь spec, подправить его и всунуть обратно? Чем это можно сделать?
Ну, надо смотеть логи того, что вы установили.
Да зачем логи? Если мы ставили пакет А, и по зависимостям притянулись пакеты В,С,D. Пакет А удалили, а  В,С,D остались, но от них уже ничего не зависит - в чем проблема их удалить? В deb-based дистрах есть apt-get autoremove В альте вроде как нет такой команды, или есть?
Ну, пока не попробуешь, не узнаешь, но тода этому пакету надо придумать какое-то другое имя (типа Network-Manager-compat), что-бы при обновлении системы его каждый раз не выносило.
Проблема в том, что я не мог найти нужную версию, но вроде разобрался. :) Поиск в packages.altlinux.org не особо удобный. Если я не знаю в какой платформе нужная мне версия - приходится искать поочередно в каждой. Сквозной поиск во всех платформах по имени пакета не помешал бы, как это сделано на packages.debian.org Но это уже мысли вслух...

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
К сожалению не имел дела со сборкой rpm, да и Альт линукс пока только осваиваю. Я так понимаю, нужно из пакета с исходниками извлечь spec, подправить его и всунуть обратно? Чем это можно сделать?
Если установить src.rpm от пользователя, то он распакуется в дерево ~/RPM

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Обратно его можно всегда собрать через
rpm -bs --nodeps ПУТЬ_файла.spec

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Да зачем логи? Если мы ставили пакет А, и по зависимостям притянулись пакеты В,С,D. Пакет А удалили, а  В,С,D остались, но от них уже ничего не зависит - в чем проблема их удалить? В
В том, что их невозможно тривиально вычислить.
Вы ставили devel, для его работы может потребоваться еще куча пакетов.
Представьте такую пирамидку.
Тот пакет, который вы поставили - в самом верху, а все, которые ему нужны для его работы - внизу (в несколько этажей).
 вы удаляете "верхний" пакет, а все, которые были ему нужны ("нижние") остаются. и при этом нет никакой гарантии, что если какой то-пакет нужен для верхнего, то это не значит, что пакет не нужен ещё кому-то.  Поэтому задача стоит найти самые нижнии ненужный пакеты, которые не нужен более никому в системе.
Если вам не нужны вообще devel пакеты, то задача сильно упрощается -  ищите  все  devel и удаляете их. а вот если исходному пакету был нужен не devel пакет, то он остаётся в системе, и вычислить его достаточно сложно.
Проще посмотреть в логах.
« Последнее редактирование: 15.02.2016 20:39:45 от ruslandh »

Оффлайн winhex

  • Участник
  • *
  • Сообщений: 19
ruslandh, спасибо за советы. Попробовал собрать несколько пакетов, но увы, особого успеха не достиг в этом. Удалось собрать то, что позже нашел собранным в Autoports ;-D
А вот darktable 2 там не собрался, и я его собрать не смог.  Наверное, можно его было бы поставить из Сизифа, но такой вариант я уже проходил со стабильным Debian + sid. Ничего хорошего в итоге не выходит.
Может когда-нибудь его соберет кто-то более опытный в этих делах.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
А вот darktable 2 там не собрался, и я его собрать не смог.
Я его не смотрел, но он может вообще, чисто теоретически, может быть не собираем в p7, по той. или иной причине.

Оффлайн alsoijw

  • Участник
  • *
  • Сообщений: 166
  • Fedora 25 GNOME 3 amd64
А вот darktable 2 там не собрался, и я его собрать не смог.
в некоторых случаях помогает ампутация части кода. Но вполне вероятно что там удалять придётся всё/критически важную часть.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
А вот darktable 2 там не собрался, и я его собрать не смог.

Цитата из спека:
libgtk+3-devel >= 3.10
В p7 версия 3.8, так что никак.