Domanda breve
Qual è il modo migliore per creare, mantenere e distribuire le catene di strumenti di sviluppo software?
Sfondo
Sto cercando di sviluppare un flusso di lavoro / processo per creare un ambiente isolato nell'installazione e nella distribuzione di catene di strumenti software per obiettivi incorporati. Generalmente ogni catena di strumenti contiene un IDE, un compilatore e un piccolo insieme di strumenti comuni. Ho esaminato due soluzioni, ma entrambe hanno i loro limiti e spero di trovare una soluzione che abbia il meglio di entrambe le implementazioni.
Il razionale dietro una catena di strumenti stand alone è tale che tutti gli sviluppatori sarebbero in grado di costruire lo stesso codice esatto (corrispondenti a CRC ecc.). Oltre a essere in grado di ricostruire lo stesso codice dopo X numero di anni per supportare il codice legacy. Una terza opzione sarebbe quella di utilizzare un server di build centrale, che intendiamo fare per le build notturne, ma dobbiamo ancora essere in grado di creare "al volo" quando si lavora su un banco di prova o in remoto. Quindi solo l'utilizzo di un server di build non è sufficiente.
Obiettivi ideali per la catena di strumenti distribuiti
- Funziona su Windows XP, Vista e 7 (esclusi i driver)
- Contiene tutte le informazioni necessarie per l'esecuzione della catena di strumenti (esclusi i driver)
------------------ Opzioni possibili ------------------
Opzione 1: Macchina virtuale completamente indipendente
Pro
- Packaging Open Source tramite Virtual Box
- 100% isolamento
- Garantisce che gli strumenti possano interagire tra loro
Contro
- Licenza di più copie di windows
- Nella migliore delle ipotesi, solo uno sviluppatore potrebbe legalmente utilizzare una macchina virtuale Windows alla volta.
- Esecuzione della stessa VM su fisicamente diversi computer portatili (Macbook Pro, Dell 830, Dell E6500, ecc.). Tipicamente, quando Windows vede una nuova CPU o scheda madre, forzerà una riattivazione.
- Molto file di grandi dimensioni per mantenere
Opzione 2: Applicazione virtualizzata
Pro
- Attraverso pacchetti come Cameyo , le applicazioni possono essere eseguite su quasi tutte le versioni di Windows. (Nota che Cameyo è anche gratuito)
- Poco o nessun problema di licenza per la maggior parte degli strumenti / IDE. I compilatori acquistati potrebbero avere restrizioni aggiuntive, tutti i nostri compilatori attuali supportano questo tipo di utilizzo.
- File più piccoli da conservare tramite SCM, come SVN o GIT.
Contro
- Difficile, se possibile, ottenere un singolo file che contenga l'intera catena di strumenti
- Difficile, se possibile, ottenere gli strumenti per vedere / lavorare l'uno con l'altro. Ho visto questo molto problema con Cameyo.
Chiusura di pensieri
Potrebbe non esserci una soluzione che soddisfi tutti i miei obiettivi di progettazione, ma mi piacerebbe scoprire se qualcun altro ha avuto successo in questo tipo di distribuzione.