PHP ищет неправильный файл библиотеки, кажется, что в apt установлена ​​неправильная версия, но я не могу удалить ее

516
spraff

У меня был стек LAMP с libsodium, работающий нормально на Ubuntu 15.x, но после обновления до 16.04 PHP и libsodium не работают вместе

$> php -dextension=libsodium.so -r 'echo "foo";' PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/libsodium.so' - /usr/lib/php/20151012/libsodium.so: cannot open shared object file: No such file or directory in Unknown on line 0 

Обратите внимание, что число в пути здесь не совпадает 20151012

$> find /usr/lib | grep sodium /usr/lib/php5/20131226/libsodium.so 

Удалить и переустановить может быть?

 $> apt-get purge 'libsodium* [ok] $> dpkg --get-selections | grep sodium [no output] $> find /usr/lib | grep sodium /usr/lib/php5/20131226/libsodium.so 

Эта библиотека, похоже, застряла.

$> apt-get install libsodium-dev libsodium18 [ok] $> find /usr -type l -ls | grep sodium 393054 0 lrwxrwxrwx 1 root root 34 Feb 6 2016 /usr/share/doc/libsodium-dev/changelog.Debian.gz -> ../libsodium18/changelog.Debian.gz 132064 0 lrwxrwxrwx 1 root root 19 Feb 6 2016 /usr/lib/x86_64-linux-gnu/libsodium.so -> libsodium.so.18.0.1 132056 0 lrwxrwxrwx 1 root root 19 Feb 6 2016 /usr/lib/x86_64-linux-gnu/libsodium.so.18 -> libsodium.so.18.0.1 $> find /usr/lib | grep sodium /usr/lib/x86_64-linux-gnu/libsodium.so /usr/lib/x86_64-linux-gnu/libsodium.a /usr/lib/x86_64-linux-gnu/libsodium.so.18 /usr/lib/x86_64-linux-gnu/libsodium.so.18.0.1 /usr/lib/x86_64-linux-gnu/pkgconfig/libsodium.pc /usr/lib/php5/20131226/libsodium.so 

Но после этого ошибка PHP остается прежней. Файлы и оглавлению readlinks в /etcи /usrне просветил меня о том, почему PHP хочет путь, содержащий 20151012(а YMD дату?)

Почему PHP застрял, ища неправильный путь для libsodium?

0

1 ответ на вопрос

0
spraff

libsodium был установлен через pecl, который не был обновлен.

pecl uninstall libsodium apt-get install php5-dev pecl install libsodium