Onde colocar scripts apenas para serem chamados por outro script?

3

Eu escrevi um aplicativo básico de linha de comando composto de vários scripts bash. Um deles é destinado a ser executado por qualquer usuário do computador, portanto, eu entendo que o local correto para isso seria /usr/local/bin/ .

Os outros scripts não devem ser executados diretamente pelo usuário, mas chamados apenas pelo primeiro script. A segurança não é um problema aqui, não me importo se o usuário se der ao trabalho de encontrar seu caminho exato e executá-lo a partir daí, mas eu não o quero em um caminho que significa que ele pode ser chamado de qualquer lugar.

Atualmente eu tenho todos eles em /usr/sbin/my_app_name/ , mas eu entendo que não deveria estar colocando coisas lá. Mas onde devo colocar esses scripts? Idealmente, gostaria de mover apenas a pasta my_app_name , que contém os scripts, para o local correto.

    
por AntonChanning 16.05.2013 / 18:17

1 resposta

6

TL; DR : coloque arquivos de suporte em /usr/local/lib/my_app_name e script principal em /usr/local/bin .

É claro que você terá muitas sugestões de lugares diferentes para colocar as coisas, já que não há muita padronização para esse tipo de coisa. Eu prefiro colocar arquivos desse tipo em /usr/local/my_app_name/ ou /opt/local/my_app_name , dependendo de onde você instalar programas adicionais do usuário em seu sistema. O programa principal deve estar em /usr/local/bin ou /opt/local/bin . Se os scripts auxiliares não forem executados por conta própria, eles provavelmente não devem estar no mesmo local do script principal. No entanto, se as subsidiárias forem módulos / bibliotecas completos com direito próprio que poderiam ser chamados por outros programas, um local como /usr/local/lib poderá ser apropriado.

Para referência futura, confira o Padrão de hierarquia do sistema de arquivos . As recomendações para /usr/local e /opt (recebo /opt/local do OSX e MacPorts ) são semelhantes, embora pareça que /opt é mais para pacotes externos que você pode obter de um fornecedor - por exemplo, o Intel Biblioteca de Kernel Matemático se instala por padrão em /opt/intel/mkl .

    
por 16.05.2013 / 21:24