2009-12-23 30 views
21

Làm cách nào để chạy các tệp nhị phân Linux trong Mac OS X?Thi đua các tệp nhị phân Linux trong Mac OS X

Googling xung quanh tôi tìm thấy một vài giả lập nhưng không ai chạy Linux nhị phân trên máy Mac. Có khá nhiều bài viết về việc chạy Mac OS X trên Linux và loại công cụ đó - nhưng điều đó ngược lại với những gì tôi muốn làm.

Cập nhật:

Cảm ơn mọi câu trả lời! Tôi hoàn toàn nhận thức được MacPorts và Fink hoặc bất kỳ thứ gì khác; và không, tôi không muốn bất kỳ tiện ích nào trong số này, và tôi không muốn bất kỳ người quản lý gói nào, tôi thích tự biên dịch mọi thứ. Tôi cũng có Parallels và có thể thiết lập máy ảo và tất cả nhạc jazz đó ...

Điều duy nhất tôi muốn làm là tìm cách chạy nhị phân mà tôi không có mã nguồn và đã được biên dịch cho Linux, nhưng tôi không muốn chạy nó dưới Linux nhưng dưới Mac OS X. Vì vậy, câu hỏi của tôi về giả lập.

+2

Nếu bạn chỉ muốn chạy phần mềm từ thế giới * nix/POSIX, nó có thể sẽ biên dịch miễn là nó không phụ thuộc vào thư viện hệ điều hành cụ thể. Fink hoặc MacPorts có thể giúp với điều này một chút. – Matt

+0

Tôi không thể nghĩ ra bất kỳ phần mềm nào có sẵn cho Linux, nhưng không phải cho Mac (thật đáng buồn vì tôi là một người Linux). Tại sao bạn đang tìm kiếm một điều như vậy? – Davide

+0

Máy chủ chuyên dụng của Team Fortress 2 là một ví dụ chỉ dành cho Windows và Linux: -/ – Tommy

Trả lời

7

Thiết lập máy ảo (Cá nhân tôi sử dụng VMWare Fusion) và sau đó cài đặt bất kỳ bản phân phối Linux nào bạn muốn trên máy ảo.

Hoặc, nếu bạn có nguồn cho chương trình Linux, rất có thể bạn có thể biên dịch lại nó trên máy Mac và chạy nó một cách tự nhiên. Nếu bạn cài đặt Fink hoặc MacPorts, bạn có thể cài đặt nhiều chương trình nguồn mở mà không gặp nhiều rắc rối.

+0

Tôi đã thêm liên kết vào Fink và DarwinPort vì chúng thường dễ dàng hơn tải xuống nguồn và cố gắng biên dịch nó, nhận ra bạn cần phải cài đặt cái gì khác trước, và tải xuống và cố gắng biên dịch nó, vv v.v. –

+0

Cool. Nó thực sự là MacPorts bây giờ, bằng cách này. ;) – mipadi

2

Nếu bạn quyết định đi tuyến đường ảo hóa, hãy xem xét thêm VirtualBox.

Ngoài ra, nếu bạn chỉ cần UNIX như công cụ dòng lệnh, có dự án MacPorts. Về cơ bản đây là cách tôi thiết lập git trên mac của mình: sau khi đã cài đặt MacPorts, bạn chỉ cần chạy lệnh sudo port install git để cài đặt git trên hệ thống của mình.

7

Vâng có một dự án giới thiệu một cái gì đó giống như binfmt_misc Linux OS X vì vậy bây giờ những gì bạn cần là một bộ nạp ELF, một mối liên kết động Qemu của có thể tải cả Mach-O và ELF, và một số cơ chế để dịch các cuộc gọi Linux sang OS X.

Chỉ để có cảm hứng, bạn có thể triển khai trình liên kết động theo cách mà nó bỏ qua đuôi tệp - cả libfoo.so.1 (dưới dạng ELF Linux) và libfoo.1.dylib (dưới dạng Mach-O) có thể được tải sao cho các phiên bản OS X của các thư viện hệ thống có thể được tái sử dụng để bạn không cần phải viết một libc.so được lưu trữ trên OS X và các syscalls có thể được xử lý bởi một kext dịch các cuộc gọi Linux tới các OS X trong kernel.

Hoặc, một cách thanh lịch hơn, thực hiện hạt nhân Linux bị tước xuống dưới dạng kext làm cho hạt nhân OS X trở thành một mục đích kép. Tuy nhiên, điều đó sẽ yêu cầu bạn sử dụng hai bộ thư viện. (Binaries không xung đột vì vậy nó phần lớn là okay)

+1

Bạn có liên kết cho điều này không? –

1

Gần đây tôi đã tìm thấy Noah, bạn có thể sử dụng để chạy các tệp nhị phân Linux trên macOS. Bạn có thể cài đặt Noah qua homebrew (brew install linux-noah/noah/noah). Sau đó, bạn sẽ có thể thực hiện việc này:

noah linux_binary 

Theo kinh nghiệm của tôi về hành vi nhị phân khớp với những gì tôi thấy trên máy Ubuntu của mình.