Como exemplo, estou procurando um mod_files.sh
arquivo que provavelmente viria com o php-devel
pacote. Eu imaginei que yum
instalaria omod_files.sh
arquivo com o php-devel x86_64 5.1.6-23.2.el5_3
pacote, mas o arquivo parece não estar instalado no meu sistema de arquivos.
Como descubro qual pacote instala um arquivo específico? Estou procurando onde ainda não baixei o pacote necessariamente localmente, o que pode incluir o arquivo que estou procurando.
Estou usando o CentOS 5.
rpm
lo, precisará usá-loyum
.Respostas:
Esta é uma pergunta antiga, mas as respostas atuais estão incorretas :)
Use yum whatprovides , com o caminho absoluto para o arquivo que você deseja (que pode ser curinga). Por exemplo:
Devoluções
Você pode preferir a saída e a velocidade da
repoquery
ferramenta, disponíveis noyum-utils
pacote.repoquery
pode fazer outras consultas, como listar o conteúdo do pacote, dependências, dependências reversas etc.fonte
Para conhecer o pacote que possui (ou fornece) um arquivo já instalado:
fonte
rpm -qf <filename>
é mais adequado para determinar qual pacote fornece um aplicativo instalado (já que pode ser diferente do que está no cache atual do repositório yum) eyum whatprovides <filename>
é mais adequado para determinar qual pacote fornece um aplicativo ainda a ser instalado inscrição. Cada um tem seu próprio propósito.yum whatprovides ...
somente requer root se o aplicativo for um pacote raiz (ou seja, reside em/sbin
). No entanto,rpm -qf ...
também requer root para ler rpms/sbin
. Portanto, proponho que os requisitos raiz sejam funcionalmente equivalentes para ambos os métodos.A resposta mais popular está incompleta:
Como essa pesquisa geralmente é executada apenas para arquivos de pacotes instalados, o yum whatprovides é feito de maneira incrivelmente rápida ao desativar todos os repositórios externos (o repositório implícito "instalado" não pode ser desativado).
fonte
--disablerepo=*
Você acessa http://www.rpmfind.net e procura o arquivo.
Você obterá resultados para várias distribuições e versões diferentes, mas é bem provável que o Fedora e / ou CentOS também apareçam e você saberá o nome do pacote para instalar com o yum
fonte
É fácil encontrar o pacote quando você está conectado à Internet (repositório), no entanto, quando você só tem acesso aos pacotes RPM no Redhat ou no Centos DVD (isso acontece com frequência quando preciso recuperar um servidor e preciso de um aplicativo). usando os comandos abaixo, que são completamente independentes da Internet e dos repositórios. (supostamente você tem muitos pacotes desinstalados em um DVD). Digamos que você montou a pasta Package em ~ / cent_os_dvd e você está procurando por um pacote que forneça "semelhança" para poder executar:
fonte
Usando apenas o utilitário rpm, isso deve funcionar em qualquer sistema operacional que tenha rpm:
Ref. https://www.thegeekdiary.com/how-to-find-which-rpm-package-provides-a-specific-file-or-library-in-rhel-centos/
fonte
Você pode fazer isso da mesma maneira aqui, mas com o seu pacote. No meu caso, foi
lsb_release
Corre:
yum whatprovides lsb_release
Resposta:
Execute para instalar:
yum install redhat-lsb-core
O nome do pacote DEVE estar sem número e tipo de sistema para que o yum packager possa escolher o que é melhor para ele.
fonte