Zainstaluj moduły PECL bez monitów

90

Właśnie zainstalowałem PHP na Ubuntu Natty ze źródła.

Próbuję użyć PECL do zainstalowania dodatkowych modułów, takich jak APC i Memcache. Używam czegoś takiego:

pecl install apc

Jednak otrzymuję monity z prośbą o potwierdzenie.

Jak mogę użyć polecenia pecl, aby po prostu zaakceptować wartości domyślne? Widziałem coś takiego na pokładzie wiadomość: printf "yes\n" | pecl install pecl_http. Jednak w przypadku APC oznaczałoby to odpowiedź twierdzącą w przypadku rzeczy, w których domyślnie nie jest (tak myślę).

Z góry dziękuję.

Obinwanne Hill
źródło
1
@Gordon: Próbowałem, ale wydaje mi się, że nie ma uchwytu na to, czego potrzebuję.
Obinwanne Hill
1
W przypadku, gdy wartości domyślne są dopuszczalne, w trybie nieinteraktywnym monit PECL nie jest wymagany. Na przykład, jeśli dodasz do Dockefile RUN pecl install apc, w czasie kompilacji otrzymasz automatycznie wybrane wartości domyślne.
Dereckson

Odpowiedzi:

83

Poniższy kod wydaje się działać poprawnie:

printf "\n" | pecl install apc

Możesz również zastąpić apc dowolnym innym pakietem PECL.

Twoje zdrowie.

Obinwanne Hill
źródło
8
Widzę również sukces z yes | pecl install memcache- chociaż przypuszczam, że twoje rozwiązanie działa lepiej dla pakietów, w których domyślnym ustawieniem jest coś innego niż „tak”
Frank Farmer
1
Dzięki stary, zadziałało to nawet z CircleCI
Jujhar Singh
79

Polecenie „tak” może zrobić więcej niż tylko wpisanie „tak”; może pisać, co chcesz, w kółko. Dołączanie pustego wiersza, co jest dobrym sposobem na zaakceptowanie wartości domyślnych.

Po prostu tego potrzebowałem, więc oto, co działało dobrze:

yes '' | pecl install -f apc
Tom Boutell
źródło
Dzięki za wkład, Tom. Czy twój kod miał być "yes\n" | pecl install -f apc?!
Obinwanne Hill
4
@ObinwanneHill: Tom odnosił się do yespolecenia. Zaletą tego rozwiązania printfjest to, że generuje dane wyjściowe wielokrotnie, co czyni go bardziej przenośnym, gdyby instalator pecl poprosił o dodatkowe pytania, niż printfoczekiwano w skrypcie .
jmikola,
@jmikola Och, rozumiem, nie znałem tego polecenia. Dzięki
Obinwanne Hill
8

Odpowiedź Obinwanne's Hill przydała mi się, więc nie przedstawiam tutaj nic nowego, ale poniższe wydaje się być absolutnie najkrótsze, również bez żadnych wymyślnych narzędzi.

echo '' | pecl install apc
Ian Bytchek
źródło
6
Krótsza alternatywa dla osiągnięcia tego samego wyniku to:pecl install apc <<<''
Guss