Как установить ext-gd для php7.4 в конфигурации scrutinizer-ci?

Через какой-то момент Scrutinizer начал постоянно давать сбой при попытке проанализировать код плагинов Sylius со следующими ошибками:

- sylius/sylius v1.7.3 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- sylius/sylius v1.7.2 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- sylius/sylius v1.7.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- sylius/sylius v1.7.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.

Пример: https://scrutinizer-ci.com/g/Setono/SyliusPronavicPlugin/inspections/c6ead08f-5fad-405e-b557-9d0adf987c0c

Он не может найти ни один из пакетов php7.4-gd / php7.0-gd / php-gd (я перепробовал все варианты, так как не знаю, какой Ubuntu там использует), а также не удается, если я пытаюсь указать параметры компилятора compile_options: '--enable-gd' (потому что это похоже на переписывание некоторых параметры по умолчанию, которые не указаны в документах, но необходимы для успешной работы Scrutinizer, см. https://scrutinizer-ci.com/g/Setono/SyliusPronavicPlugin/inspections/e198ca2c-125d-4d57-b8ef-2314a62c5ecc).

Кто-нибудь знает, как настроить Scrutinizer для установки ext-gd для php7.4? Официальные документы не информативны :(

UPD: похоже, что Scrutinizer работает под старой Ubuntu 14.04 (Scrutinizer старой Ubuntu 14.04) и там для него не существует пакетов php7.4 (поиск installing php7.4-gd at ubuntu 14.04 в Google не даст вам правильных результатов, поэтому единственный способ использовать ext-gd с php7.4 — предоставить параметры компиляции.

UPD2: см. ответ Сэма Дарка ниже

Спасибо


person igormukhingmailcom    schedule 06.05.2020    source источник


Ответы (2)


Вам нужно указать флаги GD в параметрах компиляции:

environment:
        php:
            version: 7.4.14
            compile_options: '--with-config-file-path=/home/scrutinizer/.phpenv/versions/7.4.14/etc --with-config-file-scan-dir=/home/scrutinizer/.phpenv/versions/7.4.14/etc/conf.d --prefix=/home/scrutinizer/.phpenv/versions/7.4.14 --libexecdir=/home/scrutinizer/.phpenv/versions/7.4.14/libexec --enable-intl --with-openssl --enable-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --enable-exif --with-libzip --with-zlib --with-zlib-dir=/usr --with-sodium --with-pdo-sqlite --enable-soap --enable-xmlreader --with-xsl --enable-ftp --with-tidy --with-xmlrpc --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-shmop --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-pcntl --with-readline --enable-mbstring --with-curl --with-pgsql --with-pdo-pgsql --with-gettext --enable-sockets --with-bz2 --enable-bcmath --enable-calendar --with-libdir=lib --enable-fpm --enable-maintainer-zts --with-gmp --with-kerberos --with-imap --with-imap-ssl --with-apxs2=/usr/bin/apxs --with-ldap --with-pear=/home/scrutinizer/.phpenv/versions/7.4.14/pear'             compile_options: '--with-config-file-path=/home/scrutinizer/.phpenv/versions/7.4.14/etc --with-config-file-scan-dir=/home/scrutinizer/.phpenv/versions/7.4.14/etc/conf.d --prefix=/home/scrutinizer/.phpenv/versions/7.4.14 --libexecdir=/home/scrutinizer/.phpenv/versions/7.4.14/libexec --enable-intl --with-openssl --with-gd --enable-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --enable-exif --with-libzip --with-zlib --with-zlib-dir=/usr --with-sodium --with-pdo-sqlite --enable-soap --enable-xmlreader --with-xsl --enable-ftp --with-tidy --with-xmlrpc --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-shmop --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-pcntl --with-readline --enable-mbstring --with-curl --with-pgsql --with-pdo-pgsql --with-gettext --enable-sockets --with-bz2 --enable-bcmath --enable-calendar --with-libdir=lib --enable-fpm --enable-maintainer-zts --with-gmp --with-kerberos --with-imap --with-imap-ssl --with-apxs2=/usr/bin/apxs --with-ldap --with-pear=/home/scrutinizer/.phpenv/versions/7.4.14/pear'
person Sam Dark    schedule 30.01.2021

Вам нужно добавить репозиторий ondrej/php, обновить список пакетов, а затем установить php7.4-gd:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt-get install php7.4-gd
person Dr.X    schedule 07.05.2020
comment
Спасибо за ответ, но ppa:ondrej/php есть пакеты только для Ubuntu 16+ и не поддерживает Ubuntu 14.04. - person igormukhingmailcom; 12.05.2020
comment
@igor_mukhin, так какое решение для 14.04? - person shamaseen; 22.05.2020
comment
@shamaseen, решение из раздела UPD носит чисто теоретический характер, на практике компиляция завершится ошибкой, если вы просто укажете один вариант. Я не нашел решения, и так как это заняло слишком много времени, мы думаем о временном удалении Scrutinizer из нашего рабочего процесса CI. - person igormukhingmailcom; 25.05.2020
comment
@igor_mukhin о, я хотел бы знать, есть ли у кого-нибудь решение или как перейти на Ubuntu 18.04 в Scrutinizer, уже 2 дня ищут решение, но на самом деле ни одно из них не работает. Думаю, я просто проигнорирую Scrutinizer и, возможно, перейду на Travis или что-то еще. - person shamaseen; 25.05.2020