Esecuzione di programmi da riga di comando OS X su Ubuntu


0

Dato che Mac OS X deriva da UND BSD (Berkeley Systems Distribution), suppongo che in un modo o nell'altro sarebbe possibile eseguire programmi OS X da riga di comando su Ubuntu. Sto davvero parlando di quei programmi compilati che non utilizzano alcuna funzionalità dell'interfaccia utente (nel mio caso ho bisogno di eseguire uno strumento di conversione di file eseguibile). Lo strumento particolare che mi interessa funziona su Mac OS X Mavericks.

Se qualcuno conosce un modo per raggiungere questo obiettivo, magari ricompilando il kernel Linux o installando un software di sistema su Ubuntu, per favore fatemelo sapere. Sto eseguendo Ubuntu 12.04.2 LTS, ma posso anche aggiornare il sistema se assolutamente necessario.


1
E qual è lo "strumento particolare che ti interessa"?
slhck,

Non sono sicuro che faccia la differenza, ma sto cercando di eseguire uno strumento chiamato "InstallESD.dmg.tool" (che viene utilizzato per rendere avviabile un file .dmg (Apple Disk Image). In teoria, questo è solo un file strumento di conversione e quindi non necessita altro che I / O per funzionare. Tuttavia, quando eseguo il file su Ubuntu Linux, ricevo il seguente messaggio di errore: "Questo strumento è supportato solo su OS X.". Potrebbe esserci una soluzione alternativa?
John Sonderson,

Ti incoraggio a porre questa domanda specifica. Ad esempio, vuoi rendere .dmgavviabile un file da Linux.
slhck,

2
FWIW, InstallESD.dmg.tool è semplicemente uno script di shell, che richiama diversi programmi che possono o meno essere specifici dell'OSX (spiccano hdiutil, pkgutil, PlistBuddy, chflags e bless; ma potrebbero essercene altri). github.com/ntkme/InstallESD.dmg.tool/blob/master/…
Kent,

Risposte:


2

Linux e OS X sono due sistemi operativi completamente diversi, proprio come Linux e BSD, OS X e Windows, Windows e Solaris, ecc. A meno che non si disponga del codice sorgente per lo strumento che si sta tentando di utilizzare, non sarà possibile basta copiarlo da SO a SO e aspettarsi che funzioni. Anche se potrebbe essere necessario eseguire "niente per I / O" (in realtà, non tutti i programmi per computer sono solo "niente ma I / O"?), È stato creato da un determinato compilatore contro una determinata catena di strumenti e si aspetta che alcune librerie con determinate funzioni devono essere in determinati luoghi affinché funzioni.

Cerca la fonte e prova a ricompilare su Linux o cerca un equivalente Linux.


Grazie. Sembra che non ci sia un modo semplice per farlo.
John Sonderson,

3

Questo probabilmente non aiuterà nella tua situazione, ma ci sono tre modi generali per spostare i comandi tra unix e un modo per imbrogliare che può aiutare.

  1. trovane uno che è già stato portato: ad esempio il comando mailx standard è stato implementato molte volte. Debian e quindi Umbutu hanno almeno tre versioni.

  2. ricompilare / porta: se si ha accesso al codice sorgente, è normalmente abbastanza stretto in avanti ricompilare su un'altra piattaforma, ma a volte ci sono alcune catture (cosa intendi con select modifica / non modifica i suoi parametri).

  3. emulazioni binarie: è qui che hai un binario che è stato compilato per un sistema operativo in esecuzione su un altro questo diventa complicato quando hai librerie dinamiche e richiede informazioni specifiche e dettagliate come ciò che dice ldd. probabilmente vorrai appoggiarti pesantemente sui forum per il tuo emulatore specifico. Se vuoi andare in questo modo dai un'occhiata a http://darling.dolezel.info/en/Darling

  4. cheat: condivisione file e ssh. hai bisogno di una posizione comune per i file disponibili per entrambi i computer, nfs samba, ftp, ecc. metti il ​​file da qualche parte in cui il mac può leggerlo, usa ssh per accedere al mac da linux, esegui un comando, eventualmente sposta i risultati, continua con la tua giornata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.