[devel] %makeinstall и %make DESTDIR=%buildroot install в спеке
Eugene Prokopiev
=?iso-8859-1?q?prokopiev_=CE=C1_stc=2Edonpac=2Eru?=
Чт Июн 14 08:50:55 MSD 2007
Здравствуйте!
Собирая новую версию callweaver, столкнулся со следующей проблемой в
инсталл-скриптах:
$ make DESTDIR=~/callweaver-install install
создает структуру каталогов с local:
$ ls ~/callweaver-install/usr/
local
$ ls ~/callweaver-install/usr/local/
bin etc include lib sbin share var
С такой проблемой я сталкивался, собирая dbmail, и решил ее
использованием %makeinstall. Но если сказать (именно в это раскрывается
%makeinstall):
$ make 'INSTALL=/bin/install -p' prefix=~/callweaver-install/usr
exec_prefix=~/callweaver-install/usr bindir=~/callweaver-install/usr/bin
sbindir=~/callweaver-install/usr/sbin
sysconfdir=~/callweaver-install/etc
datadir=~/callweaver-install/usr/share
includedir=~/callweaver-install/usr/include
libdir=~/callweaver-install/usr/lib
libexecdir=~/callweaver-install/usr/lib
localstatedir=~/callweaver-install/var/lib
sharedstatedir=~/callweaver-install/usr/com
mandir=~/callweaver-install/usr/share/man
infodir=~/callweaver-install/usr/share/info install
То получим очень странное сообщение:
test -z "/usr/src/callweaver-install/usr/lib/callweaver" || /bin/mkdir
-p "/usr/src/callweaver-install/usr/lib/callweaver"
/bin/sh ../libtool --mode=install /bin/install -p 'libcallweaver.la'
'/usr/src/callweaver-install/usr/lib/callweaver/libcallweaver.la'
libtool: install: error: cannot install `libcallweaver.la' to a
directory not ending in /usr/local/lib/callweaver
make[4]: *** [install-opbxlibLTLIBRARIES] Error 1
Если задействовать %makeinstall в спеке, то ошибка будет другой:
/usr/bin/make install-data-hook
make[3]: Entering directory `/usr/src/RPM/BUILD/callweaver-1.1.99.20070614'
for install_dir in
/usr/src/tmp/callweaver-buildroot/var/lib/lib/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/lib/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/lib/callweaver
/usr/src/tmp/callweaver-buildroot/usr/lib/callweaver/modules
/usr/src/tmp/callweaver-buildroot/usr/lib/callweaver/modules/icd
/usr/src/tmp/callweaver-buildroot/var/lib/log/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/log/callweaver/cdr-custom
/usr/src/tmp/callweaver-buildroot/var/lib/log/callweaver/cdr-csv
/usr/src/tmp/callweaver-buildroot/var/lib/run/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/spool/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/spool/callweaver/outgoing
/usr/src/tmp/callweaver-buildroot/var/lib/spool/callweaver/voicemail
/usr/src/tmp/callweaver-buildroot/usr/share/callweaver/moh
/usr/src/tmp/callweaver-buildroot/usr/share/callweaver/keys
/usr/src/tmp/callweaver-buildroot/usr/share/callweaver/images; \
do \
if test ! -d "${install_dir}"; \
then \
mkdir -p ${install_dir}; \
chmod 0750 ${install_dir}; \
fi; \
if test -z ""; \
then \
chown callweaver:callweaver ${install_dir}; \
fi; \
done
chown: `callweaver:callweaver': invalid user
...
Кажется, именно поэтому предыдущую версию callweaver я собирал с make
DESTDIR=%buildroot install.
Что делать теперь?
--
С уважением, Прокопьев Евгений
Подробная информация о списке рассылки Devel