2009-05-12 11 views
8

La mia azienda ha un prodotto software scritto in C per una piattaforma Linux, creato con gli autotools e distribuito tramite pacchetti binari. Per creare i binari, prima produciamo un RPM sorgente e quindi compiliamo la fonte da SRPM.Creazione di pacchetti Linux per più distribuzioni e versioni

Attualmente forniamo solo pacchetti RPM per Fedora 10 a 64 bit, ma vogliamo iniziare a fornire pacchetti per più distribuzioni Linux - a 32 bit come anche a 64 bit - e possibilmente diverse versioni di ogni distribuzione (ad es. Fedora 11 e Fedora 10).

Ho sentito che il modo migliore per produrre build per più versioni di Linux è avere un singolo server di build e utilizzare un diverso ambiente di chroot per ogni set di pacchetti che si desidera creare. Qualcuno ha una buona risorsa che lo spiega in modo più dettagliato, magari con esempi di progetti ben noti che usano questo meccanismo di costruzione o hanno un'alternativa migliore per raggiungere lo stesso obiettivo?

risposta

1

È possibile utilizzare LSB appchecker per testare l'applicazione/dynlib/shell di compatibilità script: http://ldn.linuxfoundation.org/lsb/check-your-app. Dopodiché puoi usare RPM per tutti gli RPM e usare alien per tutte le distribuzioni apt-get e tar.gz per altri

+1

Mentre appchecker mostra informazioni preziose sulla compatibilità, non crea pacchetti con specifiche di distribuzione specifiche della distribuzione. –

1

Strumenti come checkinstall ti aiuteranno a produrre pacchetti per diverse distribuzioni. Personalmente, se stai cercando di integrarti con i sistemi di gestione dei pacchetti esistenti, vorrai anche ospitare più repository sui tuoi server e fornire i pacchetti, quindi gli utenti dovranno configurare i loro gestori di pacchetti per estrarre le app dai tuoi server.

0

A seconda di cosa il software esegue esattamente e quali dipendenze ha (se esiste) sulle librerie locali, è possibile creare il software utilizzando una distribuzione glibc meno recente e farlo funzionare in molte distribuzioni diverse. Questo è ciò che facciamo con InstallBuilder. Se non si dispone di dipendenze su pacchetti specifici, è anche possibile creare pacchetti RPM o DEB che verranno eseguiti sulla maggior parte delle distribuzioni Linux basate su RPM o DEB. Sviluppo cross-Linux, in ogni caso, non è facile :) Buona fortuna!

0

Questo è uno dei casi trattati da Bob Aiello in this article sugli agenti di compilazione. We hanno diversi clienti che utilizzano questo approccio per costruire su più piattaforme in parallelo.

+0

Grazie alla nostra infrastruttura di build su Amazon EC2, quindi utilizzare gli agenti di compilazione è una possibilità, ma preferirei tenere tutto su un server di generazione, se possibile, per facilità di manutenzione (ad esempio, se aggiorniamo la versione di qualche pacchetto dipendente, Non voglio dover aggiornare più immagini della macchina di Amazon). –