Установите модули PECL без подсказок

90

Я только что установил PHP на Ubuntu Natty из исходников.

Я пытаюсь использовать PECL для установки дополнительных модулей, таких как APC и Memcache. Я использую что-то вроде этого:

pecl install apc

Однако я получаю запросы с просьбой подтвердить некоторые вещи.

Как я могу использовать команду pecl, чтобы просто принять значения по умолчанию? Я видел , что - то вроде этого на доске объявлений: printf "yes\n" | pecl install pecl_http. Однако в случае APC это ответит «да», если по умолчанию установлено «нет» (я думаю).

Заранее спасибо.

Обинванн Хилл
источник
1
@ Гордон: Я пробовал это, но, похоже, нет ручки для того, что мне нужно.
Обинванн Хилл
1
В случае, когда допустимы значения по умолчанию, в неинтерактивном режиме подсказка PECL не требуется. Например, если вы добавляете Dockefile RUN pecl install apcво время сборки, вы автоматически выбираете значения по умолчанию.
Дерексон

Ответы:

83

Следующий код вроде работает нормально:

printf "\n" | pecl install apc

Вы также можете заменить apc любым другим пакетом PECL.

Ура.

Обинванн Хилл
источник
8
Я также вижу успех yes | pecl install memcache- хотя я полагаю, что ваше решение лучше работает для пакетов, где по умолчанию установлено что-то иное, чем «да»,
Фрэнк Фармер
1
Спасибо, чувак, это даже сработало с CircleCI
Джуджхар Сингх
79

Команда «да» может делать больше, чем просто набирать «да»; он может печатать все, что угодно, снова и снова. Включая пустую строку, что является хорошим способом принять значения по умолчанию.

Мне это просто нужно было самому, поэтому вот что сработало для меня:

yes '' | pecl install -f apc
Том Бутелл
источник
Спасибо за вклад, Том. Ваш код должен был быть "yes\n" | pecl install -f apc?!
Обинванн Хилл,
4
@ObinwanneHill: Том имел в виду yesкоманду. Преимущество этого printfзаключается в том, что он генерирует выходные данные повторно, что делает его более переносимым, если программа установки pecl запросит дополнительные вопросы, чем printfожидалось в сценарии .
jmikola 09
@jmikola Понятно, я не был знаком с этой командой. Спасибо
Обинванн Хилл
8

Ответ Обинванна Хилла помог мне, поэтому я не предлагаю здесь ничего нового, но следующее кажется абсолютным кратчайшим, также без каких-либо необычных инструментов.

echo '' | pecl install apc
Ян Бытчек
источник
6
Более короткая альтернатива для достижения того же результата:pecl install apc <<<''
Guss