Вопрос или проблема
Я пытаюсь установить версию PHP 5.6.37 из AUR с помощью команды makepkg -i
, но когда доходит до проверки “freetype2”, появляется ошибка:
проверка freetype2… configure: ошибка: freetype-config не найден.
У меня уже установлена версия 7.2, но мне нужна 5.6 для старого проекта, и, как и в Ubuntu, я собираюсь установить обе.
makepkg -i
==> Создание пакета: php56 5.6.37-1 (ср. 12 сен 2018 12:27:39 +08)
==> Проверка зависимостей времени выполнения...
==> Проверка зависимостей времени сборки...
==> Получение исходников...
-> Найден php-5.6.37.tar.xz
-> Найден php-5.6.37.tar.xz.asc
-> Найден php.ini.patch
-> Найден apache.conf
-> Найден php-fpm.conf.in.patch
-> Найден logrotate.d.php-fpm
-> Найден php-fpm.service
-> Найден php-fpm.tmpfiles
-> Найден use-enchant2.patch
-> Найден php-freetype-2.9.1.patch
==> Проверка целостности исходных файлов с помощью sha512sums...
[...]
проверка необходимости включения функции truetype в GD... да
проверка необходимости включения поддержки японских шрифтов сJIS в GD... нет
Если configure завершится ошибкой, попробуйте --with-vpx-dir=<DIR>
проверка jpeg_read_header в -ljpeg... да
проверка png_write_image в -lpng... да
проверка XpmFreeXpmImage в -lXpm... да
проверка pkg-config... (кэшировано) нет
проверка freetype2... configure: ошибка: freetype-config не найден.
==> ОШИБКА: Произошла ошибка в build().
Прерывание...
Установка freetype2
с помощью Pacman не решила проблему.
Я это исправил.
Сначала я установил pkg-config
а затем заменил в PKGBUILD строку:
--with-freetype-dir=/usr \
на
--with-freetype-dir=/usr/include/freetype \
Я не уверен, какая из двух строк решает проблему, или обе.
sudo pacman -S pkgconf
работает для меня.
Ответ или решение
При установке PHP 5.6.37 из AUR (Arch User Repository) на Arch Linux, вы можете столкнуться с ошибкой, связанной с отсутствием конфигурации FreeType2. В данном случае ошибка, указывающая на отсутствие freetype-config
, указывает на то, что система не может найти файловую конфигурацию библиотеки FreeType.
Возможные причины и решения проблемы
1. Отсутствие установленных зависимостей
Ошибка freetype-config not found
обычно возникает, если пакет freetype2
не установлен или не настроен должным образом. Хотя вы упомянули, что установили freetype2
с помощью Pacman, важно убедиться, что у вас также установлен пакет pkg-config
, который нужен для автоматического обнаружения и настройки библиотек.
Решение:
sudo pacman -S pkgconf
Установка pkg-config
может решить проблему, так как он используется для определения местоположения установленных библиотек и их файлов конфигурации.
2. Изменение файла PKGBUILD
Вы также упомянули, что в файле PKGBUILD заменили строку:
--with-freetype-dir=/usr \
на:
--with-freetype-dir=/usr/include/freetype \
Это изменение указывает компилятору на правильное местоположение заголовочных файлов FreeType. Если проблема заключалась в неверном пути, то данное изменение могло привести к успешной сборке.
Проверка установки
После внесения изменений убедитесь, что ваше окружение полностью обновлено, а все необходимые пакеты установлены. Выполните следующие команды для проверки:
sudo pacman -Syu
sudo pacman -S freetype2 pkgconf
Подведение итогов
Скорее всего, проблемой было отсутствие pkg-config
, и ваше исправление в PKGBUILD также помогло указать на правильный путь к заголовочным файлам FreeType. Важно проверить каждую из зависимостей и убедиться, что они правильно установлены и настроены. Это поможет избежать подобных проблем в будущем.
Чтобы улучшить ваш опыт работы с AUR и решения подобных зависимостей, рекомендуется более детально ознакомиться с документацией Arch Linux и AUR. Kурс на изучение структуры зависимостей и систем сборки значительно упростит вашу жизнь в будущем.
Если у вас возникнут дополнительные вопросы или проблемы с установкой других пакетов, не стесняйтесь обращаться на форумы Arch Linux или искать помощь в соответствующих сообществах.