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

2

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 tenho que nomear o comando. Então, se eu tiver que me deparar com conflitos, quero descobrir o mais rápido possível.

Então, considerando que eu tenho alguns repos (Fedora, RPM fusion ...), existe uma consulta para me ajudar a verificar se um determinado arquivo / comando não seria instalado por nenhum outro pacote atualmente disponível?

    
por Alois Mahdal 25.06.2014 / 15:57

1 resposta

1

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

Eu tive um distro packager que me forçou a mudar o nome (curto e rápido) de um comando em um aplicativo que eu escrevi quando ele entrou em repositório oficial, porque ele colidiu com alguns antigos, mas ainda disponíveis. Você pode muito bem fazer isso agora mesmo.

Comece com um nome razoavelmente exclusivo e pesquise na rede usando um mecanismo de pesquisa (ou dois). Pesquise também pelo menos sourceforge e github diretamente. Mesmo que algo pareça ter como alvo um SO completamente diferente (windows, IOS, etc), evite a colisão.

Se você não pode pesquisar na rede usando apenas o nome do comando (ou seja, não pesquisar "linux mycommandname") porque ele retorna muito não relacionado, então a palavra não é única o suficiente (isso inclui palavras que existem em uma língua estrangeira, marcas de pop da Austrália, etc). Isso provavelmente significa pelo menos 5 caracteres; menos do que isso neste momento é apenas implorando 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 apelido curto ( foo ) se quiserem do que criar um apelido curto e sem sentido (acrônimos, palavras com vogais removidas, etc). Isso não está entrando no POSIX tão cedo, é um aplicativo obscuro e opcional e deve ser rotulado para maior clareza e não conveniência.

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

yum provides "*/superFooBar"

Observe as aspas com uma estrela glob dentro; Isso impede que a expansão do shell seja passada literalmente para yum , que a trata como um caractere curinga da mesma maneira. Isso pesquisará o caminho completo de todos os arquivos instalados por todos os pacotes em todos os repos, portanto, as correspondências podem incluir /usr/bin/superFooBar , /etc/default/superFooBar etc.

Mais uma vez, eu recomendo contra isso, se você tiver qualquer intenção de distribuir isso publicamente ou de forma privada dentro de uma organização. Se é apenas para você e para as máquinas, você tem alguma responsabilidade pessoal, tudo bem - caso contrário, não é completo o suficiente.

    
por 25.06.2014 / 16:15

Tags