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