web-dev-qa-db-fra.com

Existe-t-il un moyen d'exécuter un binaire Linux sur macOS?

Existe-t-il un moyen d'exécuter un binaire Linux sous macOS? J'ai essayé d'exécuter un binaire mais il a dit qu'il n'était pas exécutable.

19
Saeid

Ces réponses sont à moitié correctes, car la virtualisation est un choix mais il y en a un autre. Puis-je présenter ...

Histoire

  1. Il y a d'abord eu NIX, vers 1972
  2. Ensuite, la division du calendrier
    • En 1977, pour 90 $, Bob Fabry et autres , a compilé/construit les premières versions de BSD, abréviation de Berkeley Systems Distribution.
    • En 1991, Linus Torvalds publié dans un groupe de discussion , sur le logiciel qu'il a utilisé de Richard Stallman, qui a commencé GNU en 1983, et Linus'es UNIX est né.
    • Apple a racheté NeXT Software en 1996, après le licenciement de Steve Jobs de Apple en 1984, et a utilisé le logiciel et les gens là-bas pour construire OS X. OS X est le Darwin OS = + l'environnement de bureau NeXT. Et maintenant, nous revenons à la puce n ° 1, car Darwin est un fork source fermé de BSD. Pour le projet Open Source, voir PureDarwin . Pour l'officiel Apple Page développeur, voir Apple Open Source .

Comment pouvons-nous utiliser cela

BSD utilise traditionnellement le système de ports pour la gestion des packages. Les plus largement utilisés sont les FreeBSD Ports . Les ports sont des packages installés directement à partir de la source. Étant donné que les mêmes applications Linux proviennent des mêmes sources , vous pouvez exécuter une application Linux si son port existe. N'utilisez pas ces ports sur un Mac car ...


Étant donné que toutes les interfaces graphiques d'Apple sont écrites à l'aide de Cocoa API - WikiEntry , fourni avec XCode - OS X for Developers , les ports peuvent être réglés pour en profiter:

  1. Installez XCode pour votre version d'OS X.
  2. La version d'Apple du compilateur GCC et de tous les autres outils associés est incluse dans XCode. Pour mettre à jour les outils, voir ce post sur StackOverflow . Les outils dépendent de la version du système d'exploitation, c'est-à-dire qu'ils ne sont pas rétrocompatibles , à ma connaissance (en bref, n'installez pas XCode pour 10.8 sur 10.6, etc. .)
  3. Après avoir installé XCode, vous avez maintenant un compilateur, et pouvez vous diriger vers la page MacPorts et rechercher le port que vous devez installer, après installer le programme d'installation MacPorts .pkg

Caveat

Le système de ports ne fait pas nécessairement de vérification des dépendances, sauf si le port a été bien écrit. J'ai légèrement abordé le problème dans que signifie elibc_FreeBSD dans les superpositions de portage gentoo?

10
eyoung100

J'ai récemment commencé à utiliser Noah pour exécuter des binaires Linux sous macOS. Vous pouvez installer en utilisant homebrew (brew install linux-noah/noah/noah). Vous devriez alors pouvoir faire ceci:

noah linux_binary

D'après mon expérience, le comportement du binaire correspond à ce que je vois sur ma machine Ubuntu.

18
snd

La seule façon dont je sais que cela peut être fait via une sorte de virtualisation . Par exemple, vous pouvez utiliser vagrant qui est en quelque sorte un wrapper autour de la VBox d'Oracle ou du vmplayer de VMware. L'autre chose qui est parfois faite est de mettre cela dans un conteneur tel que docker .

2
rocky

Émulation matérielle

Pas directement! Oui, comme l'a dit Rocky, vous devez le virtualiser avec VirtualBox , VMWare Fusion , qui correspondra à votre type de CPU.

Il y a aussi Qem , qui virtualisera différents types de CPU, c'est-à-dire Intel ou Power, etc.

Émulation logicielle

Il existe également une émulation de couche logicielle, avec des programmes comme WiNE , et mon propre programme d'émulateur (WiP). Ces deux émulent partiellement le système d'exploitation Windows en convertissant les appels système en POSIX.

La plupart des applications Linux fonctionneront sur OSX avec une recompilation source.

2
bobbyjo