Instale os módulos PECL sem os prompts


91

Acabei de instalar o PHP no Ubuntu Natty da fonte.

Estou tentando usar o PECL para instalar módulos adicionais como APC e Memcache. Estou usando algo assim:

pecl install apc

No entanto, recebo solicitações pedindo para confirmar as coisas.

Como posso usar o comando pecl apenas para aceitar os padrões? Eu vi algo assim em uma placa de mensagem: printf "yes\n" | pecl install pecl_http. Porém, no caso do APC, isso responderia sim para coisas em que o padrão é não (eu acho).

Desde já, obrigado.


1
@Gordon: Eu tentei isso, mas não parece haver um controle para o que preciso.
Obinwanne Hill de

1
Para o caso em que os valores padrão são aceitáveis, no modo não interativo, o prompt PECL não é necessário. Por exemplo, se você adicionar a um Dockefile RUN pecl install apc, no momento da construção, você obterá os valores padrão selecionados automaticamente.
Dereckson

Respostas:


83

O código a seguir parece funcionar bem:

printf "\n" | pecl install apc

Você também pode substituir o apc por qualquer outro pacote PECL.

Felicidades.


8
Também estou tendo sucesso com yes | pecl install memcache- embora eu suponha que sua solução funcione melhor para pacotes em que o padrão é algo diferente de "sim"
Frank Farmer,

1
Obrigado cara, isso até funcionou com CircleCI
Jujhar Singh

79

O comando "sim" pode fazer mais do que apenas digitar "sim"; ele pode digitar o que você quiser, indefinidamente. Incluindo uma linha vazia, que é uma boa maneira de aceitar padrões.

Eu só precisava disso, então aqui está o que funcionou bem para mim:

yes '' | pecl install -f apc

Obrigado pela contribuição, Tom. O seu código era para ser "yes\n" | pecl install -f apc?!
Obinwanne Hill

4
@ObinwanneHill: Tom estava se referindo ao yescomando. O benefício disso printfé que ele gera saída repetidamente, o que o torna mais portátil caso o instalador pecl solicite perguntas adicionais do que o seu script printfesperava.
jmikola

@jmikola Oh, entendo, não estava familiarizado com esse comando. Obrigado
Obinwanne Hill

8

A resposta da Colina de Obinwanne acertou em cheio para mim, então não estou fornecendo nada de novo aqui, mas o seguinte parece ser o mais curto absoluto, também sem nenhuma ferramenta sofisticada.

echo '' | pecl install apc

6
Uma alternativa mais curta para obter o mesmo resultado é:pecl install apc <<<''
Guss
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.