Qual è il modo migliore per mantenere le catene di strumenti software?

3

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.

    
posta Adam Lewis 05.09.2011 - 04:01
fonte

2 risposte

2

Lo stavo facendo esattamente alcuni anni fa e ho trovato che le risposte erano sia una soluzione VM completa, sia un meticoloso sistema di controllo della versione per tutti voi. Dato che ti sembra bloccato in Windows, potresti ottenere una licenza per sviluppatore MS che consente più copie per ogni Windows, e l'attivazione e le questioni legali scompaiono per una quota annuale.

Abbiamo finito con un server di build e una regola l'unico modo per ottenere qualcosa sul server di build era attraverso il controllo di revisione. Alcuni strilli di alcuni binari e problemi di dimensioni a parte, ha funzionato. Il rilassamento era un file contenente un elenco di DVD chiaramente etichettati, un archivio di immagini ISO di quelli, insieme a istruzioni per l'impostazione completa della macchina. Questi sono stati testati in modo casuale per verificarne l'accuratezza e, anche se raramente hanno funzionato per la prima volta, sono sempre stati in grado di richiamare un server di build da una VM pulita.

Tieni presente che lo spazio su disco è molto economico, usalo. Le licenze possono essere un problema, ma lavorare con il fornitore di strumenti (incluso MS) per trovare una soluzione.

Macchine da costruzione rotte, l'impossibilità di costruire vecchi software ecc. è costosa, ma lo è anche il trasporto di bagagli in eccesso. Se il software è davvero passato è usabile per data, distruggilo. Non tenere oggetti in giro perché potresti averne bisogno un giorno. Mantengalo solo perché ne avrai bisogno o sei legalmente obbligato a farlo.

Alla fine con una build di sistema incorporata, dovresti essere in grado di far apparire una macchina di compilazione pulita dalla sorgente e un paio di DVD di installazione. Se hai bisogno di più, guarda la tua catena di strumenti e considera che potrebbe essere troppo complesso per essere affidabile.

Il mio obiettivo era sempre "Pulisci macchina, Cassa, crea, distribuisci". non ci sono mai arrivato, ma sono molto vicino la maggior parte delle volte ...

    
risposta data 05.09.2011 - 07:15
fonte
1

Toolchain con versione, condivisa tramite file server

È passato un po 'di tempo, ma l'ultima volta che ho lavorato con Windows era per un prodotto multi-piattaforma. linux-x86, linux-arm, win-ce e win-nt. Penso che abbiamo gestito la toolchain su tutte le piattaforme installandole in una directory segregata e controllandola nel controllo di versione. Li abbiamo quindi controllati su un server nfs (linux) e un server di condivisione Windows per il montaggio da parte degli sviluppatori e della macchina di compilazione.

Abbiamo dovuto saltare qualche cerchio per assicurarci che non ci fossero scritture sulle directory montate in remoto, ma a parte questo ha funzionato molto bene. Non penso che in realtà abbiamo dovuto installare l'intero IDE in directory separate, solo il compilatore, il linker e le librerie standard.

Abbiamo fatto aggiornamenti / aggiornamenti sul posto. Varie versioni sono state controllate in diverse directory e utilizzate da chiunque si occupasse di problemi con i clienti, correzioni di bug, ecc.

    
risposta data 05.09.2011 - 08:00
fonte