C'è un modo per eseguire un binario Linux su macOS?


16

C'è un modo per eseguire un binario Linux in macOS? Ho provato a eseguire un binario ma ha detto che non è eseguibile.


Questo non funzionerà. Il kernel OSX è leggermente diverso da un kernel Linux.
ott--

Beh, OS X non usa i binari elf, quindi è un po 'come provare a eseguire Windows .exe. Tuttavia, una breve ricerca trova questo: osxbook.com/software/xbinary Se riesci a ricompilare il tuo codice, non è un problema.
Orione,

XBinary richiede un programma che sappia eseguire il tuo binario; in sé e per sé non esegue nulla.
Saagarjha,

Risposte:


8

Queste risposte sono per metà corrette, perché la virtualizzazione è una scelta ma ce n'è un'altra. Posso presentare ...

Storia

  1. Prima c'era UNIX, intorno al 1972
  2. Quindi la divisione della linea temporale
    • Nel 1977, per $ 90, Bob Fabry e altri , compilarono / costruirono le prime versioni di BSD, abbreviazione di Berkeley Systems Distribution.
    • Nel 1991, Linus Torvalds ha pubblicato in un Newsgroup , circa il software che ha usato da Richard Stallman, che ha iniziato GNU nel 1983, e l'UNIX di Linus è nato.
    • Apple ha riacquistato il software NeXT nel 1996, dopo che Steve Jobs è stato licenziato da Apple nel 1984 e ha utilizzato il software e le persone lì per costruire OS X. OS X è il sistema operativo Darwin + l'ambiente desktop NeXT. E ora siamo tornati al Bullet # 1, dato che Darwin è un fork di sorgenti chiuse di BSD. Per il progetto Open Source, vedere PureDarwin . Per la pagina ufficiale degli sviluppatori Apple, vedi Apple Open Source .

Come possiamo usare questo

Le BSD usano tradizionalmente il sistema Ports per la gestione dei pacchetti. Le più utilizzate sono le porte di FreeBSD . Le porte sono pacchetti installati direttamente dall'origine. Poiché le stesse applicazioni Linux provengono dalle stesse fonti , è possibile eseguire un'applicazione Linux se esiste la sua porta. Non utilizzare queste porte su un Mac perché ...


Poiché tutte le GUI di Apple sono scritte usando l' API Cocoa - WikiEntry , in bundle con XCode - OS X per sviluppatori , le porte possono essere ottimizzate per sfruttare questo:

  1. Installa XCode per la tua versione di OS X.
  2. All'interno di XCode è inclusa la versione di Apple del compilatore GCC e tutti gli altri strumenti associati. Per aggiornare gli strumenti, vedere questo post su StackOverflow . Gli strumenti dipendono dalla versione del sistema operativo, ovvero non sono retrocompatibili , a mia conoscenza (in breve, non installare XCode per 10.8 su 10.6, ecc.)
  3. Dopo aver installato XCode ora hai un compilatore e puoi andare alla pagina MacPorts e cercare la porta che hai bisogno di installare, dopo aver installato il programma di installazione MacPorts .pkg

Avvertimento

Il sistema delle porte non esegue necessariamente il controllo delle dipendenze, a meno che la porta non sia stata scritta correttamente. Ho leggermente toccato il problema in cosa significa elibc_FreeBSD in overlay di portage gentoo?


17

Di recente ho iniziato a utilizzare Noah per eseguire i binari Linux in macOS. Puoi installarlo usando homebrew ( brew install linux-noah/noah/noah). Quindi dovresti essere in grado di fare questo:

noah linux_binary

Nella mia esperienza, il comportamento del binario corrisponde a quello che vedo sulla mia macchina Ubuntu.


anche se il comando ha funzionato e non si sono verificati errori, i miei binari non hanno funzionato come previsto
techkuz

2

L'unico modo in cui so che questo può essere fatto tramite una sorta di virtualizzazione . Ad esempio, potresti usare vagrant che è una sorta di wrapper attorno al VBox di Oracle o al vmplayer di VMware. L'altra cosa che a volte si fa è metterlo in un contenitore come una finestra mobile .


2

Emulazione hardware

Non direttamente! Sì, come ha detto Rocky, devi virtualizzarlo con VirtualBox , VMWare Fusion , che corrisponderà al tuo tipo di CPU.

C'è anche Qemu , che virtualizzerà diversi tipi di CPU, ad esempio Intel o Power, ecc.

Emulazione del software

Esiste anche l'emulazione del livello software, con programmi come WiNE e il mio programma di emulayer (WiP). Entrambi questi emulano parzialmente il sistema operativo Windows convertendo le chiamate di sistema in POSIX.

La maggior parte delle applicazioni Linux verrà eseguita su OSX con una ricompilazione del sorgente.


Ho corretto i tuoi collegamenti per te. Benvenuti in U & L.SE.
eyoung100,
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.