Невозможно скомпилировать PHP 5.6 в Debian 8

Возникновение проблемы, с которой вы столкнулись, связано со способом токенизации командной строки. В данном конкретном случае, задолго до раскрытия $(echo 'echo | tac'), оболочка уже выяснила, что вы собираетесь выполнить команду ( echo {…}) и передать его вывод через конвейер ( |) другой команде ( xargs -n 2 $(…)).

Затем на следующем этапе происходит заполнение $(…)и раскрытие фигурной скобки {…}для создания фактических команд, которые необходимо выполнить. И на этом этапе, если это приводит к характеру трубы, ну и что, уже слишком поздно, и он явно опоздал на автобус.

Теперь он будет рассматриваться не как специальный метасимвол, а будет включен в командную строку xargsкак обычный (=> неметасимвольный) символ.

Если вы хотите попробовать еще раз, вам нужно оценитьего.

eval "echo {0..9} | xargs -n 2 $(echo 'echo | tac')"

Это выведет то, что вы ожидаете.

0
12.03.2018, 11:24
1 ответ

Убедитесь, что вы установили следующие пакеты:

# apt-get install libxml2-dev libz-dev libbz2-dev libcurl4-openssl-dev libmcrypt-dev libpq-dev libxslt-dev

Я попробовал выполнить команду конфигурации в контейнере Docker [1], и команда завершилась успешно. Разум

  • изменение в ./configureкоманде:--with-openssl=/opt/opensslудалено
  • отсутствие пакета gettext

[1] Dockerfile для настройки PHP 5.6 в Debian Jessie (Директивы разделены, чтобы подчеркнуть порядок для каждого требуемого пакета, но сжатая форма [2] будет работать так же)

FROM debian:jessie                                                                                                                                                                         

RUN apt-get update

RUN apt-get install -y wget

RUN wget http://de2.php.net/get/php-5.6.33.tar.bz2/from/this/mirror -O php-5.6.33.tar.bz2

RUN apt-get install -y bzip2

RUN tar jxf./php-5.6.33.tar.bz2

RUN apt-get install -y gcc

RUN apt-get install -y libxml2-dev

RUN apt-get install -y libz-dev

RUN apt-get install -y libbz2-dev

RUN apt-get install -y libcurl4-openssl-dev

RUN apt-get install -y libmcrypt-dev

RUN apt-get install -y libpq-dev

RUN apt-get install -y libxslt-dev

RUN cd php-5.6.33 &&./configure --prefix=/opt/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

[2] Сжатый файл Docker для настройки PHP 5.6 в Debian Jessie

FROM debian:jessie                                                                                                                                                                         

RUN apt-get update && \
  apt-get install -y wget bzip2 gcc libxml2-dev libz-dev libbz2-dev libcurl4-openssl-dev libmcrypt-dev libpq-dev libxslt-dev && \
  wget http://de2.php.net/get/php-5.6.33.tar.bz2/from/this/mirror -O php-5.6.33.tar.bz2 && \
  tar jxf./php-5.6.33.tar.bz2 && \
  cd php-5.6.33 &&./configure --prefix=/opt/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm
2
28.01.2020, 02:32

Теги

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