Come devo distribuire un modulo Perl pre-costruito, e che versione di Perl faccio a costruire per?

StackOverflow https://stackoverflow.com/questions/2388821

  •  24-09-2019
  •  | 
  •  

Domanda

Questa è probabilmente una domanda in più parti. Background: abbiamo una (c ++) libreria nativa che fa parte della nostra applicazione e siamo riusciti a utilizzare SWIG per generare un wrapper Perl per questa libreria. Avevamo ormai come distribuire questo modulo Perl come parte della nostra applicazione.

La mia prima domanda - come devo distribuire questo modulo? C'è un modo standard per pacchetto pre-costruito perl moduli? So che c'è ppm per la distro ActiveState, ma ho anche bisogno di distribuire questo per i sistemi Linux. Non sono nemmeno sicuro di quello file sono necessari per la distribuzione, ma credo che sia il pm e quindi i file, come minimo.

La mia prossima domanda - sembra che potrei aver bisogno di costruire il mio progetto del modulo per ciascuna versione di Perl che voglio supporto. Come faccio a sapere quali versioni perl dovrei costruire per? Ci sono delle linee guida standard ... o meglio ancora, un modo per costruire un pacchetto che funziona con più versioni di perl?

Ci dispiace se le mie domande non hanno senso -. Sono abbastanza nuovo per gli aspetti dei moduli compilati della perl

PRECISAZIONE: la sorgente compilato sottostante è proprietario (closed source), quindi non posso semplicemente spedire il codice sorgente e le appropriate manufatti make per il pacchetto. Vorrei poter, ma non succederà in questo caso. Così, ho bisogno di un programma sano di mente per il confezionamento di file binari precompilati per il mio modulo.

È stato utile?

Soluzione

Mi occupo DBD :: Informix, uno dei moduli di driver di database Perl che funziona con il DBI (Perl Database Interface). Le librerie di base utilizzati per connettersi a IBM Informix Dynamic Server (IDS) sono proprietari, ma il codice DBD :: Informix sé non è. Distribuisco che codice su CPAN, proprio come qualsiasi altro modulo Perl. Le persone possono scaricare quella fonte, e (purché abbiano Informix ClientSDK installato sulla loro macchina - e Perl e DBI e così via)., Si può costruire DBD :: Informix al lavoro con il loro Perl installato

caldamente consiglio che si dispongono che il codice di interfaccia Perl essere reso disponibile in formato sorgente, anche se la libreria che si interfaccia a è proprietario. Questo permette alle persone di installare il codice con qualsiasi versione di Perl che hanno -. Senza la necessità di affrontare le incoerenze

Se si desidera continuare a fornire supporto binario, si sta andando ad avere per capire quali piattaforme si desidera il supporto, e costruire il modulo con la versione standard di Perl su ogni tale piattaforma. Questo diventa disordinato. È necessario accedere a un'istanza di ogni macchina. Certo, le macchine virtuali rendono questo più facile, ma è ancora poco pratici e il numero di piattaforme e versioni cresce solo. Ma è ancora necessario per sostenere le persone che non usano la versione standard di Perl sulla loro macchina - è per questo che il Perl involucro esigenze di interfaccia per essere trasmesse in formato sorgente

.

Altri suggerimenti

NOTA BENE: Ho accanto a nessuna esperienza nella creazione di pacchetti binari che possono essere facilmente installati. Pertanto, sto facendo questo post CW per rendere più facile per gli altri di aggiungere i loro consigli.

Si dovrebbe rendere la distribuzione disponibili in formato sorgente in modo che possa essere compilato su ogni sistema su misura in base alle specifiche di quel sistema. Mi piace molto Module :: Costruire a tale scopo.

Per gli utenti di ActiveState su Windows, probabilmente desidera avere quattro o sei moduli di alimentazione a seconda se si desidera supportare 5.6. Pacchetto entrambe le versioni a 32-bit e 64-bit per ciascuno dei 5.6, 5.8 e 5.10. Utilizzare la versione di mingw è possibile installare utilizzando ppm per compilare i moduli per conservare la compatibilità binaria.

Un'altra opzione è quella di utilizzare PAR :: Packer e distribuire l'applicazione in archiviare un PAR. In tale contesto, PAR :: WebStart potrebbe essere utile anche se non ho provato . Ho avuto successo con archivi PAR in passato, però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top