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


16

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


これは機能しません。OSXカーネルは、Linuxカーネルとは多少異なります。
ott--

OS Xはelfバイナリを使用しないため、windows .exeを実行するのに少し似ています。しかし、簡単な検索でこれが見つかります:osxbook.com/software/xbinaryコードを再コンパイルできれば、それは問題ではありません。
オリオン

XBinaryには、バイナリの実行方法を知っているプログラムが必要です。それ自体は何も実行しません。
-saagarjha

回答:


8

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

歴史

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

これの使用方法

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


AppleのGUIのすべてを使用して書かれているのでWikiEntry -ココアのAPIXCodeのにバンドル-開発者のためのOS Xを、ポートがこれを利用するように調整することができます。

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

警告

ポートシステムは、ポートが適切に記述されていない限り、必ずしも依存性チェックを行うとは限りません。gentoo portageオーバーレイでのelibc_FreeBSDの意味の問題に少し触れましたか?


17

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

noah linux_binary

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


コマンドが働いたとエラーが上昇しなかったものの、私のバイナリが期待どおりに動作しませんでした
techkuz

2

これが何らかの仮想化を介して行えることを知っている唯一の方法です。たとえば、あなたが使用することができ浮浪者、OracleのVBoxのか、VMwareのvmplayer周り種類のラッパーです。時々行われる他のことは、これをdockerなどのコンテナに入れることです。


2

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

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

Qemuもあります。これは、異なるCPUタイプ(IntelやPowerなど)を仮想化します。

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

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

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


リンクを修正しました。U&L.SEへようこそ。
eyoung100
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.