После очередной перезагрузки (включения компа), заходя в nextcloud через вэбморду, вижу:
PHP module zip not installed.
Please ask your server administrator to install the module.
PHP modules have been installed, but they are still listed as missing?
Please ask your server administrator to restart the web server.
Модуль php5.6-zip установлен.
Не помогает даже полная переустановка пакета, что в основном и советуют на разных форумах.
Что надо сделать чтоб он увидел таки этот модуль (который буквально вчера еще видел и работал)?
Кто он?))
nextcloud или php, кто там из них не видит модуль php-zip.
Еще вот что говорит:
Я дал очень хороший наводящий вопрос - разберитесь, кто именно не видит. Пока верного ответа не было)
Знать бы еще как)
Судя по выхлопу чуть выше, делаю предположение что именно php и не видит свой модуль.
Но /usr/lib/php/20131226/zip.so лежит на месте.
zip.so - это динамически линкуемая библиотека (такая, как dll в винде). И когда бинарик ее загружает для использования, она, в свою очередь, может загружать также другие so-библиотеки. И когда это сделать не удается, основной бинарик говорит, что загрузить либу с зафейленной зависимостью не удалось.
Смотрим зависимости:
root@maximus:~# ldd /usr/lib/php/20151012/zip.so
linux-vdso.so.1 => (0x00007ffcb316c000)
libzip.so.4 => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3be4d42000)
/lib64/ld-linux-x86-64.so.2 (0x000056471f2a9000)
Опаньки, libzip нет. Но как же так, ведь apt должен был установить зависимости... Ищем пакет, в котором должен быть libzip.so.4:
max@maximus:~$ apt-file search libzip.so.4
libzip4: /usr/lib/x86_64-linux-gnu/libzip.so.4
libzip4: /usr/lib/x86_64-linux-gnu/libzip.so.4.0.0
Но вот какая досада, libzip4 же установлен! Смотрим файлы:
root@maximus:~# dpkg --listfiles libzip4
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libzip4
/usr/share/doc/libzip4/copyright
/usr/share/doc/libzip4/changelog.Debian.gz
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libzip.so.5.0.0
/usr/lib/x86_64-linux-gnu/libzip.so.5
Ага... Дядька Риддел ошибся малость и засунул либу пятой версии. Или тупо поленился собирать отдельный пакет. Короче, кто не понял - это мейнтейнерская ошибка в репе неона.
Варианта два: просить дядьку Джона все исправить или сделать костыль:
ln -s /usr/lib/x86_64-linux-gnu/libzip.so.5.0.0 /usr/lib/x86_64-linux-gnu/libzip.so.4
Большое спасибо!
Все так и ессть, правда у меня подключен сторонний реп с php и я уж было начал на него грешить. Снес его вчера, а не тут то было.
Надеюсь дядька Риддел поправит в будущем. А пока слинковал и все заработало.
Еще раз спасибо!
Для тех кто пришёл суда в поисках ошибки вида
попытка перезаписать «/usr/lib/x86_64-linux-gnu/libzip.so.5.0.0», который уже имеется в пакете libzip4:amd64 1.2.0-0neon+16.04+xenial+build3
Это баг в неоне, вот там инструкция как решить:
https://bugs.kde.org/show_bug.cgi?id=381183#c7
Отлично!
Отправить комментарий