Компиляция PHP из исходного кода с MySQL версии 5.6

Я пытаюсь скомпилировать PHP из исходного кода, чтобы заставить ZTS работать. У меня есть источник для PHP, и я пытаюсь установить зависимости с

apt-get build-dep php5

У меня также установлен MySQL 5.6 для Ubuntu 14.04LTS, и я получаю эту ошибку после команды:

Следующие пакеты имеют неудовлетворенные зависимости: mysql-server: Зависит: mysql-server-5.5, но он не будет установлен E: Build-зависимости для php5 не могут быть выполнены.

Есть ли способ обойти эту зависимость, так как MySQL 5.6 работает нормально с предварительно собранным PHP5, но я не могу начать компиляцию, так как зависимость отсутствует? Спасибо!

5 ответов

Решение

Хотя это не та проблема, этот отчет об ошибках MySQL намекает на решение. Попробуйте следующие шаги:

  1. Удалите mysql-client-5.6 и mysql-server-5.6: [sudo] apt-get remove mysql-client-5.6 mysql-server-5.6,

  2. Начни свой [sudo] apt-get build-dep php5 команда. Разрешить автоматическое построение необходимых зависимостей перед повторным обновлением.

  3. Переустановите mysql-5.6. Это должно заменить все ссылки на mysql-5.5. Используйте команду [sudo] apt-get install mysql-client-5.6 mysql-server-5.6,

Это всего лишь выстрел в темноте, но вы можете попробовать сначала установить mysql 5.5 с необходимыми сборками php, а когда закончите, обновите mysql до 5.6

Почему вы используете apt-get build-dep вместо install? Согласно man-странице apt-get, "build-deps" попытается удалить установленный пакет, чтобы устранить зависимость, которая здесь - mysql-server-5.6 . Я просто использовал установить, и это работает.

apt-get install php5

Чтобы проверить, использует ли php mysql-5.6, я установил PhpMyadmin с помощью apt-get, и он отлично работает с 5.6, вы можете сделать то же самое и на странице Variables проверить переменную с именем "Version".

Точно так же, как FYI apt-get build-dep отличается от сборки из исходного кода.

Поскольку этот вопрос касается установки PHP5 из исходного кода:
apt-get build-dep сомнителен.
Обнаружение зависимостей должно соответствовать тем же определениям, что и в
предоставленный пакет php5 - debian -.
Насколько я понимаю, вы хотите иметь другую конфигурацию сборки
для вашей установки php5, хотя.
Так что это обычно процесс./configure --your-configure-options
и сделать чистую компиляцию установки.
Определения зависимостей, которые генерируются вызовом для настройки
не будет экспортироваться или быть видимым для apt.
Таким образом, вам придется разрешить зависимости самостоятельно, установив
правильная версия программного обеспечения, необходимого для сборки вашего php5 - установка
и, возможно, пакеты для разработки, обеспечивающие правильные заголовки, необходимые для сборки.

PHP не может быть скомпилирован из Git Checkout на Ubuntu 14.04 из коробки.

Добро пожаловать в ад зависимости.

Попробуйте скомпилировать из предварительно скомпилированной загрузки.

Причина, по которой извлечение Git не скомпилируется, заключается в проблемах с зависимостью от Bison. Ubuntu 14.04 имеет Bison ~3.0.0 и Bison ~2.0.0 требуется для компиляции PHP.

checking for bison... bison -y
checking for bison version... invalid
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 3.0, min: 204, excluded: 3.0).
configure: error: bison is required to build PHP/Zend when building a GIT checkout!

Временное решение

Вот обходной путь, чтобы сделать apt-get build-dep php5 запустить успешно.

  1. Полностью удалить MySQL (не только соответствующие пакеты 5.6)

    Очень важно, чтобы все пакеты MySQL и любые файлы конфигурации были полностью удалены. Вы можете проверить, какие пакеты MySQL установлены, запустив dpkg -l | grep mysqlПосмотрите, что делают различные dpkg флаги типа 'ii' 'rc' означают?

    Удалите пакеты с опцией очистки: apt-get remove --purge <package name>

    Вам также может понадобиться вручную удалить некоторые файлы. Прочитайте сообщение, что apt-get remove --purge печатает, и он скажет вам, если он не удаляет определенные файлы и почему он не удаляет их. Вам нужно вручную удалить те файлы, которые apt-get не удаляет. Скорее всего, они будут файлы где-то внутри /etc/mysql каталог.

  2. Бежать apt-get build-dep php5

    Это делает apt-get build-dep php5 запустить успешно и установит MySQL 5.5!

  3. обеспечивать libmcrypt-dev установлено.

    Позже, когда вы попробуете скомпилировать, вы получите сообщения об ошибках readline или же mcrypt например:

    configure: error: Please reinstall readline - I cannot find readline.h
    

    Все эти ошибки решаются путем установки libmcrypt-dev, :) Слишком долго, чтобы понять эту проблему.

    apt-get install libmcrypt-dev
    
  4. Полностью удалите MySQL снова

    Пройдите процесс, как вы делали на шаге 1, за исключением того, что на этот раз вы удаляете 5.5.

  5. Установите MySQL 5.6

Устранение неполадок: при попытке компиляции вы все равно получаете ошибки?

Убедиться, что libmcrypt-dev установлено.

Другие вопросы по тегам