Mac OS X - установка программного обеспечения через DMG против стиля командной строки * nix

2910
Matt

Новый владелец Mac здесь, но давний пользователь Linux. Может кто-нибудь описать мне различия между установкой части программного обеспечения, такого как Subversion, из образа .dmg по сравнению с компиляцией и установкой из исходного кода в командной строке? Программное обеспечение оказывается в том же месте? Какие существуют другие различия, например, процедуры удаления? Что бы вы рассмотрели плюсы / минусы одного подхода по сравнению с другим?

3
В частности, для Subversion он устанавливается вместе с Инструментами разработчика, которые можно получить с установочного диска Mac OS X. jtbandes 14 лет назад 1
О да. Очень хороший момент. Вам определенно следует установить инструменты разработчика - subversion, gcc и т. Д. Плюс такие полезности для Mac, как инструмент сравнения файлов, и, конечно, инструменты для разработки кода Mac (Xcode, InterfaceBuilder) Doug Harris 14 лет назад 0
У меня есть клиент Subversion без XCode, установленного в Leopard, только XCode устанавливает сервер? The Tentacle 14 лет назад 0
@jtbandes - я заметил, что Subversion уже установлена ​​по умолчанию, хотя я не помню, чтобы я установил Инструменты разработчика. Однако это была более старая версия, поэтому хотелось обновить ее до последней версии. И я не был уверен, как было установлено значение по умолчанию, и поэтому не был уверен, что это лучший способ установить обновление. Matt 14 лет назад 0

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

4
Doug Harris

Установка из .dmg обычно это просто перетаскивание в / Applications. Удаление, по моему мнению, является больным местом в Mac. Вы можете удалить файл из Приложения, но пропадет только тот материал, который инкапсулирован в оболочку .app. Любые дополнительные файлы конфигурации не исчезают.

Другой путь установки, который вы должны рассмотреть, это MacPorts и / или Fink . Это несколько похоже на apt-get или yum в мире Linux. Они предоставляют утилиту командной строки для захвата, компиляции и установки общего программного обеспечения. Обычно это так просто, как:

$ sudo port install svn 

(пример Macport)

Как я узнаю, будет ли он совместимым / конфликтующим с существующей установкой программного обеспечения? например, упомянутая мной Subversion уже была на компьютере, но была более старой версией. Я знаю, что несколько версий программного обеспечения могут вызывать проблемы, в зависимости от того, какие библиотеки связаны, если они находятся в переменной PATH, какая из них находится в начале пути и т. Д. Matt 14 лет назад 0
Из командной строки bash «type -a svn» покажет все исполняемые файлы (а также псевдонимы и встроенные функции и функции оболочки) в текущем пути - в порядке поиска. Верхний - тот, который будет выполнен. Библиотеки, используемые исполняемым файлом, будут, вероятно, определяться либо тем, как он был скомпилирован, либо переменной среды DYLD_LIBRARY_PATH. Doug Harris 14 лет назад 0
Вы также можете подождать два дня и посмотреть, не выйдет ли новая версия svn с SnowLeopard (она же Mac OS 10.6). Doug Harris 14 лет назад 0
4
s4y

A .dmg- это просто виртуальный диск («образ диска»), и сам по себе не имеет ничего общего с установкой.

Когда образ диска содержит только приложение (обычно будет какой-то пояснительный текст с просьбой перетащить его в папку «Приложения»), тогда весь код и вспомогательные файлы содержатся в этом одном файле. Приложение отвечает за выполнение любой настройки при первом запуске и обеспечивает механизм удаления, если что-либо будет установлено позже. Многие разработчики используют платформу Sparkle для поиска и установки обновлений.

Если образ диска содержит пакет ( .pkgили .mpkg), это установщик. Его запуск может устанавливать файлы в любом месте вашей системы и запускать сценарии до и после установки, при этом отсутствует встроенный механизм удаления или обновления (однако система ведет журнал установленных пакетов, поэтому, если вы позже запустите пакет установщика для более новой версии программного обеспечения это может вести себя иначе, чем если бы это была первая установка). В этом случае разработчик также несет ответственность за удаление и отвечает за обновления. Ответственные разработчики установят в стандартные каталоги ( /Applications, /Libraryи ~/Library, /usrи т. Д.)

Для программного обеспечения командной строки, которое вы обычно устанавливаете из исходных текстов, я бы порекомендовал менеджер пакетов, например MacPorts (мои предпочтения) или Fink, используя пакет установщика. Оба этих менеджера пакетов создают автономный каталог ( /optи /sw, соответственно) со всеми файлами поддержки и исполняемым кодом для устанавливаемого ими программного обеспечения (и большинство пакетов уважают его), и добавляют себя в свой $PATH. Огромным преимуществом использования диспетчера пакетов является то, что он будет отслеживать установленное программное обеспечение и даст вам возможность обновить или удалить его.

Спасибо! Дали первые 3 ответа на голосование, потому что все они были информативными, а ваши - тем более! Благодарю. Matt 14 лет назад 0
2
The Tentacle

Это несколько сложно, потому что внутри DMG может быть простое решение с перетаскиванием или .PKG, которое может устанавливать вещи в любом месте. .pkg обычно оставляют квитанции (обычно в / Library / Receipts), хотя OS X не предлагает простого способа управлять этими квитанциями.

Pacifist - это полезное приложение, которое проверяет файлы .pkg (которые многие приложения командной строки используют для пользовательских мест установки) перед установкой, чтобы вы могли точно понять, где что-то может быть установлено. Затем вы можете определить, будет ли ваша скомпилированная версия установлена ​​в том же месте или нет, и будут ли они конфликтовать с системными версиями:

http://www.charlessoft.com/

В частности, вам нужно будет убедиться, что при установке в разных местах ваш путь отражает желаемую версию, которую вы хотите использовать. Я подозреваю, что subversion не должен быть проблематичным с несколькими установленными версиями ... Для Ruby я использую имя ruby19 для исполняемого файла ruby, чтобы предотвратить любые проблемы с путями в несовместимом коде.

Существует менее мощный, но бесплатный плагин быстрого просмотра для файлов .pkg, который выполняет основную работу, показывая, где что будет установлено:

http://www.mothersruin.com/software/SuspiciousPackage/

Похожие вопросы