Consultar todos os caminhos em todos os pacotes/repos sem instalar?

Consultar todos os caminhos em todos os pacotes/repos sem instalar?

Digamos que eu queira criar um novo pacote que instale um comando, ou seja, adicione um novo arquivo a /bin ou /usr/bin.

Mas ainda não nomeei o comando. Então, se eu tiver conflitos, quero descobrir o mais rápido possível.

Considerando que tenho alguns repositórios (Fedora, RPM fusion...), existe uma consulta para me ajudar a verificar se um arquivo/comando específico não seria instalado por nenhum outro pacote disponível atualmente?

Responder1

Não siga o caminho de apenas verificar o fedora, porque então você terá um problema quando quiser empacotá-lo em outro lugar, ou o fedora traz um aplicativo existente cujo apelido colide com o seu.

Um empacotador de distribuição me forçou a alterar o nome (curto e rápido) de um comando em um aplicativo que escrevi quando ele entrou em repositórios oficiais, porque colidiu com algum lixo antigo, mas ainda disponível. Você também pode entender agora.

Comece com um nome razoavelmente exclusivo epesquise na redeusando um mecanismo de pesquisa (ou dois). Pesquise tambémpelo menos sourceforgeeGitHubdiretamente. Mesmo que algo pareça ter como alvo um sistema operacional completamente diferente (Windows, IOS, etc), evite a colisão.

Se você não puder pesquisar na rede usando apenas o nome do comando (ou seja, não pesquise "linux mycommandname") porque ele retorna muitas coisas não relacionadas, então a palavra não é única o suficiente (isso inclui palavras que existem em um idioma estrangeiro , marcas de pop da Austrália, etc). Isto provavelmente significa pelo menos 5 caracteres; menos do que isso neste momento é apenas implorar por coincidência, e mais provavelmente é melhor. É melhor usar um nome longo e descritivo para um comando ( superFooBar) e permitir que as pessoas criem seu próprio alias curto ( foo) se quiserem do que criar um nome curto e quase sem sentido (siglas, palavras com vogais removidas, etc.). Isso não entrará no POSIX tão cedo, é um aplicativo obscuro e opcional e deve ser rotulado para maior clareza e não para conveniência.


Se tudo o que você deseja fazer é pesquisar os repositórios disponíveis em um sistema específico, você pode usar yum provides:

yum provides "*/superFooBar"

Observe as citações com uma estrela glob dentro; isso evita a expansão do shell para que seja passado literalmente para yum, que o trata como um curinga da mesma maneira. Isto irá pesquisar o caminho completo de todos os arquivos instalados por todos os pacotes em todos os repositórios, portanto as correspondências podem incluir /usr/bin/superFooBar, /etc/default/superFooBaretc.

Novamente, não recomendo fazer isso se você tiver alguma intenção de distribuí-lo publicamente ou de forma privada dentro de uma organização. Se for apenas para você e para as máquinas pelas quais você tem alguma responsabilidade pessoal, tudo bem - caso contrário, não será completo o suficiente.

informação relacionada