Layout del file system per più target di compilazione

2

Sto cercando alcune idee su come creare e installare software con alcuni parametri. Questi includono il SO di destinazione, i dettagli della CPU della piattaforma di destinazione, la variante di debug, ecc. Alcune parti dell'installazione sono condivise, come documentazione e molti file indipendenti dalla piattaforma, altre no, come le librerie a 64 e 32 bit quando queste sono separate e non insieme in una libreria multi-arch.

Su piattaforme di rete di grandi dimensioni, spesso ci sono più computer che condividono spazio su server di grandi dimensioni, quindi è effettivamente possibile avere anche binari di Windows e Unix sullo stesso disco.

Il mio prodotto ha già corretto una filosofia di installazione di $ INSTALL_ROOT / genericname / version / in modo che possano coesistere più versioni.

La domanda è: come gestire il layout di tutte le altre cose?

    
posta Yttrill 26.12.2011 - 04:13
fonte

3 risposte

1

Dato che quando un pacchetto è installato in un sistema - c'è solo 1 sistema a portata di mano. cioè le variabili OS, CPU / Arch, 32/64 bit sono fisse per il target di sistema quello .

In questo contesto, in genere vorrei NON creare una cartella separata come

$INSTALL_ROOT/package//<64-32bit>/versions/

Piuttosto, lo definirei come parte della denominazione. Guardate ad esempio la convenzione di denominazione dei file RPM:

name-version-release.architecture.rpm

Include il numero di versione della distribuzione come mi piace fc8 o fc11 ecc.

Debian segue una convenzione di denominazione simile ma probabilmente i pacchetti hanno un layout di directory interno. (Scusate donno dettagli qui!)

    
risposta data 26.12.2011 - 11:04
fonte
1

In una volta, ho lavorato per un produttore di SAN nel gruppo di build. Dovevamo supportare circa 40 diversi sistemi operativi.

Le distribuzioni sono state organizzate dalle principali famiglie di sistemi operativi al livello principale del supporto di distribuzione (CD e DVD), come HPUX, Z / OS e Windows, con le versioni che si diramano da quelle. Ad esempio, il ramo di Windows avrebbe Server e Workstation fuori da quella cartella, e ciascuno avrebbe un set di x86 , x64 , ia64 e Alpha cartelle, ciascuno con le proprie installazioni.

    
risposta data 24.04.2012 - 14:49
fonte
0

Utilizza uno strumento di compilazione che consente diverse directory di origine e di destinazione. Per ogni piattaforma è disponibile una directory di destinazione separata in cui vengono generati i file specifici della piattaforma.

Le build possono essere eseguite più velocemente se si utilizza una directory di compilazione comune per file non specifici della piattaforma.

    
risposta data 26.12.2011 - 04:55
fonte

Leggi altre domande sui tag