Posicionamento do aplicativo e arquivos do usuário no sistema linux

6

Em quais diretórios devo colocar o seguinte?
Eu tenho um aplicativo com alguns assemblies .net, um banco de dados padrão (contendo configurações padrão do aplicativo), um diretório com centenas de imagens, um diretório para sons (por exemplo, mp3's).

por exemplo.

somedir/myapp.exe  
somedir/myassembly1.dll  
somedir/myassembly2.dll  

somedir/images/1/image1.png  
somedir/images/1/image2.png  
somedir/images/2/image1.png  

somedir/sounds/1/sound1.mp3  
somedir/sounds/1/sound2.mp3  
somedir/sounds/2/sound1.mp3  

Um requisito é que eu queira permitir que meu usuário substitua os sons e imagens como entenderem, de modo que basicamente esse caminho (por exemplo, /var ou /usr ) deve ter acesso de gravação a um usuário normal.

    
por Eminem 09.05.2011 / 17:27

2 respostas

5

Se o seu aplicativo precisar ser modificado por um usuário, você não deve instalá-lo no sistema, mas fazer com que ele faça algum tipo de instalação local na pasta inicial do usuário. $HOME/yourapp/{bin,images,sounds} etc.

A maioria dos caminhos do sistema, como / var, / usr, não é e não deve ser acessível por usuários.

A alternativa é instalar seu aplicativo normalmente, mas crie uma espécie de sobreposição no $ HOME / .yourapp que inclui todas as coisas que o usuário mudou e que são diferentes dos padrões do sistema.

    
por 09.05.2011 / 17:31
2

Você pode seguir a Especificação de diretório base do XDG e colocar o material substituível pelo usuário em um diretório em $XDG_DATA_HOME e qualquer arquivo de configuração de usuário em um diretório em $XDG_CONFIG_HOME (cujo padrão é $HOME/.local/share/ e $HOME/.config/ , respectivamente).

Não sei se isso pode ser chamado de maneira padrão de fazer as coisas, mas é certamente muito popular, então seus usuários provavelmente estarão familiarizados com isso.

    
por 10.05.2011 / 13:50