Come scrivere codice per diverse versioni di linux

-1

Quindi, ho scritto un codice abbastanza grande per cento OS 7.1. Il codice utilizza essenzialmente diversi strumenti da riga di comando analizzando l'output del testo e inserendolo in un database ... piuttosto semplice.

Ora ho il compito di rendere questo codice eseguito su Ubuntu, cent 6 OS e potenzialmente altri sapori. Il codice di interesse è python 2.7. Quali metodologie esistono per ottenere questo risultato?

Il metodo che mi sta fissando in faccia è ovvio, basta passare i comandi in esecuzione e come li analizzi in base al tuo OS in esecuzione. Ma sono davvero spaventato che questo non è un buon modo e può diventare ingestibile. Non ho mai fatto qualcosa del genere, ottenendo il codice per l'esecuzione su più SO e spero davvero che qualcuno con esperienza con questo possa aiutarmi con un approccio generale a questa, che deve essere una tipica sfida di programmazione.

Grazie in anticipo

    
posta gunslingor 15.05.2016 - 03:22
fonte

2 risposte

0

Puoi utilizzare la libreria platform per eseguire diversi comandi in base al gusto del sistema operativo e / o versione in esecuzione.

    
risposta data 15.05.2016 - 17:19
fonte
0

Ho avuto una situazione simile, ma più semplice, con un programma C in esecuzione su diverse distribuzioni di Linux, e usando forse una mezza dozzina di strumenti da riga di comando. Quello che ho fatto è stato scrivere C funzioni char * whichpath (comando char *), e allo stesso modo per locatepath (). La versione che fa semplicemente popen ("which command", "r") e legge la pipe, semplicemente lasciando che trovi il comando (path to the) di cui ho bisogno. Se fallisce, provo a localizzare, e se anche questo fallisce, il programma non può essere eseguito ed emette un errore. Ovviamente, quali (e occasionalmente individuare) devono essere disponibili sulla distribuzione, ma di solito lo sono. E se trova il comando, è già sul tuo PERCORSO, quindi nessun problema in primo luogo. In caso contrario, potrebbe essere necessario disambiguare più righe restituite da locate e quindi eseguire il percorso completo locate. E, naturalmente, il nome del comando non può cambiare tra distro, ma non importa se sia in / usr / bin / o in elsewheres. Infatti, anche la stessa immagine eseguibile (compilata con le librerie statiche) può essere eseguita su diverse caselle che eseguono distribuzioni diverse.

    
risposta data 15.05.2016 - 14:02
fonte

Leggi altre domande sui tag