Downgrade boost в Ubuntu
От: jahr  
Дата: 02.11.16 09:20
Оценка:
Что-то я запутался в том, как правильно обращаться с версиями буста под Линуксом.)

Вкратце, ситуация такая: мне нужно было скомпилить большой чужой проект со множеством зависимостей под Линуксом. Там apt-get ставит версию буста 1.55, проект требовал минимум 1.57, я скачал и руками скомпилил 1.61, после этого оказалось, что проект совместим максимум с 1.60, и вот теперь мне не удается установить версию меньше чем 1.61.) Сейчас ситуация такая: в /usr/include лежит установленный apt-get'ом boost 1.55, в /usr/local/include — boost 1.61, установленный при помощи ./b2 install при сборке boost 1.61 из исходников. Если я теперь запускаю сборку boost 1.60 с тем же ./b2 install, то ничего не меняется, в /usr/local/include остается версия 1.61, видимо, более младшая версия не перетирает более старшую.(

Что с этим теперь делать? Удалять руками? Для этого достаточно удалить в include и lib? Не хотелось бы совсем сломать эту виртуалку, я ее использую для сборки многих проектов, перетаскивать все будет долго.)

Заранее благодарен за советы.)
Re: Downgrade boost в Ubuntu
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.11.16 09:32
Оценка: 4 (1)
Здравствуйте, jahr, Вы писали:

J>Если я теперь запускаю сборку boost 1.60 с тем же ./b2 install, то ничего не меняется, в /usr/local/include остается версия 1.61, видимо, более младшая версия не перетирает более старшую.(


что-то ты напутал.
при установке поверх любого другого буста — переписываются хидеры, но либы не удаляются. просто добавятся еще одни полноименные и перепишутся краткоименные.


J>Что с этим теперь делать? Удалять руками? Для этого достаточно удалить в include и lib? Не хотелось бы совсем сломать эту виртуалку, я ее использую для сборки многих проектов, перетаскивать все будет долго.)

руками.
смело сноси /usr/local/include/boost. ну и sudo rm -f /usr/local/lib/libboost_*

и ничего не инсталль из сорцов в /usr
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 02.11.2016 9:33 niXman . Предыдущая версия .
Re[2]: Downgrade boost в Ubuntu
От: jahr  
Дата: 02.11.16 09:52
Оценка:
Здравствуйте, niXman, Вы писали:

Спасибо, теперь понятнее, линукс почти не знаю, так что чувствую себя неуверенно, когда приходится что-то править руками.)

X>и ничего не инсталль из сорцов в /usr

А как правильно? Я же их туда не сам положил, собирал буст я у себя в домашней директории а в /usr они попали в результате выполнения target'а install при сборке (sudo ./b2 install)
Re[3]: Downgrade boost в Ubuntu
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.11.16 09:57
Оценка: 4 (1)
Здравствуйте, jahr, Вы писали:

J>А как правильно? Я же их туда не сам положил, собирал буст я у себя в домашней директории а в /usr они попали в результате выполнения target'а install при сборке (sudo ./b2 install)

ты говоришь про /usr/local. по умолчанию, все собираемое руками должно использовать /usr/local в качестве префикса. (--prefix=/usr/local)

я же нотед о том, чтоб тебе не захотелось вдруг использовать --prefix=/usr
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[4]: Downgrade boost в Ubuntu
От: jahr  
Дата: 02.11.16 10:15
Оценка:
Понятно, спасибо.)
Re[4]: Downgrade boost в Ubuntu
От: Evgeny.Panasyuk Россия  
Дата: 02.11.16 10:19
Оценка: 17 (3) +1
Здравствуйте, niXman, Вы писали:

X>по умолчанию, все собираемое руками должно использовать /usr/local в качестве префикса. (--prefix=/usr/local)


Кстати, install в /usr/local не удобно — потом нормально не удалишь ОДИН пакет. Для разруливания этой проблемы использую Stow — устанавливаешь каждый пакет в отдельную папку, после чего запускаешь stow который расставляет симлинки в /usr/local.
Re[5]: Downgrade boost в Ubuntu
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.11.16 11:32
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:


EP>Кстати, install в /usr/local не удобно — потом нормально не удалишь ОДИН пакет. Для разруливания этой проблемы использую Stow — устанавливаешь каждый пакет в отдельную папку, после чего запускаешь stow который расставляет симлинки в /usr/local.


не знал что есть такая софтина. сам-то делаю так:
при установке любого пакета(к примеру, буста):
touch $HOME/markers/before-boost-install.marker
./b2 release && sudo ./b2 install --prefix=/usr/local

// удалятся все файлы, которые были созданы после создания маркера:
sudo find /usr/local -type f -newer $HOME/markers/before-boost-install.marker | xargs rm -rf > /dev/null 2>&1

т.е. если после буста устанавливал еще какие-то пакеты — они тоже удалятся. просто, удобно.
ну а Stow, конечно, поудобней будет. спасибо.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 02.11.2016 11:40 niXman . Предыдущая версия .
Re[5]: Downgrade boost в Ubuntu
От: andrey.desman  
Дата: 02.11.16 16:10
Оценка: 20 (1)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

X>>по умолчанию, все собираемое руками должно использовать /usr/local в качестве префикса. (--prefix=/usr/local)


EP>Кстати, install в /usr/local не удобно — потом нормально не удалишь ОДИН пакет. Для разруливания этой проблемы использую Stow — устанавливаешь каждый пакет в отдельную папку, после чего запускаешь stow который расставляет симлинки в /usr/local.


Или просто устанавливаешь через checkinstall.
Re[6]: Downgrade boost в Ubuntu
От: Evgeny.Panasyuk Россия  
Дата: 02.11.16 16:28
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>Или просто устанавливаешь через checkinstall.


Я так понимаю это менее универсально — насколько я вижу нет поддержки Gentoo, BSD, OS X.
За наводку спасибо. Но название знакомое, возможно я даже пробовал, но не помню почему не прижилось (может конфликты с аналогичными пакетами из основного repo?), надо будет ещё раз попробовать на CentOS.
Re[7]: Downgrade boost в Ubuntu
От: zaufi Земля  
Дата: 02.11.16 17:13
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, andrey.desman, Вы писали:


AD>>Или просто устанавливаешь через checkinstall.


EP>Я так понимаю это менее универсально — насколько я вижу нет поддержки Gentoo, BSD, OS X.


потому что нафиг не нужна поддержка Gentoo, вот и нету... в Gentoo и без этой тулзы никаких сложностей с созданием "своих" "пакетов"...

а "менее универсально" оно в силу того, что `./configure && make && make install DESTDIR='...'` + оборачивание установленного в соответствущий формат это далеко не полноценный пакет (т.е. самый тупой вариант пакета) RPM или DEB... "настоящий мальчег" может уметь чуть больше, чем просто распаковать архив в файловую систему... но да, "сканает" для тех кому надо побыстрой сляпать что-то похожее на родной пакет.


EP>За наводку спасибо. Но название знакомое, возможно я даже пробовал, но не помню почему не прижилось (может конфликты с аналогичными пакетами из основного repo?), надо будет ещё раз попробовать на CentOS.
Re[8]: Downgrade boost в Ubuntu
От: Evgeny.Panasyuk Россия  
Дата: 02.11.16 17:23
Оценка: :)
Здравствуйте, zaufi, Вы писали:

AD>>>Или просто устанавливаешь через checkinstall.

EP>>Я так понимаю это менее универсально — насколько я вижу нет поддержки Gentoo, BSD, OS X.
Z>потому что нафиг не нужна поддержка Gentoo, вот и нету... в Gentoo и без этой тулзы никаких сложностей с созданием "своих" "пакетов"...

Полноценные пакеты требуют больше усилий — зависимости, USE-флаги, положить ebuild в локальный оверлей и т.п.

Z>а "менее универсально" оно в силу того, что `./configure && make && make install DESTDIR='...'` + оборачивание установленного в соответствущий формат это далеко не полноценный пакет (т.е. самый тупой вариант пакета) RPM или DEB... "настоящий мальчег" может уметь чуть больше, чем просто распаковать архив в файловую систему... но да, "сканает" для тех кому надо побыстрой сляпать что-то похожее на родной пакет.


Я имел в виду что "менее универсально" чем Stow, а не чем "родной настоящий" пакет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.