Установка MacPorts на MacOS

Установка MacPorts на MacOS

Недавно купил себе макбук, т.к мак ОС основана на BSD,  значит можно установить порты (нечто подобное как и у FreeBSD, NetBSD, OpenBSD) для установки софта не с AppStore,  а из сторонних разработчиков. Мне очень захотелось поставить порты на свой мак и посмотреть что и как работает, по этому я решил написать статью «Установка MacPorts на MacOS»  и дать небольшую инструкцию по установке и удаления MacPorts на MacOS. Мне, чесно говоря, немного не привычно работать с macOS, хотя очень хорошо реалезовали ее.

MacPorts является простой в использовании для компиляции, установки и управления программным обеспечением с открытым исходным кодом. MacPorts может быть концептуально разделена на две основные части: инфраструктуры, известный как MacPorts base  и множество доступных портов. MacPorts представляет собой набор спецификаций, содержащихся в Portfile и который определяет приложение, его характеристики или специальные инструкции, необходимые для установки программ. Это позволяет использовать одну команду, чтобы MacPorts начал автоматически загружать, компилировать и устанавливать приложения и библиотеки. Но с помощью MacPorts управлять вашеим ПО с открытым исходным кодом предоставляет несколько других существенных преимуществ.

Например, MacPorts:

  • Устанавливает автоматически необходимое программное обеспечение со всеми зависимостями для данного порта.
  • Обеспечивает удаление и апгрейдов установленных портов.
  • Позволяет создавать предварительно скомпилированные бинарные инсталляторы перенесенных приложений, чтобы быстро установить программное обеспечение на удаленных компьютерах без компиляции из исходных кодов.

MacPorts разработан на OS X, хотя  он может работать и на других Unix-подобных систем, особенно основанных на Berkeley Software (BSD). На практике, установка портов работает только на OS X. MacPorts base может быть скомпилирована на Linux (и, возможно на других POSIX-совместимых системах), где он в основном используется для создания зеркала и генерации файлов поддержки для установки на OS X.

Существует два способа установить MacPorts на MacOS и сейчас я расскажу что и как нужно делать и дам советы (но это чисто мое мнение).

1. Установка MacPorts на MacOS из пакета

Этот способ наиболее распространенный и самый легкий, но мне он не нравится ( но об этом попозже).

Чтобы установить порты на мак ОС, нужно скачать пакет и установить его, по этому скачайте и установите под свою версию мак ОС.

Для OS X 10.9 Mavericks:
MacPorts_Mavericks.pkg

Для OS X 10.8 Mountain Lion:
MacPorts_MountainLion.pkg

Для OS X 10.7 Lion:
MacPorts_Lion.pkg

После скачивания, запустите и установить данный пакет. Вот и все, очень все просто. Чтобы проверить версию портов, выполните:

# port version

И покажет версию данных портов.

Хочу сказать что это работает, но есть одно но, если захотите установить напимер Homebrew (менеджер, установщик), то не будет работать в данном примере, собсвенно я с этим и столкнулся.

Чтобы удалить порты из мак ОС, выполните:

# sudo port -fp uninstall installed

Как пользоваться macports?

Нужно выполнить команду, например на пакете wine:

# sudo port install wine-devel

Кто знаком с FreeBSD или другими BSD, то у того не должно быть проблем, хотя и у обчного пользователя тоже, нужно понять работу.

2. Установка MacPorts на MacOS из исходников

Если вы установили MacPorts используя 1-ю установку (Установка MacPorts на MacOS из пакета), пропустить этот раздел. Для установки MacPorts из исходного кода, выполните следующие действия.

Загрузите и извлеките MacPorts 2.3.1 архив. Либо сделать с помощью браузера и Finder, или использовать данные команды в окне терминала:

# sudo mkdir /usr/local/src
# cd /usr/local/src
# curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.3.1.tar.bz2
# tar xf MacPorts-2.3.1.tar.bz2

После скачивания и распаковки архива нужно перейти в директорию и собрать данные исходники:

# cd MacPorts-2.3.1/
# sudo ./configure && sudo make && sudo make install

Но желательно поменять директорию ( дописать ./configure —prefix=/usr/loca/macports как для примера), делается это для того чтобы не было конфликтов с другими программами, как я говорил выше.

Установка Subversion (обновление)

— Проверьте источник MacPorts

Выберите место для хранения рабочую копию кода MacPorts. Для этого примера будет использоваться /opt/mports , но вы можете поместить источник в любом месте. Этот пример создаст /opt/mports/trunk, содержащий все необходимое для MacPorts.

# mkdir -p /opt/mports
# cd /opt/mports
# svn checkout https://svn.macports.org/repository/macports/trunk

— Сборка и установка MacPorts

MacPorts использует Autoconf и мейкфайлы для установки. Эти команды будут собирать и устанавливать MacPorts в  /opt/local. Вы можете добавить опцию —prefix в ./configure при необходимости изменить директорию для MacPorts:

# cd /opt/mports/trunk/base
# ./configure --enable-readline
# sudo make && sudo make install && make distclean

— (Необязательно) Настройте MacPorts использование информации о порте из Subversion

Этот шаг полезен, если вы хотите сделать разработку порта. Откройте:

# sudo vim  /opt/local/etc/macports/sources.conf

Последняя строка, которая должна выглядеть следующим образом:
rsync://rsync.macports.org/release/tarballs/ports.tar [default]

Измените его на:
file:///opt/mports/trunk/dports [default]

Теперь MacPorts будет искать Portfile в рабочей копии и использовать Subversion вместо Rsync чтобы обновить дерево портов.

— Переменное окружение

В зависимости от вашей оболочки и какие конфигурационные файлы уже существуют, программа установки может использовать .profile, .bash_login, .bash_profile, .tcshrc, or .cshrc.

Сценарий postflight автоматически устанавливает переменную PATH и в возможно соответствующих путях и отображает переменные в соответствии с правилами, описанными ниже. Если текущий файл конфигурации оболочки существует во время установки он будет переименован в «mpsaved_$timestamp». Эта установка MacPorts от исходного кода должно изменить свое окружение вручную, используя правила в качестве ориентира.

Требуется: переменная PATH

# export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Дополнительно: переменная MANPATH

Если до MacPorts установка переменная MANPATH существует в текущем .profile который содержит ни значение ${prefix}/share/man, ни пустые значения, сценарий postflight  устанавливает переменную MANPATH, как показано ниже. В противном случае, переменная MANPATH опущено.

# export MANPATH=/opt/local/share/man:$MANPATH

Вот несколько примеров из путей, которые содержат пустые значения:
/usr/share/man:
:/usr/share/man
/usr/share/man::/usr/X11R6/man

Дополнительно: переменная DISPLAY 

При установке на версии Mac OS X ранее, чем 10.5 (Leopard), и, если файл конфигурации оболочки существует на момент установки MacPorts без переменной DISPLAY, сценарий postflight устанавливает переменную DISPLAY, как показано ниже. Переменная DISPLAY всегда пропускается на Mac OS X 10.5 или выше.

# export DISPLAY=:0.0

Проверка конфигурационных файлов.

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

# env

MANPATH=/opt/local/man:/opt/local/man:
TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TERM=xterm-256color
CLICOLOR=1
TMPDIR=/var/folders/9s/_8tkgh_x58b4r9fgbll6z3sm0000gn/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.Qdwv2GyRJq/Render
TERM_PROGRAM_VERSION=343
TERM_SESSION_ID=99F29E02-D855-433C-9B02-E11106252DBE
USER=captain
ENV=/Users/captain/.bashrc
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.qqSEEEVGtU/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0x7:0x31
LSCOLORS=Gxfxcxdxbxegedabagacad
PATH=/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin
PWD=/Users/captain
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/captain
LOGNAME=captain
LC_CTYPE=UTF-8
DISPLAY=/private/tmp/com.apple.launchd.DHKGSlD7K0/org.macosforge.xquartz:0
_=/usr/bin/env

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

MacPorts будет проверять переменные и определит редактор по умолчанию.

Например, чтобы использовать редактор нано, добавьте в ваш bash config:

# export EDITOR=/usr/bin/nano

Чтобы использовать удобный редактор GUI TextWrangler (требуется установка), добавьте эту строку:

# export EDITOR=/usr/bin/edit

Чтобы сохранить текстовый command-line редактор по умолчанию при использовании графического редактора с Portfile, то нужно добавить следующее:

# export EDITOR=/usr/bin/vi
# export MP_EDITOR=/usr/bin/edit

Удаление MacPorts

Чтобы удалить все оставшиеся следы MacPorts, выполните следующую команду в терминале. Если вы изменили префикс, applications_dir или frameworks_dir от значения по умолчанию, то замените /opt/local, замените /Applications/MacPorts  с applications_dir, и / или добавьте свой frameworks_dir в список, соответственно.

# sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

На этом «Установка MacPorts на MacOS» пока что все, надеюсь была полезная статья.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.