Open Source в мире Mac OS X

Jan 31, 2010 16:20


Когда я приобрел Мак, я не подразумевал использование Mac OS X как основной операционной системы.  Однако, когда я нашел большое количество открытых проектов, портированных на Мак, это изменило мои намерения.

Mac OS X является средой гораздо более дружественной к открытым проектам чем, например, Windows.  Во-первых, Mac OS X построена на основе Unix.  А во-вторых, Mac OS X достаточно широко распостранена среди энтузиастов открытого программного обеспечения.  Как следствие популярности, для Mac OS X существует несколько систем так называемых портов (от слова port) программ с открытым кодом.  В них находятся порядка нескольких тысяч программ.  Такое разнообразие портов поднимает Mac OS X почти до уровня Linux (в глазах приверженца этой операционной системы).

Какую систему портов выбрать?  На сегоднешний день их несколько: Fink (finkproject.org), DarwinPorts (darwinports.com) и MacPorts (macports.org).  MacPorts является последователем проекта DarwinPorts, поэтому нет смысла выбирать DarwinPorts.  Между Fink и MacPorts мне больше понравился MacPorts, так как в нем оказались более новые версии программ.  И вообще, MacPorts более активен, чем Fink.

Какие программы можно найти в портах?  Мне, как человеку, привыкшему к Linux, было приятно найти в MacPorts почти все, что я использовал под Linux.  Например: gcc4.4, gcc4.5 (последний snapshot), boost (последней версии, в отличии он многих дистров Linux), htop, MacVim (прекрасный UI для Vim), nmap (включая ZenMap), python (2.6.4, 3.1.1), pan2, многие Gnome’овские программы и т.д.  Конечно, некоторые из этих программ можно найти отдельно в специальных бандлах (bundle) для Mac OS X.  Однако, когда они находятся под управлением системы портов, то операции по их установке, удалению и обновлению очень сильно облегчены.

Ясно, что MacPorts - это вещь суперполезная.  Перейдем к практическим упражнениям.  Что необходимо для установки и конфигурирования MacPorts?

Прежде всего нужно установить Apple Xcode Developer Tools (с установочного диска Mac OS X или с сайта http://developer.apple.com/tools/xcode/).  Без них MacPorts работать не будет.  Потом нужно скачать и установить MacPorts.pkg, следуя по этой ссылке: http://www.macports.org/install.php, где в зависимости от вашей операционной системы нужно выбрать правильный pkg.  После установки, из терминала будет доступна команда ‘port’ (без ковычек).  Более-менее полное описание к ней можно почитать, как обычно, с помощью ‘man port’.  А для тех, кому интересны все детали, можно заглянуть в директорию /opt/local, куда по-умолчанию устанавливается сам MacPorts и все его пакеты.

Конфигурация.  В принципе, можно ничего совсем не конфигурировать и сразу начать устанавливать пакеты.  Хотя знать о конфигурациооных опциях все-таки полезно.  Поэтому начнем с них.

Конфигурационные файлы для MacPorts находятся в директории /opt/local/etc/macports.  Главный конфиг файл, macports.conf, достаточно неинтересен.  Настройки по-умолчанию будут работать в большинстве случаев.  Следующий файл, на котором мы остановим внимание, это variants.conf.  Вот его уже полезно привести заранее в тот вид, который нужен.  Дело в том, что пакеты из MacPorts собираются из исходников прямо на вашей машине.  Каждый пакет может собираться в соответствии с различными конфигурационными опциями.  Набор опций, с которым пакет собирается в определенную конфигурацию называется вариантом (variant).  У каждого пакета может быть несколько вариантов, с которыми полезно ознакомиться перед установкой пакета (как, я покажу немного позже).  Но иногда желательно, чтобы определенные варианты были включены по-умолчанию.  Вот для этого и нужен variants.conf.

Я советую, если вы на Leopard или Tiger, добавить в variants.conf следующую строку:
+no_x11 +quartz

Она инструктирует пакеты, которые обычно зависят от X Window System (X11), использовать вместо нее родную графическую систему Quartz (для Snow Leopard эти варианты еще не полностью работают).  Кстати, если вы вынуждены собирать с зависимостями от X11, то необходимо установить пакет X11 с диска Mac OS X.
В сети еще можно найти рекомендацию добавлять вариант +bytecode, который включает bytecode interpreter в пакете freetype.  Но мне показалось, что без этого варианта шрифты отображаются куда лучше в X11 программах чем с ним.

Ну, теперь пора и что-нибудь установить.  Установим что-нибудь полезное, например, MacVim.

Для начала посмотрим какие пакеты с Vim есть в MacPorts.  Это делается командой:
$ port search vim

На что мы получаем в ответ что-то типа следующего:
MacVim @7.2.snapshot51 (editors)
    MacVim is a GUI version of vim for Mac OS X

vim @7.2.315 (editors)
    Vi "workalike" with many additional features

Из чего мы видим, что MacVim доступен. Полезно также посмотреть какие зависимости он с собой несет:
$ port deps macvim
И, что более важно, какие варианты он имеет:
$ port variants macvim

Вариантов у него достаточно много, но не стоит пугаться.  Вполне можно устанавливать и без вариантов.  Но я предпочитаю вот такую конфигурацию (конкретно для MacVim): +cscope+huge+python26.

Перейдем, собственно, к установке:
$ nice sudo port install macvim +cscope+huge+python26
Что особенного в этой команде: во-первых устанавливать пакеты нужно под root-ом (sudo), иначе они не попадут в /opt/local.  Во-вторых, полезно выполнять установку с низким приоритетом (nice), иначе графическая система Mac OS X очень сильно затормаживается во время компиляции исходников.  У меня при сборке gcc с обычным приоритетом safari подвисал на несколько минут (забавно - но факт!).

При установке MacVim, port скачает сам пакет и все его зависимости, скомпилирует их, установит, а потом удалит все временные файлы.  Этот процесс обычно занимает определенное время, в которое можно сходить попить кофе, можно “красноглазить” (наблюдать за процессом установки), а можно и заниматься другой работой на Маке, благо port запущен с низким приоритетом, и совершенно не помешает вашей работе.

После установки иногда интересно посмотреть, какие исполняемые файлы есть в этом пакете.  Что можно сделать так:
$ port contents macvim | grep local.bin
  /opt/local/bin/mview
  /opt/local/bin/mvim
  /opt/local/bin/mvimdiff
  /opt/local/bin/mvimex

Ну вот и все!  В следующий раз я расскажу как устанавливать из MacPorts Gnome программы, как сделать их более-менее приятно выглядещими и некоторые другие тонкости MacPorts.
Previous post Next post
Up