в debian

cp: cannot stat ‘ltmain.sh’: No such file or directory


После обновления дистрибутива с Debian Wheezy до Debian Jessie при установке php-расширения twig столкнулся с проблемой cp: cannot stat 'ltmain.sh': No such file or directory. Давайте разберемся!

Действия выполнялись на:

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.6 (jessie)
Release:    8.6
Codename:   jessie

Установка необходимого php-расширения (шаблонизатора) twig:

git clone git://github.com/fabpot/Twig.git
cd Twig/ext/twig/
phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
cp: cannot stat 'ltmain.sh': No such file or directory

Как оказалось — это баг. Дело в том, что в каталоге /usr/lib/php5/build/ находится ltmain.sh в виде ссылки на ../../../../share/libtool/confg/ltmain.sh. Но, как оказалось, в действительности такого файла не существует, и при выполнении phpize получаем ошибку.

Для исправления этой досадной ситуации необходимо исправить ссылку, делаем это так:

cd /usr/lib/php5/build/
sudo rm ltmain.sh
ln -s ../../../share/libtool/build-aux/ltmain.sh

или то же самое, но одной строкой:

sudo rm /usr/lib/php5/build/ltmain.sh && sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/lib/php5/build/ltmain.sh

Пытаемся еще раз установить расширение:

cd ~/Twig/ext/twig/
phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
./configure
make && make install

На этот раз все сработало без ошибок!

Добавить комментарий