php ссылается на системный libxml вместо версии, указанной в ./configure --with-libxml-dir

При установке создается один пользователь для локального администрирования. Вам следует подумать об использовании подходящего имени для этого пользователя. Он должен отличаться от идентификатора пользователя, который вы обычно используете, если вам нужны определенные UID и GID.

Команда настройки пользователей и групп позволяет указать UID или GID соответственно. Однако, если вам нужны общие идентификаторы пользователей в нескольких системах, вы можете использовать другой механизм. Вы можете рассмотреть:

  • LDAP, который требует небольшой настройки, но предназначен для этой цели.
  • Альтернативный файл паролей, который синхронизируется с помощью некоторого механизма.
  • Использование такого инструмента, как ansible, для добавления пользователей.

Если вы используете эти методы, убедитесь, что ваши UID и GID не дублируются в разных системах.

В крайнем случае вы можете изменить UID и GID в файлах /etc/passwrd и /etc/group. Затем вам нужно будет указать все файлы, принадлежащие пользователю, на новый UID и все файлы, принадлежащие группе, на новую группу. Если вы сделаете это раньше, нужно будет изменить только несколько файлов в /home.

1
20.03.2016, 09:49
2 ответа

У меня очень похожая проблема на Ubuntu 12 с php 5.5 и curl - мне нужен был новый curl, который я скомпилировал и установил в / usr / local /curl-7.49.1 .

Использование - with-curl = / usr / local / curl-7.49.1 не сработало должным образом - полученный двоичный файл был связан с / usr / lib / x86_64-linux- gnu / libcurl.so . Кстати: Моей целью было статически связать curl с бинарным файлом php с помощью libcurl.a (чтобы избежать проблем с версией), но это не было причиной проблем.

На этом этапе я начал тестировать свою сборку с переменной среды LDFLAGS , установив экспорт LDFLAGS = -L / usr / local / curl-7.49.1 / lib . {{{ 1}} Это тоже не сработало, результат тот же, что и раньше.

После некоторых исследований и тестов (я не специалист по autoconf / Makefile ;-) я заметил вызов libtool в процессе сборки: libtool -L / usr / lib / x86_64- linux-gnu -L / usr / local / curl-7.49.1 / lib [...]

Параметр - with-libs скрипта configure размещен до переменной LDFLAGS , поэтому libtool забирал не мой файл libcurl, а файл из базовой системы.

Поэтому я посмотрел глубже и попытался установить EXTRA_LDFLAGS_PROGRAM вместо LDFLAGS :

export EXTRA_LDFLAGS_PROGRAM=-L/usr/local/curl-7.49.1/lib

Теперь сборка прошла успешно.Я не знаю, является ли это правильным способом решения проблемы и является ли это ошибкой или неправильной конфигурацией. Я был бы очень рад, если бы кто-нибудь мог мне это разъяснить.

Итак - ваш случай не совсем такой, но попробуйте это перед запуском configure:

export EXTRA_LDFLAGS_PROGRAM=-L/usr/local/lib/

Сообщите мне, поможет ли это.

0
28.01.2020, 01:23

На случай, если кто-нибудь когда-нибудь снова заглянет сюда, я уверен, что ответ лежит в параметре --libdir= команды./configure:

  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]

Иногда вам нужно --libdir=/usr/lib/x86 _64 -linux -gnu, так как Ubuntu хранит множество библиотек в /usr/lib/x86 _64 -linux -gnu, а иногда вам нужно --libdir=/usr/local/lib, например, когда вы собрали libxml из исходного кода и поместили его в /usr/local, а в других случаях иногда самым простым решением является символическая ссылка на файлы из /usr/local/lib в /usr/lib/x86 _64 -linux -gnu

0
28.01.2020, 01:23

Теги

Похожие вопросы