воскресенье, 21 октября 2012 г.

MacOS для разработчика 2. MacPorts и Java7



Прошел год с моего перехода под MacOS. За это время я успел поделиться своими впечатлениями как в качестве пользователя (читайте мой twitter), так и в роли разработчика (предыдущая статья “MacOS для разработчика”). Скажу прямо: меня ни разу не посещали мысли о возврате под Windows или Linux. Абсолютно никакого дискомфорта. И... я немного отошел от темы. До недавнего времени мне хватало инструментария из пакета “Command Line Tools” и установленного из pkg PostgreSQL. Но потребности растут: понадобилось поставить nginx и обновить Java до версии 7 в связи со скорым прекращением публичной поддержки версии 6 (февраль 2013). Конечно, можно было превратив MacOS в слакварь, но хотелось боле изящного решения.
MacPorts
Для первой задачи я выбрал систему портов MacPorts.  Работает она так же, как и в прародителе MacOS  FreeBSD’е, с одним лишь отличием - все, что вы ставите, будет помещаться в /opt/local, включая файлы настроек (они попадут в /opt/local/etc). Решение очень грамотное, на мой взгляд, т.к. позволяет избежать конфликтов с системным ПО MacOS.
Установка системы портов происходит безболезненно. На данный момент существуют пакеты (pkg) для “Snow Leopard”, “Lion” и “Mountain Lion”. Скачать их можно здесь. После установки открываем терминал и пробуем выполнить `sudo port -v selfupdate`. Выполнять команду следует в новооткрытой вкладке терминала, т.к. установщик изменил переменную $PATH. После того как вы убедились в свежести базы портов, можно приступить к установки желанного ПО (в нашем случае nginx). Для удобства предлагаю вашему вниманию пошаговую инструкцию:
1. Если вы не знаете название порта, то выполните команду `sudo port search nginx`. В результате мы получим следующее сообщение:
nginx @1.2.4 (www, mail)    High-performance HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
2. Узнав имя порта крайне рекомендую не спешить ставить его, а посмотреть список зависимостей при помощи `sudo port deps nginx`, чтобы потом не удивляться, почему установка заняла пол часа, а в довесок к выбранному пакету вам прилетела еще одна сотня. В нашем случае список зависимостей следующий:
Full Name: nginx @1.2.4_0 Library Dependencies: pcre, zlib
3. Если вы уже в нетерпении набрали заветное `sudo port install nginx`, то стирайте его, т.к. мы еще не определились с необходимыми опциями установки. Тем, кому доводилось ставить ПО из тарболов, должен быть знаком скрипт “./configure”. В системе портов возможные опции установки можно просмотреть при помощи команды `sudo port variants nginx`:
nginx has the variants:    addition: Append text to pages    dav: Add WebDAV support to server    degradation: Allow to return 204 or 444 code for some locations on low memory condition    flv: Add FLV (Flash Video) streaming support to server    geoip: Enable Ngx http GeoIP module (http://wiki.nginx.org/HttpGeoIPModule)    google_perftools: Enable Google Performance Tools profiling for workers    gzip_static: Avoids compressing the same file each time it is requested    image_filter: Transform images with libgd    mail: Add IMAP4/POP3 mail proxy support    mp4: Enables mp4 streaming with seeking ability    perl5: Add perl support to the server directly within nginx and call perl via SSI    random_index: Randomize directory indexes    realip: For using nginx as backend    redis: Enable Ngx HTTP Redis module    secure_link: Protect pages with a secret key    ssl: Add SSL (HTTPS) support to the server, and also to the mail proxy if that is enabled    status: Add /nginx_status support to the server    substitution: Replace text in pages    universal: Build for multiple architectures    upload: Enable Valery Kholodkov's upload module (http://grid.net.ru/nginx/upload.en.html)    upload_progress: Enable Brice Figureau's upload progress module (https://github.com/masterzen/nginx-upload-progress-module)    xslt: Post-process pages with XSLT    zip: Enable Ngx zip download module  (http://code.google.com/p/mod-zip/)
4. А вот теперь уже можно перейти к установке. Если вы хотите поставить стандартную комплектацию, то следует написать `sudo port install nginx`. Для включения опций добавьте их после команды install предваряя знаком ‘+’: `sudo port install nginx +ssl`.
На этом процесс установки заканчивается, но вы согласитесь, что помимо установки ПО его необходимо обновлять, а иногда и удалять. Поэтому для поддержания установленных портов в актуальном состоянии воспользуйтесь следующими командами:
A. После выполнения `sudo port selfupdate` напишите `sudo port outdated`. Этой командой вы выведите список портов, требующих обновления. Для их обновления следует выполнить `sudo port upgrade outdated`. Если же вы хотите обновить конкретный порт, то команда изменится на `sudo port upgrade nginx`.
B. Для удаления портов используйте `sudo port uninstall nginx`.
Подробные инструкции по полному списку команд для системы портов можно посмотреть здесь.

Установка Java7
Скоро бесплатная поддержка Java6 подойдет к концу и пора задуматься о переходе на Java7. Если Java6 устанавливалась в MacOS сама (при помощи настроек системы), то в случае с Java7 ее необходимо скачать с сайта Oracle. Дальнейшие действия зависят от вашей операционной системы. Если вы используете Mountain Lion, то в нем отсутствует возможность выбора предпочтительной JRE, в то время как в Lion эти настройки имеются. Поэтому после установки JDK в Mountain Lion вы сразу получаете Java7 в качестве “JRE по умолчанию”, а в Lion и ее предшественницах вам понадобиться зайти в диалог “Java Preferences” (/Applications/Utilities/) и перетащить Java7 на самый верх.
P.S.: настоятельно рекомендую поставить следующие порты: htop, wget, а для Java-разработчиков использующих protobuf установить protobuf-java.

1 комментарий:

daniel комментирует...

Последнее время я использую Valentina Studio для работы на MAC OS X. Очень хороший и бесплатный инструмент, рекомендую посмотреть.http://www.valentina-db.com/en/valentina-studio-overview

Так же, Вы можете установить Valentina Studio (бесплатно) непосредственно из Mac App Store: https://itunes.apple.com/us/app/valentina-studio/id604825918?ls=1&mt=12

Отправить комментарий