![]()
Вчера я слегка рассказал об установке XCode, сегодня же “вернёмся к корням” – займёмся установкой программ Open Source. Вместе с XCode поставляются все средства разработки, поэтому мы можем теперь скомпилировать любой пакет (configure, make, make install). Но простая компиляция имеет огромный недостаток – поддерживать программы в актуальном состоянии можно исключительно вручную, нужно регулярно отслеживать выход новых версий десятка используемых пакетов, списывать их, и по-новому компилировать. Решить эту проблему призваны менеджеры пакетов (для Linux это yum, apt, для FreeBSD – система портов).
Под Mac OS X самыми распространёнными являются и . MacPorts использует идеологию BSD, Fink – Debian Linux. Мне больше нравится BSD, поэтому я использую первый менеджер. Его и рассмотрим сейчас.
Установка MacPorts
Для начала необходимо с установочного диска Mac OS X и .
Затем – списать под свою версию Mac OS X (для меня это MacPorts-1.8.0-10.6-SnowLeopard.dmg) и установить его.
MacPorts использует иерархию /opt/local/ как для себя, так и для установки программ. Инсталлятор в том числе прописывает этот путь в переменные окружения:
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
Использование MacPorts
Запускаем Terminal.app. Нужно убедиться, что каталоги /opt прописаны в путях:
ole-mac:~ ctrld$ echo $PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Обновляем порты:
sudo port selfupdate
Ищем нужный порт (здесь sudo необязательно):
ole-mac:~ ctrld$ port search mtr
mtr @0.75 (net)
'traceroute' and 'ping' in a single tool
rmtrash @0.3.3 (sysutils)
move the file to OS X's Trash
Found 2 ports.
Можно посмотреть описание порта:
ole-mac:~ ctrld$ port info mtr
mtr @0.75 (net)
Variants: darwin_10, universal
Description: As mtr starts, it investigates the network connection between the host mtr runs on and HOSTNAME. by sending packets with purposly low TTLs. It continues to send pack- ets with low TTL, noting the response time of
the inter- vening routers. This allows mtr to print the response percentage and response times of the internet route to HOSTNAME. A sudden increase in packetloss or response time is often an indication of a bad (or
simply over- loaded) link.
Homepage: http://www.bitwizard.nl/mtr/
Platforms: darwin
License: unknown
Maintainers: mr_bond@macports.org
Установка порта:
sudo port install mtr
При установке остаются исходные тексты, скомпилированные файлы и прочее. Их можно удалить (вместо mtr, конечно же, подставив нужный порт):
sudo port clean --all mtr
Посмотреть, какие именно файлы устанавливаются с портом:
ole-mac:~ ctrld$ port contents mtr Port mtr contains: /opt/local/sbin/mtr /opt/local/share/man/man8/mtr.8.gz
Деинсталляция порта:
sudo port uninstall mtr
Перечень установленных пакетов:
port installed
Посмотреть, для каких пакетов есть обновления (предварительно нужно сделать selfupdate)
ole-mac:~ ctrld$ sudo port selfupdate ole-mac:~ ctrld$ sudo port outdated The following installed ports are outdated: wget 1.11.4_3 < 1.12_0
Обновление конкретного порта
sudo port upgrade wget
Эта команда не удаляет старый порт из списка, в итоге получается такое:
ole-mac:~ ctrld$ port installed | grep wget wget @1.11.4_3 wget @1.12_0 (active)
Для удаления старой версии нужно использовать ключ "-u" (спасибо за подсказку ):
sudo port -u upgrade wget
Обновление всех портов
sudo port upgrade outdated
Моё окружение
Я периодически использую скомпилированные программы, но сейчас но ноутбуке стоят только самые необходимые порты. К ним относятся:
- . SSH-прокси. Полезная вещь для выхода по ssh через https-proxy (спасибо за подсказку ). Я отдельно расскажу об этой системе.
- . Язык для диалога с интерактивными сервисами, например можно в скрипте ответить на запросы входа по telnet.
- mc. . Кто ещё помнит "Norton Commander" или "Volkov Commander" поймут. Это файловая оболочка под консоль.
- mtr. - незаменимая утилита для поиска сетевых проблем.
- . Система контроля версий SVN.
- . Программа для списывания контента с web/ftp-серверов.
- Эти программы поставились вместе с (системой контроля версий), хоть есть и штатные утилиты:
- . Программа для списывания файлов по сети, поддерживается много протоколов.
- . Система для синхронизации файлов и каталогов.


