web-dev-qa-db-ja.com

macOSでLinuxバイナリを実行する方法はありますか?

MacOSでLinuxバイナリを実行する方法はありますか?バイナリを実行しようとしましたが、実行可能ではないと表示されました。

19
Saeid

仮想化が選択肢ですが、別の選択肢があるため、これらの答えは半分正解です。プレゼントしてもいいですか...

歴史

  1. 最初にありました NIX、1972年頃
  2. その後、タイムライン分割
    • 1977年に$ 90で Bob Fabryなど は、Berkeley Systems Distributionの略であるBSDの最初のバージョンをコンパイル/ビルドしました。
    • 1991年、1983年にGNUを始めたリチャードストールマンから使用したソフトウェアについて、 Linus Torvaldsがニュースグループに投稿 し、LinusのUNIXが誕生しました。
    • アップルは1984年にAppleからSteve Jobsが解雇された後、1996年にNeXTソフトウェアを再取得し、そのソフトウェアと人々を使ってOS Xをビルドしました。OSXは Darwin OS + NeXTデスクトップ環境。そして、ダーウィンはBSDのクローズドソースフォークであるため、ブレット#1に戻ります。オープンソースプロジェクトについては、 PureDarwin を参照してください。公式のApple開発者ページについては、 Apple Open Source を参照してください。

これをどのように使用できるか

BSDは伝統的にパッケージ管理にPortsシステムを使用しています。これらの中で最も広く使用されているのは FreeBSD Ports です。ポートは、ソースから直接インストールされるパッケージです。 同じLinuxアプリケーションは同じソースからのものであるため、ポートが存在する場合はLinuxアプリケーションを実行できます。 Macでこれらのポートを使用しないでください...


AppleのすべてのGUIは Cocoa API-WikiEntryXC​​odeにバンドルされている-開発者向けOS X を使用して記述されているため、ポートを調整してこれを利用できます。

  1. OS Xのバージョンに応じてXCodeをインストールします。
  2. XCode内にバンドルされているのは、GCCコンパイラのAppleバージョンと、その他すべての関連ツールです。ツールを更新するには、 StackOverflowに関するこの投稿 を参照してください。ツールはOSバージョンに依存します。つまり下位互換性がありません。私の知る限り(10.6に10.8のXCodeをインストールしないでください) 。)
  3. XCodeをインストールすると、コンパイラーが作成され、- MacPorts ページに移動して、インストールが必要なポートを参照できます MacPorts .pkgインストーラーのインストール

警告

ポートが適切に記述されていない限り、ポートシステムは必ずしも依存関係のチェックを行うわけではありません。 gentoo Portageオーバーレイでのelibc_FreeBSDの意味は何ですか?

10
eyoung100

最近 Noah を使用してmacOSでLinuxバイナリを実行しています。 homebrew(brew install linux-noah/noah/noah)。次に、これを行うことができるはずです:

noah linux_binary

私の経験では、バイナリの動作は、Ubuntuマシンで見たものと一致しています。

18
snd

これが何らかの 仮想化 を介して実行できることを私が知っている唯一の方法。たとえば、OracleのVBoxまたはVMwareのvmplayerのラッパーである vagrant を使用できます。時々行われるもう1つのことは、これを docker などのコンテナに入れることです。

2
rocky

ハードウェアエミュレーション

直接ではない!はい、ロッキーが言ったように、CPUタイプに一致する VirtualBoxVMWare Fusion で仮想化する必要があります。

Qem もあり、さまざまなCPUタイプ、つまりIntelやPowerなどを仮想化します。

ソフトウェアエミュレーション

WiNE のようなプログラムを使用したソフトウェアレイヤーエミュレーションと、自分のemulayerプログラム(WiP)もあります。これらは両方とも、システムコールをPOSIXに変換することにより、Windows OSを部分的にエミュレートします。

ほとんどのLinuxアプリケーションは、ソースを再コンパイルしてOSXで実行します。

2
bobbyjo