Всем привет!
Устроил тут себе развлечение - пересобрал кучу пакетов ручками. Соответственно, все библиотеки уехали из /usr/lib в /usr/local/lib. Ну ладно, чёрт с ними - с библиотеками; всё работает нормально. Но вот есть проблема с файлами .la, уехавшими туда же. Они при линковке libtool'ом не находятся. Ж:-\
Временно решаю проблему symlink'ами - но это не дело, надо нормально сделать. Внимание, вопрос - как? Я пока не нашёл такой информации...
DLL-hell a la Linux
Модератор: Модераторы разделов
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: DLL-hell a la Linux
ну так пересоберите еще раз с указанием нужного prefix-а.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Michael
- Сообщения: 92
Re: DLL-hell a la Linux
Странно это. Попробуй export LDFLAGS=-L/usr/local/lib перед тем, как configure делаешь.
-
nonstop
- Сообщения: 132
- ОС: Slackware
Re: DLL-hell a la Linux
добавь
например в .bash_profile
Код: Выделить всё
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libнапример в .bash_profile
slackware - linux for human brains
-
Cyril
- Сообщения: 40
- ОС: Разные...
Re: DLL-hell a la Linux
А смысл? Префикс у них идеологически правильный и идейно выдержанный - проблема не в этом, а в том, что система разные части библиотеки ищет по разным префиксам.
Ну вообще-то у меня в ld.so.conf это прописано - или я не совсем верно понимаю смысл LDFLAGS?
nonstop писал(а): ↑09.01.2008 08:58добавь
Код: Выделить всё
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
например в .bash_profile
Увы - см. ответ выше. Плюс пробовал так делать - безрезультатно; возникает ощущение, что libtool тупо читает абсолютные пути в .la-файлах собираемых библиотек и больше никуда не смотрит, хотя это бред....
Туман пока не рассеялся. Ж:-\
-
Michael
- Сообщения: 92
Re: DLL-hell a la Linux
В ld.so.conf прописываются пути, где искать библиотеки во время выполнения, а в LDFLAGS - опции, которые configure и make передают линковщику.
Покажи, как оно матерится.
-
Cyril
- Сообщения: 40
- ОС: Разные...
Re: DLL-hell a la Linux
Ага, спасибо - усвоил. Проверю.
Сейчас в лоб не могу - на работе. В принципе, там две строчки - одна про то, что файла нет (видимо, от системы), вторая про то, что файл не является правильным образом (если точно помню - соответственно, от libtool). В обоих файл с префиксом /usr/lib вместо /usr/local/lib.
-
cdrw
- Сообщения: 249
Re: DLL-hell a la Linux
Cyril писал(а): ↑09.01.2008 03:11Всем привет!
Устроил тут себе развлечение - пересобрал кучу пакетов ручками. Соответственно, все библиотеки уехали из /usr/lib в /usr/local/lib. Ну ладно, чёрт с ними - с библиотеками; всё работает нормально. Но вот есть проблема с файлами .la, уехавшими туда же. Они при линковке libtool'ом не находятся. Ж:-\
Временно решаю проблему symlink'ами - но это не дело, надо нормально сделать. Внимание, вопрос - как? Я пока не нашёл такой информации...
Для примера, можно хотябы один пакет(сырцы) и его буилд, библиотеки которого "уехали из /usr/lib в /usr/local/lib"?
-
Cyril
- Сообщения: 40
- ОС: Разные...
-
cdrw
- Сообщения: 249
Re: DLL-hell a la Linux
Hotelos by build posmotret', no seitschas ja ughe na rabote. Winda, kak nazlo gliuchit.
V confige nichego ne nashol, no est' navodiash'aja ssylka.
P.S.
_ftp://ftp.gnome.org/pub/gnome/sources/glib/2.15/glib-2.15.1.tar.bz2
Откомпилировал этот пакет, использовал буилд от Slackware - никаких проблем.
Код: Выделить всё
CWD=`pwd`
TMP=/tmp
PKG=$TMP/package-glib2
rm -rf $PKG
mkdir -p $PKG/usr
VERSION=2.15.1
ARCH=${ARCH:-i486}
BUILD=1
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2"
fi
cd $TMP
rm -rf glib-$VERSION
tar xjvf $CWD/glib-$VERSION.tar.bz2 || exit 1
cd glib-$VERSION
chown -R root:root .
find . -perm 664 -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/man \
--build=$ARCH-slackware-linux
make -j4 || exit 1
make install DESTDIR=$PKG
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
gzip -9 $PKG/usr/man/man?/*
mkdir -p $PKG/usr/doc/glib-$VERSION
cp -a \
AUTHORS COPYING NEWS README \
$PKG/usr/doc/glib-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $TMP/package-glib2
makepkg -l y -c n ../glib2-$VERSION-$ARCH-$BUILD.tgz-
Cyril
- Сообщения: 40
- ОС: Разные...
Re: DLL-hell a la Linux
Я как раз не использовал сборку от Slackware - исходники брал напрямую с gnome.org. Плюс к тому, со сборкой GLib проблем и не было (как я помню) - проблемы начались при сборке пакетов, от него зависящих, которые ищут .la в /usr/lib - в то время, как у меня они (по вполне понятным причинам) в /usr/local/lib.
-
cdrw
- Сообщения: 249