Запуск программ командной строки OS X в Ubuntu

463
John Sonderson

Учитывая, что Mac OS X является производной от UNIX BSD (Berkeley Systems Distribution), я предполагаю, что в той или иной мере можно будет запускать программы OS X из командной строки в Ubuntu. Я действительно говорю о тех скомпилированных программах, которые не используют никаких функций пользовательского интерфейса (в моем случае мне нужно запустить инструмент преобразования исполняемых файлов). Конкретный инструмент, который мне интересен, работает на Mac OS X Mavericks.

Если кто-то знает способ достижения этого, возможно, перекомпилировав ядро ​​Linux или установив какое-либо системное программное обеспечение в Ubuntu, пожалуйста, дайте мне знать. Я использую Ubuntu 12.04.2 LTS, но я также могу обновить систему, если это абсолютно необходимо.

0
И что такое «конкретный инструмент, который вас интересует»? slhck 10 лет назад 1
Не уверен, что это что-то меняет, но я пытаюсь запустить инструмент под названием "InstallESD.dmg.tool" (который используется для создания загрузочного файла .dmg (Apple Disk Image). Теоретически это просто файл инструмент преобразования и, следовательно, не требует ничего, кроме ввода-вывода для запуска. Однако, когда я запускаю файл в Ubuntu Linux, я получаю следующее сообщение об ошибке: «Этот инструмент поддерживается только в OS X.». Может ли быть обходной путь? John Sonderson 10 лет назад 0
Я бы посоветовал вам задать этот конкретный вопрос. Например, вы хотите сделать загрузочный файл `.dmg` из Linux. slhck 10 лет назад 0
FWIW, InstallESD.dmg.tool - это просто сценарий оболочки, который вызывает несколько программ, которые могут быть или не быть специфичными для OSX (hdiutil, pkgutil, PlistBuddy, chflags и bless выделяются; но могут быть и другие). https://github.com/ntkme/InstallESD.dmg.tool/blob/master/InstallESD.dmg.tool Kent 10 лет назад 2

2 ответа на вопрос

3
hildred

Это, вероятно, не поможет в вашей ситуации, но есть три основных способа перемещения команд между юниксами и способ обмана, который может помочь.

  1. найдите тот, который уже был портирован: например, стандартная команда mailx была реализована много раз. Debian и, следовательно, Umbutu имеют как минимум три версии.

  2. перекомпиляция / порт: если у вас есть доступ к исходному коду, перекомпиляция на другой платформе обычно довольно проста, но иногда возникают некоторые перехваты (что означает «выбор» изменяет / не изменяет свои параметры).

  3. бинарные эмуляции: здесь у вас есть двоичный файл, который был скомпилирован для одной операционной системы, работающей в другой, это становится сложным, когда у вас есть динамические библиотеки, и требует конкретной и подробной информации, например, что говорит ldd. Вы, вероятно, хотите сильно опираться на форумы для вашего конкретного эмулятора. Если вы хотите пойти по этому пути, проверьте http://darling.dolezel.info/ru/Darling

  4. чит: обмен файлами и ssh. вам нужно общее расположение для файлов, доступных для обоих компьютеров: nfs samba, ftp и т. д. поместите файл туда, где его может прочитать mac, используйте ssh для входа в mac из linux, выполните одну команду, возможно перенесите результаты, продолжите с твоим днем.

2
MattDMo

Linux и OS X - две совершенно разные операционные системы, такие как Linux и BSD, OS X и Windows, Windows и Solaris и т. Д. Если у вас нет исходного кода для инструмента, который вы пытаетесь использовать, вы не сможете просто скопируйте его из ОС в ОС и ожидайте, что он будет работать. Хотя для его запуска может потребоваться «ничего от ввода-вывода» (на самом деле, не все ли компьютерные программы просто «ничего, кроме ввода-вывода»?), Он был построен определенным компилятором для определенной цепочки инструментов и ожидает определенных библиотек с определенные функции должны быть в определенных местах, чтобы это работало.

Ищите источник и попытайтесь перекомпилировать в Linux, или ищите эквивалент Linux.

Благодарю. Похоже, нет простого способа сделать это. John Sonderson 10 лет назад 0