Se você agrupar seus binários em seus próprios RPMs, será trivial obter uma lista do que eles são e de onde foram instalados.
Exemplo
$ rpm -ql httpd| head -10
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d
/etc/httpd/conf.modules.d/00-base.conf
Eu sugeriria colocar seus executáveis em um /usr/bin
ou outro /usr/local/bin
e rodar seu próprio RPM. É bastante trivial fazer isso e, gerenciando a implantação do software usando um RPM, você poderá rotular um pacote com um número de versão, facilitando ainda mais o gerenciamento da configuração do software à medida que o implanta.
Determinando quais RPMs são "meus"?
Você pode criar seus RPMs usando algumas informações conhecidas que poderiam ser acordadas antes da construção. Costumo criar pacotes em sistemas que pertencem ao meu domínio, por isso é trivial encontrar RPMs simplesmente pesquisando todos os RPMs criados no host X.mydom.com.
Exemplo
$ rpm -qi httpd
Name : httpd
Version : 2.4.7
Release : 1.fc19
Architecture: x86_64
Install Date: Mon 17 Feb 2014 01:53:15 AM EST
Group : System Environment/Daemons
Size : 3865725
License : ASL 2.0
Signature : RSA/SHA256, Mon 27 Jan 2014 11:00:08 AM EST, Key ID 07477e65fb4b18e6
Source RPM : httpd-2.4.7-1.fc19.src.rpm
Build Date : Mon 27 Jan 2014 08:39:13 AM EST
Build Host : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
Essa seria a Build Host
linha dentro dos RPMs.
O uso de / usr / bin / company?
Eu provavelmente desencorajaria o uso de um local como esse. Principalmente porque exige que todos os seus sistemas $PATH
aumentem para incluí-lo e não é padrão. Personalizar as coisas sempre foi um "direito de passagem" para todos os administradores do Unix, mas eu sempre a desencorajo, a menos que seja absolutamente necessário.
O maior problema com as personalizações como essa é que elas se tornam um fardo na manutenção do ambiente e na atualização de novas pessoas sobre como usar o ambiente.
Posso apenas obter uma lista de arquivos do RPM?
Sim, você pode conseguir isso, mas serão necessárias duas chamadas para o RPM. O primeiro criará uma lista de pacotes que foram criados no host X.mydom.com. Depois de obter essa lista, você precisará chamar novamente o RPM consultando os arquivos pertencentes a cada um desses pacotes. Você pode conseguir isso usando este liner:
$ rpm -ql $(rpm -qa --queryformat "%-30{NAME}%{BUILDHOST}\n" | \
grep X.mydom.com | awk '{print $1}') | head -10
/etc/pam.d/run_init
/etc/sestatus.conf
/usr/bin/secon
/usr/bin/semodule_deps
/usr/bin/semodule_expand
/usr/bin/semodule_link
/usr/bin/semodule_package
/usr/bin/semodule_unpackage
/usr/sbin/fixfiles
/usr/sbin/genhomedircon
Uma sugestão óbvia é nomear seus binários ou pacotes de uma maneira especial. Então, por exemplo, você pode prefixá-los com
cm-
, por suas iniciais, conforme indicado neste post. Se você estiver instalando rpms, eles precisam entrar/usr/bin
(se forem executáveis no nível do usuário), de acordo com o FHS. Eles não devem entrar/usr/local/bin
por exemplo. Isso é apenas para instalações locais.Para o registro, não acho a idéia de colocar binários em um diretório especial e vinculá-los de maneira alguma atraente, embora suponha que essas coisas às vezes sejam feitas. Lembre-se também de que, se você precisar descobrir quais binários pertencem a qual pacote, basta consultar o sistema de empacotamento.
fonte
Os binários que não fazem parte do sistema ou distribuição geralmente estão em
o diretório geralmente está no padrão
$PATH
para que seus binários sejam encontrados.fonte
/usr/local/bin
é para executáveis instalados manualmente. Executáveis gerenciados pelo gerenciador de pacotes entram/usr/bin
.