É possível usar --name-only de alguma forma com apt-get install
, não apt-cache search
.
Por padrão apt-cache search
pesquisa informações dos nomes de pacotes disponíveis e sua longa descrição. --names-only
restringe essa pesquisa apenas aos nomes dos pacotes.
Agora, apt-get
não se importa com a descrição. Ele tentará um nome de pacote textualmente e, se não for encontrado, considerará o parâmetro como um regex (embora não seja realmente documentado, na verdade, uma expressão regular estendida). Esse regex será usado apenas para corresponder ao (s) nome (s) do pacote da lista de pacotes conhecidos. Portanto, não há nenhuma opção --names-only
disponível: considere apt-get
está sob efeito permanente dessa opção.
Eu não quero a API do Google para PHP, então eu tento usar o regex, mas como mostrado acima, ele simplesmente não aceita \d
.
apt-get
aceita expressões regulares (estendidas) , não Expressão Regular Compatível com Perl . \d
significa um dígito apenas em um PCRE e não possui um significado especial em BRE ou ERE. Um dígito em uma expressão regular pode ser representado por [0-9]
(ou por diversão [[:digit:]]
como uma sintaxe de expressão regular estendida).
Sua pesquisa seria:
$ apt-cache search --names-only 'php[0-9]+-cli'
php5-cli - command-line interpreter for the php5 scripting language
Para instalar qualquer versão numerada do php cli, seria:
# apt-get install '^php[0-9]+-cli$'
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'php4-cli' for regex '^php[0-9]+-cli$'
Note, selecting 'php5-cli' for regex '^php[0-9]+-cli$'
The following extra packages will be installed:
[...]
Isso instalará php5-cli
e suas dependências.
Observe o uso de ^
e $
para delimitar o início e o fim do nome do pacote selecionado: uma vez que a expressão é usada como regex, pode ser qualquer parte do nome de um pacote, portanto, tenha cuidado. Por exemplo, tentar apt-get install .
tentará instalar qualquer pacote com pelo menos um caractere: todos eles, e obviamente falhará por conflitos.
Para os pequenos detalhes: php4-cli
não existe em Jessie, mas é referenciado por outro pacote ( php-xajax
) é por isso que é selecionada como candidata desde que correspondeu à regex. Claro que não é instalável, portanto, não será listado no final.