LINUX.ORG.RU

Об установке boost. На различных дистрах.

 


0

2

Давно уже хотел спросить. Вот есть программа, которая использует boost libraries, линкуется все динамически с бустом. По идее она должна легко собираться на различных дистрибутивах линукс, потому что задача - распределенные вычисления. Но вот нежданчик: при попытке скомпилировать это на следующих системах: ubuntu, fedora, centos, arch, gentoo, приводила к необходимости вручную на каждом дистре допиливать, а то и вовсе в адовых муках пытаться установить boost. Причем на каждом дистре свои заморочки. А теперь вопрос: это мое неосиляторство или все так и должно быть? Как мне написать скрипт для инсталятора, свитч на каждый дистр? Или собирать буст и ставить его в /usr/local ? И еще вопрос: как поддерживаете рабочие проекты с бустом, есть ли сложности при обновлении от версии к версии?



Последнее исправление: nerdogeek (всего исправлений: 1)

не поддерживаю, но есть идея: в юзер-мануале написать, что прога поддерживает только самую последнюю версию буста, поэтому юзер обязан в арче собрать ее из аура, в убунту - из ппа, итп. В соответствующих пакетах прописать путь до официального гита (или до твоего форка), во всех пакетах до одного и того же. Ну или вместо юзермануала, на пакет с твоей прогой поставить зависимость на навзание пакета с бустом, не совпадающую с названием из официальных реп: require com_myproject_forks_boost, тогда юзверь будет просто обязан подключить репы, указанные на оффсайте, иначе установка даже не начнется.

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)

линкуется все динамически с бустом

you are doing it wrong! Линкуйся статически и поставляй бинарь. Либо поставляй бинарь вместе с либами. А если юзер собирает из исходников, то сам разберётся.

DELIRIUM ☆☆☆☆☆
()

Например, cmake, FindBOOST.cmake, например... (Или... Твоя любимая система сборки, скрипт для нее, с разруленными заморочками официально поддерживаемых осей/дистров, а остальное - официально назвать в мануале ССЗБ :))

И еще вопрос: как поддерживаете рабочие проекты с бустом, есть ли сложности при обновлении от версии к версии?

Руками, как же еще :) breaking changes случаются, хотя и не часто. На то есть контроль версий зависимостей в сборочном скрипте - в крайнем случае можно автоматом вытянуть и собрать нужный буст.

Или собирать буст и ставить его в /usr/local ?

Или не ставить, если эта версия буста не нужна никому, кроме твоей проги.

slackwarrior ★★★★★
()

Что ещё за «скрипт инсталятора»? Если пишете велопипеды, то да - это ваше неосиляторство. Берёте cmake и забываете про эти проблемы.

slovazap ★★★★★
()
Ответ на: комментарий от stevejobs

поэтому юзер обязан в арче собрать ее из аура, в убунту - из ппа, итп.

Наркоман штоле? Юзер не дожен ничего собирать. Он же не задрот какой-то.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

По крайней мере в арче сорс-пакеты и бинарные пакеты в ауре никак внешне не отличаются. Ты просишь установить пакет, а дальше уже дело пакета, откуда он будет брать файло и что с ним делать.

stevejobs ★★★★☆
()
Ответ на: комментарий от slovazap

cmake разве умеет скачивать пакеты с оффсайта перед сборкой?

Мавен да, умеет, а про cmake чото не асилил как это сделать...

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Что? С какого хрена ему скачивать пакеты? Система сборки обязана делать две вещи:

  • найти boost там где он установлен
  • ничего ни при каких условиях ни от куда не качать

поделка автора не делает первое, maven - второе, cmake же правильно делает всё. Алсо, за упоминание maven в треде не связанном с жавой надо бить морду.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

найти boost там где он установлен

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

тут какой-то чел на форуме пошел дальше - предлагал снимать со скачанных мавеном пакетов хэшсуммы и сверять с тем, что ожидал увидеть аффтар софтины. А то вдруг номер версии _точно_ такой же, а бинарно они отличаются и это ломает софтину.

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

И это ломает поделку аффтара

Афтару ремешком по мягким частям тела и до конца каникул к компьютеру не подпускать.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

Спасибо, очень информативный ответ. На уровне школьника-забияки.

nerdogeek
() автор топика
Ответ на: комментарий от nerdogeek

Да, другие вменяемые связки мне не известны

Reset ★★★★★
()
Ответ на: комментарий от stevejobs

и внезапно в системе установлен буст, отличающийся в восьмой цифре минорной части номера версии...

И внезапно в cmake с этим никаких проблем, если ты умеешь в cmake, а не потрепаться тут пришел :)

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.