Как рубисту пережить апдейт OSX 10.10 Yosemite
На днях вышла очередная версия OSX 10.10 Yosemite, и если для обычных пользователей маков вопрос «обновляться или нет» не стоит, то разработчики подобным вопросом вполне могут задаться. Редкий большой апдейт прошлых лет не приносил нам тех или иных проблем с софтом, библиотеками и консолью. Не может похвастаться отсутствием проблем и нынешнее обновление.Одним из лучших советов тут конечно было бы подождать месяц-другой и только затем обновляться — избавит от многих проблем и потери времени. Но ждать не хочется, а посему после обновления у вас гарантированно всё сломается (речь далее в основном идёт о ruby и rails): будут выскакивать seg fault’ы, не будут собираться некоторые гемы, возникнут проблемы со скриптами в консоли.Исправление некоторых проблем нагуглить будет легко, а для некоторых предлагают лишь хаки в виде задания дополнительных параметров компиляции и переменных окружения.У автора ушла большая часть выходного на полное обновление системы и настройку рабочего окружения, в результате чего родилась описанная ниже инструкция. Если вы рубист, разрабатывает на маке и собираетесь обновляться, то следование следующим пунктам вам очень поможет сэкономить время.
Первым делом после обновления OSX запустите Xcode, установите обновления и согласитесь с новой лицензией. Xcode почему-то в апсторе доступен только 6.0.1, хотя для нормальной работы в Yosemite требуется 6.1, поэтому скачайте и установите Xcode 6.1 по этой ссылке, после чего в консоли выполните xcode-select --install В Yosemite сделали что-то с консолью, из-за чего переменные окружения в текущей сессии терминала и переменные окружения при выполнении скриптов/программ различаются, а если точнее, то изменения, внесённые в PATH в ~/.bashprofile или ~/.zshrc не будут подхватываться. В чём проблема, я не знаю, но на практике оказываются как бы 2 переменные PATH: та, которая содержит изменения из вашего ~/.bashrc, и та, которая в систему по дефолту.Из-за этого в консоли начинают происходить множество косяков, о которых жалуются повсюду в интернетах. Чтобы избежать непонятных проблем, в настройках консоли нужно явно прописать login shell »/usr/bin/login -f имя_вашего_пользователя». Далее следует обновить homebrew, который у вас работать не будет из-за прописанной в нём 1.8 версии руби. cd /usr/local git pull Следующим пунктом будет установка gcc и его зависимостей, если он у вас раньше не стоял brew install gcc Пора обновлять пакеты homebrew. brew upgrade Что-то может быть до сих пор не так, поэтому убедитесь, что brew doctor не выдаёт никаких проблем. Обновляем pow, т.к. в Yosemite выпилили какие-то deprecated api, используемые в старом pow’е. curl get.pow.cx | sh Теперь можно переустановить руби rvm reinstall 2.1.3 И последним пунктом будет постгрес, если вы его конечно используете. В Yosemite он у вас он перестанет запускаться, и чтобы его починить, создайте три каталога mkdir /usr/local/var/postgres/pg_tblspc mkdir /usr/local/var/postgres/pg_twophase mkdir /usr/local/var/postgres/pg_stat_tmp После произведённых выше манипуляций bundle update в вашем проекте наконец-то должен корректно отработать и без ошибок собрать все гемы.Приятной работы.