Компиляция 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 намекает на решение. Попробуйте следующие шаги:
Удалите mysql-client-5.6 и mysql-server-5.6:
[sudo] apt-get remove mysql-client-5.6 mysql-server-5.6
,Начни свой
[sudo] apt-get build-dep php5
команда. Разрешить автоматическое построение необходимых зависимостей перед повторным обновлением.Переустановите 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
запустить успешно.
Полностью удалить 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
каталог.Бежать
apt-get build-dep php5
Это делает
apt-get build-dep php5
запустить успешно и установит MySQL 5.5!обеспечивать
libmcrypt-dev
установлено.Позже, когда вы попробуете скомпилировать, вы получите сообщения об ошибках
readline
или жеmcrypt
например:configure: error: Please reinstall readline - I cannot find readline.h
Все эти ошибки решаются путем установки
libmcrypt-dev
, :) Слишком долго, чтобы понять эту проблему.apt-get install libmcrypt-dev
Полностью удалите MySQL снова
Пройдите процесс, как вы делали на шаге 1, за исключением того, что на этот раз вы удаляете 5.5.
Установите MySQL 5.6
Устранение неполадок: при попытке компиляции вы все равно получаете ошибки?
Убедиться, что libmcrypt-dev
установлено.