LINUX.ORG.RU

Archlinux поддержка нескольких версий библиотек

 , ,


0

1

Доброго времени суток,

С появления ROS версии Melodic появилась поддержка AUR пакетов для Archlinux-а, что не может не радовать. Но очевидная проблема совместимости поставки версионного middleware и rolling release хостовой ОС дает о себе знать. В целом, сейчас собрать пакет не получится сходу, нужно обходить проблемы. На всякий случай, если кто этим занимается, то первая проблема, связанная с множеством пакетов-тулзов из-за неверной генерации *Config.cmake с -lpthread вместо pthread, судя по всему, является косяком новой 3.13й версии cmake и рекомендуется откатиться на версию раньше — мне помогло.

Вторая проблема, это требование пакета 3й версии opencv, а в Arch-е она уже 4я и давненько. Вариант править проверку зависимости, очевидно плохой: кто знает как могло помяняться API, а как еще поменяется потом? Тогда вариант ставить вручную из сырцов opencv 3.4.1, что я и сделал. Но суть-то AUR пакета: поставил в pikaur -S и уходишь заниматься делами. На ум приходит вариант опакетить в AUR это дела в виде ros-melodic-opencv3, по такому же принципу, как это делали lunar и kinetic, а мейнтейнера других пакетов попросить включить мой. cv3 и cv4 в системе лежат в разных директориях и не отсвечивают друг на друга, значит, теоретически, ничто не мешает им лежать рядом, а при линковке явно указывать версию.

Собственно, после длинной прилюдии вопрос: правильно ли я рассуждаю или стоит сделать как-то по-другому?

Там, похоже, еще и буст отдельно собирать, ибо почему-то в 1.69 остался только signals2 в arch-е. Зачем? Почему? А ROS требует и signals и многие пакеты используют 1.69 boost. Такие вот дела.

JAkutenshi ()
Ответ на: комментарий от anonymous

Очевидно, я с этим и работаю. И проблема в том, что те зависимости от core-пакетов, что были, не работают. Вообще-говоря я не вполне понимаю, почему все эти пакеты сделали собирающимися 5 часов, а не бинарниками.

JAkutenshi ()
Ответ на: комментарий от greenman

Ну, основной платформой считается убунта. Держать 3 ОС на одном бедном hdd моего ноутбука не очень удобно. Заменять настроенный за 3 года арч на убунту тоже как-то не хочется. Остается виртуалка. Выбором стал докер, я делал образ для разработки на ros-kinetic (welcome https://cloud.docker.com/u/jakutenshi/repository/docker/jakutenshi/ubuntu-ros... , кстати, весьма разлетелся образ orocos toolchain https://cloud.docker.com/u/jakutenshi/repository/docker/jakutenshi/ubuntu-oro... ). Разработка при помощи tmux+ranger+vim+gdb возможна, занятна, я уже даже привык, но хочется удобств. И тут я проверял что-то на росвики и обнаружил, что, внезапно, они в последней версии для кучи дистрибутивов сделали пакеты и инструкции (даже под оффтопик!). Ну и обрадовавшись я полез ставить, но наткнулся просто на огромную гору проблем. Чуть позже пойду разбираться, одно письмо мейнтейнеру отправил с проблемами и решениями, в 2 ночи решил остановиться на бусте. Такие дела.

JAkutenshi ()