'/ srv / stevedore /' vs '/ var / stevedore /' para arquivos de dados para nova aplicação?

2

Estou criando um novo aplicativo. Eu atualmente tenho todos os arquivos de código do servidor, configuração, log e dados em diretórios que não seguem nenhum tipo de padrão. Olhando para o Artigo da Wikipédia sobre o Padrão de Hierarquia do Sistema de Arquivos Eu criei este novo arranjo:

/opt/stevedore/                     Server Code
/etc/stevedore/steve_site_config.pl Server Configuration
/var/log/stevedore/                 Server Logs
/srv/stevedore/                     Server Site Data (Document tree)

Tendo usado o Apache onde os arquivos de dados estão localizados em /var/www/ , o padrão parece indicar que os arquivos de dados deve estar localizado aqui:

/var/stevedore/                     Server Site Data (Document tree)

Além disso, os usuários verificam cópias locais de documentos para edição que estão localizados nesses diretórios:

~/MyStevedore/                      User - Editable files
~/MyStevedore/CheckOut/             User - Files to CheckOut
~/MyStevedore/CheckInToPublish/     User - Files to CheckIn To Publish
  1. Qual é melhor para um padrão e por quê: /srv/stevedore/ vs /var/stevedore/ ?
  2. Que tal ~/MyStevedore/ para diretórios padrão específicos do usuário?

Para mais detalhes sobre o aplicativo, consulte o Site do Stevedore e o código no momento desta postagem .

    
por C.W.Holeman II 07.02.2011 / 18:21

3 respostas

3

  1. Se você planeja incluir nas distribuições, use os intervalos padrão (bin, sbin, etc) e evite /opt *.

  2. Eu ficaria muito aborrecido por ter aplicado pastas no meu diretório pessoal. Acabei de limpar as coisas! ;-) Claro que você não quer usar /srv/stevedore/users/(user) ? É um servidor de documentos, certo?

Outras razões:

Os dados da web também podem ser colocados em /usr/share/stevedore/web . Os administradores do sistema provavelmente têm uma configuração personalizada do Apache, e a última coisa que você gostaria de ver são arquivos em /var/www/htdocs/appname . Em vez disso, apenas certifique-se de que eles estejam disponíveis (e share se encaixa muito bem nesse propósito) para que os administradores possam fazer um Alias no Apache e vincular o aplicativo Web nos sites apropriados.

Você pode escolher /var/stevedore ou /srv/storedore , tudo bem, desde que seja configurável. Você pode esperar que os usuários do Debian gostem de /var/* e os usuários do SUSE prefiram /srv/* . Se você for para essa rota, verifique se ela é configurável para os empacotadores.

O mesmo também se aplica à raiz da instalação. Isso pode ser /usr , /usr/local ou outra coisa que o administrador ou empacotador deseja, ou precisa ser configurável.

Usar /var/log/stevedore para logs faz todo o sentido.

Os empacotadores querem que seu pacote se encaixe no resto. Os empacotadores também garantem que o seu aplicativo esteja vinculado às suas versões específicas das bibliotecas, portanto você não precisa enviá-los também.

[*] Quando você coloca seu software em /opt , eu esperaria que todo o sistema estivesse lá. Por exemplo,

/opt/stevedore/bin/
/opt/stevedore/doc/
/opt/stevedore/etc/
/opt/stevedore/lib/
/opt/stevedore/share/
/opt/stevedore/sbin/

Isso geralmente é usado para instaladores de terceiros ou jogos comerciais. Esses pacotes geralmente vêm em formato binário e enviam todas as bibliotecas necessárias para eles. Até mesmo os arquivos de configuração são enviados nessa pasta.

    
por 07.02.2011 / 21:30
2

Por fim, se você planeja fazer com que as pessoas empacotem isso para suas distribuições, o que você deseja fazer é estabelecer um local de tempo de compilação ou configurado para cada uma dessas coisas. Por exemplo, usando autoconf / automake / configure para definir macros para --prefix, --bindir, --datadir e assim por diante.

Em geral, eu acho que a maioria das distribuições não usa / opt / para executáveis empacotados (estes iriam para / usr / bin ou / usr / sbin conforme apropriado). Parece que os usuários deveriam usar os arquivos em ~ / MyStevedore / regularmente, então não criá-los como ~ / .MyStore / é perdoável, mas algumas distribuições podem usar um gerenciador de arquivos que espera tudo em ~ / MeusDocumentos / MyStevedore / ou ~ / Desktop / MyStevedore /

    
por 07.02.2011 / 18:36
0

Realmente não há muita diferença entre / srv / stevedore / e / var / stevedore /. Que tipo de dados são? Se seus arquivos de dados forem enviados pelo servidor da web, / var / www pode ser melhor. Neste ponto, sua preferência principalmente pessoal entre esses três. Se os dados são o estado do seu programa, então / var / lib / stevore é ainda melhor; assim como os bancos de dados mantêm seus arquivos de dados lá.

Quanto aos diretórios de usuários, os usuários realmente obtêm uma conta unix local? Se sim, ~ está bem. Se não, então não é uma boa ideia. Seria muito fácil para alguém pensar que esses usuários não existem mais, portanto seus diretórios pessoais podem ser removidos. Um lugar melhor seria / var / lib / stevedore / username.

    
por 07.02.2011 / 18:35

Tags