![]()
Мир технологий подвержен влиянию трендов. Как для web-сервисов сейчас трендом является NoSQL, так для любителей Unix под Mac – Homebrew.
Homebrew – это новый и многообещающий менеджер пакетов. MacPorts мне уже давно не нравится тем, что он начинает тащить слишком много всего, что и так есть штатно в системе (например, perl).
Продемонстрирую :
$ port deps git-core
Full Name: git-core @1.7.0.2+doc
Runtime Dependencies: rsync, perl5, p5-error
Library Dependencies: curl, zlib, openssl, expat, libiconv
При установке пакета поставятся rsync, который , perl5.8.x (при том, что штатно стоят 5.8.9 и 5.10.0), curl, в котором отсутствуют несколько протоколов по сравнению со штатным, и дубли zlib, openssl, expat и libiconv. И при этом отказаться от установки зависимостей простым образом не удастся.
Пока я не могу проанализировать достоинства и недостатки новой системы, это придёт в процессе работы. Пока я не уверен насчёт оперативности обновлений пакетов, но растущее community на github позволяет надеяться на лучшее.
Поэтому расскажу как поставить Homebrew и начать использовать. Мне система понравилась – такой локальный идеал для помеси Unix-администратора и программиста (git & Ruby).
Страница проекта: ““. Проект размещён . Установка описана .
XCode
Нужен XCode. Если не понятно зачем, то можно спокойно перестать читать эту статью.
Желательно удалить каталоги /usr/local/lib и /usr/local/include
У меня там было почти пусто, разве что стояли библиотеки для cli Handbrake, поэтому спокойно удалил lib и include. Но в вашем случае нужно взвешивать – например, если вы сами ставили mc, то он перестанет работать. С другой стороны вы потом сможете переставить все пакеты сами. Но это решение целиком за вами, я не буду ничего рекомендовать.
Удаление MacPorts (необязательно)
MacPorts я давно не использую, поэтому решил полностью удалить его вместе со всеми пакетами. Как это сделать, вы можете посмотреть детальнее .
Напомню – если вам для работы нужны какие-либо пакеты, установленные в MacPorts, или вы используете MySQL, Apache и т.п., то я не рекомендую удалять MacPorts. Вы рискуете остаться без своих инструментов в момент, когда они вам очень будут нужны. Также если вы решили всё-таки переустанавливать всё с нуля, то лучше подождать со сносом до окончания установки новых пакетов в Homebrew – вы можете столкнуться с тем, что какой-то пакет был скомпилирован с особенной опцией.
Повторяю, я на ноутбуке уже давно не пользовался пакетами MacPorts, поэтому спокойно могу их снести. Для начала я составил список того, что будет нужно переустановить в новой системе:
$ port installed ... corkscrew @2.0_0+darwin_i386 (active) lftp @4.0.2_0 (active) lynx @2.8.6rel.5_1+ssl (active) mtr @0.75_0+darwin_10 (active) ...
Удаляю все установленные пакеты:
$ sudo port -f uninstall installed
Удаляю все следы MacPorts, включая /opt/local:
$ 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
Готово. Если в этот момент вы вспомнили о важном файле, который вы только что удалили, то вспоминайте, как пользоваться Time Machine. Ведь вы же делаете регулярные бекапы, не так ли?
Путь в переменных окружения
Путь к /usr/local/bin должен быть в переменной окружения $PATH. Я помещаю её в ~/.profile:
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/bin:/usr/local/sbin:/usr/local/git/bin" export PATH
В определённых случаях может понадобиться модифицировать файл ~/.MacOSX/environment.plist, добавив туда переменную окружения PATH:
Вы заметили путь к GIT – я его описывал в статье Установка Git под Mac OS X. В установочном пакете есть скрипт, который автоматически правит ~/.MacOSX/environment.plist.
Установочный скрипт
Идём на github ruby-скрипт . Он расположен на сервисе gist.github – это очень интересный сервис для обмена фрагментами кода.
Можно его списывать в браузере (будет сформирован и списан архив tar.gz, его нужно будет развернуть):
Или же в консоли:
$ curl http://gist.github.com/gists/323731/download -o install_homebrew.tar.gz $ tar xvfz install_homebrew.tar.gz x gist323731-3535cf3d066ed38db4e99d3f1f4a409fc07eda54/ x gist323731-3535cf3d066ed38db4e99d3f1f4a409fc07eda54/install_homebrew.rb $ cd gist323731* $ chmod +x install_homebrew.rb
Установка Homebrew
Запускаем скрипт под пользователем без всяческого sudo:
$ ./install_homebrew.rb
С первого раза установить скорее всего не получится, и нужно будет проделать некоторые манипуляции.
Каталог /usr/local мог быть раньше создан с разнообразными неправильными правами, поэтому по результату выполнения скрипта нужно их подправить. Например, если права были 777, то будет сообщение:
Press enter to continue ./install_homebrew.rb:44: warning: Insecure world writable dir /usr/local in PATH, mode 040777
Нужно прервать скрипт и выполнить команду:
$ sudo chmod 755 /usr/local
Ещё очень важно поменять группу для /usr/local с wheel на staff:
$ sudo chgrp -R staff /usr/local $ sudo chmod 775 /usr/local/
После очередной итерации Homebrew поставился:
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/Formula/...
/usr/local/Library/Homebrew/...
Press enter to continue
==> Downloading and Installing Homebrew...
==> Installation successful!
Yay! Now learn to brew:
brew help
Использование Homebrew
Поиск:
$ brew search git
Информация по пакету
$ brew info git
Установка пакета:
$ brew install git
Обновление Homebrew (нужен git)
$ brew update
Список установленных пакетов:
$ brew list
Удаление пакета:
$ brew uninstall mc
Список пакетов, для которых есть обновления:
$ brew outdated
Мои любимые пакеты
Восстанавливаю пакеты, которые я использовал в MacPorts.
$ brew install mtr $ brew install corkscrew $ brew install lftp $ brew install lynx


