LINUX.ORG.RU

Снести .la архивы у установленного софта

 ,


0

1

Здравствуйте. Ставлю LFS/BLFS и столкнулся с одной трудностью - не могу никак въехать в суть проблемы. http://www.linuxfromscratch.org/blfs/view/stable/introduction/la-files.html. Если коротко, то предлагается снести почти все libtool архивы (.la) и подправить все файлы от pkg-config так, чтобы они ссылались на обычные либы. Аргументация примерно такая (как я понял) - мол какая-то либа может обновиться и не использоввать больше libtool, и последующая линковка с такой либой вызовет ошибку. Я нахожу это ерундой какой-то, ну если она обновится, то обновит и .pc файл от pkg-config и не будет больше линковаться с .la libtool архивом. Я чего-то не допонял? Действительно разумно сносить .la архивы от устанавливаемого софта? Хочу понимать что делаю, а не просто копипастить. Слова автора

The problem is that libtool usually creates one or more text files for package libraries called libtool archives. These small files have a ".la" extention and contain information that is similar to that embedded in the libraries. When building a package that uses libtool, the process automatically looks for these files. If a package is updated and no longer uses the .la file, then the build process can break.

Там же ясно написано:

When building a package that uses libtool, the process automatically looks for these files

так что то что .pc файл обновится не особо поможет. Есть другая проблема - библиотеки зависимые от этой библиотеки завязываются на .la файл, и если он пропадёт или потеряет актуальность сломается сборка уже с ними.

На самом деле тут достаточно понимать что это а) связано с ублюдской статической линковкой, значит должно быть безжалостно выкошено б) autocrap - специфичное говно, с таким же выводом.

slovazap ★★★★★ ()

Правильно там все написано. К примеру в .la упомянута libastral.so.0. В новой версии отказались от libtool и библиотека стала называться libastral.so.1 + ln -s libastral.so.1 libastral.so. libtool будет пытаться линковаться с libastral.so.0 и обломается. А вообще libtool есть абсолютное зло: он медленный и не решает проблему, которую должен решать. Зато создает кучу новых проблем: мне приходилось использовать патченный libtool чтобы собирать динамические библиотеки для маргинальных ОС (для Windows например).

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

мне приходилось использовать патченный libtool чтобы собирать динамические библиотеки для маргинальных ОС (для Windows например).

Потому что ты, вендузятник, должен страдать.

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

Обожаю экспертов, ставящих диагноз по юзерпику. И что же милостивый государь заставило вас думать, что я использовал Windows хотя бы раз за последние 10 лет? Настраивать сборку не суть то же, что и запускать систему или делать что-то подобное. К тому же это не отменяет основной проблемы: под Solaris libtool вообще не в состоянии собирать модули, для его работы использовались такие костыли, что страшно сказать. Поэтому я считаю, что autotools без libtool были бы очень хорошим решением, но пока я пользуюсь другими инструментами.

rymis ★★ ()

pkg-config тут вообще не при чем. .la лучше убивать при рождении, ибо бессмысленный хлам. и find /usr/lib -name «*.la» -delete" ничего страшного в себе не таит. всегда так делаю, лет 15 уже как

походу, кутовые .prl можно на ту же помойку отправлять

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

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

ananas ★★★★★ ()

в gentoo во множестве ебилдов используется на этапе установки

src_install() {
	if ! use static-libs ; then
		find "${ED}" -name '*.la' -delete || die
	fi
}

т.е. если собираешь без --enable-static, то удаляй перед make install

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

pkg-config очень даже при чём. Она вполне может вернуть .la https://stackoverflow.com/questions/13939153/pkg-config-libs-returns-a-la-file-but-g-cant-handle-it. Также не вижу препядствий для наличия в каком-нибудь makefile чего-нибудь вроде: libtool --mode=link gcc -g -O -o main main.c libq.la, что, естественно, упадёт после сноса .la архивов.

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