UPD 20.09.2011: Кирилл Воронин правильно заметил: “С тех пор прошел почти год и теперь пользователю достаточно набрать в терминале одну команду”
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
Для общего же развития можете почитать, как устанавливался Homebrew раньше.
Мир технологий подвержен влиянию трендов. Как для 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, который не копирует Resource Forks, perl5.8.x (при том, что штатно стоят 5.8.9 и 5.10.0), curl, в котором отсутствуют несколько протоколов по сравнению со штатным, и дубли zlib, openssl, expat и libiconv. И при этом отказаться от установки зависимостей простым образом не удастся.
Пока я не могу проанализировать достоинства и недостатки новой системы, это придёт в процессе работы. Пока я не уверен насчёт оперативности обновлений пакетов, но растущее community на github позволяет надеяться на лучшее.
Поэтому расскажу как поставить Homebrew и начать использовать. Мне система понравилась - такой локальный идеал для помеси Unix-администратора и программиста (git & Ruby).
Страница проекта: ”Homebrew. The missing package manager for OS X”. Проект размещён на GitHub. Установка описана в официальном Wiki.
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-скрипт install_homebrew.rb. Он расположен на сервисе 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