Essa é a maneira unix de fazer isso - canalizar a saída de um programa para outro, a fim de usar pequenos blocos de construção para obter o que você precisa.
Eu quero saber o caminho de apxs fornecido por httpd-devel , em uma máquina que pode ter outras cópias de apxs , que seriam resolvidas por which primeiro. Eu posso estar razoavelmente confiante de que este comando funcionará:
rpm -ql httpd-devel | egrep 's?bin/apxs2?$'
No entanto, existe uma maneira de testar sem canalizar grep e regex?
Suas perguntas são um pouco confusas. Se você está perguntando sobre como determinar o caminho do arquivo que está contido em um RPM específico, então não, não há como fazer isso usando apenas rpm ou yum .
Esta é uma maneira de obter o caminho de apxs de um RPM.
$ dirname $(rpm -ql httpd-devel | grep "apxs$")
/usr/bin
Se a sua pergunta for sobre como descobrir se um arquivo está presente em um determinado RPM, existem três métodos que eu estou acostumado a determinar quando um arquivo no disco pertence a um RPM.
$ rpm -ql httpd-devel | grep "apxs$"
/usr/bin/apxs
$ rpm -qf /usr/sbin/apxs
httpd-devel-2.2.22-jason.1
Você pode consultar o banco de dados do RPM dessa forma usando yum whatprovides .. .
$ yum whatprovides '*apxs'
Loaded plugins: langpacks, refresh-packagekit
httpd-devel-2.4.4-6.fc19.i686 : Development interfaces for the Apache HTTP server
Repo : fedora
Matched from:
Filename : /usr/bin/apxs
httpd-devel-2.4.4-6.fc19.x86_64 : Development interfaces for the Apache HTTP server
Repo : fedora
Matched from:
Filename : /usr/bin/apxs
httpd-devel-2.4.6-2.fc19.i686 : Development interfaces for the Apache HTTP server
Repo : updates
Matched from:
Filename : /usr/bin/apxs
httpd-devel-2.4.6-2.fc19.x86_64 : Development interfaces for the Apache HTTP server
Repo : updates
Matched from:
Filename : /usr/bin/apxs
httpd-devel-2.4.6-2.fc19.x86_64 : Development interfaces for the Apache HTTP server
Repo : @updates
Matched from:
Filename : /usr/bin/apxs
Tags rpm