Onde instalar o software local que é executado antes do / usr estar disponível?

5

Estou escrevendo um programa local para ser chamado por uma regra udev IMPORT{program} . Normalmente, eu instalaria o software local em /usr/local , mas essas regras do udev são executadas quando os dispositivos de bloco são exibidos. Então eles estão correndo muito antes de o /usr estar necessariamente montado.

Acredito que também precisarei configurar isso para ser copiado para o initramfs (o que é feito facilmente com /etc/initramfs-tools/hooks/ ). Normalmente, parece que as coisas usam o mesmo caminho no initramfs como no sistema de arquivos raiz. (Edit: parece que eu realmente não tenho que adicioná-lo ao initramfs, os eventos são re-disparados após rootfs é montado)

/etc é controlado por versão, portanto, é melhor evitar os binários.

Estou a pensar que a minha melhor aposta é instalar o mesmo em /lib/udev , sob um nome de ficheiro começando por local- para evitar colisões com quaisquer ficheiros futuros da distro. O também torna o arquivo de regras do udev mais bonito (já que não será necessário especificar o caminho completo).

Esta máquina está executando o Debian Squeeze. Existe algum local padrão para este arquivo? Eu não acredito FHS ou Política Debian especifica um.

    
por derobert 10.11.2011 / 21:27

2 respostas

4

Eu colocaria estes em /lib/udev se fornecidos por um pacote deb e em /etc caso contrário.

Se você implantar o programa em várias máquinas, recomendo fazer um pacote deb; isso facilitará a implantação e o rastreamento de versões. O wiki do Debian tem informações, ou você pode ler o (ignorando os bits não técnicos). dh torna isso uma brisa (existe até um dh_installudev ).

Se isso é apenas para uma máquina, eu colocaria o binário no controle de versão também, ou então, verifique a origem e um makefile e ignore o binário. Você também pode querer colocar um link simbólico em /lib/udev . Não recomendo colocar um arquivo não empacotado em /lib/udev , porque você esquecerá que está lá.

    
por 11.11.2011 / 00:19
1

/lib/udev parece bastante razoável. Não irá interferir em nada que não esteja relacionado a udev , então o gerenciamento de pacotes não será muito prejudicado. Fora isso, você tem um novo subdiretório em /opt/ (precisará do caminho completo).

    
por 10.11.2011 / 23:11