...

понедельник, 20 октября 2014 г.

Как рубисту пережить апдейт OSX 10.10 Yosemite

На днях вышла очередная версия OSX 10.10 Yosemite, и если для обычных пользователей маков вопрос «обновляться или нет» не стоит, то разработчики подобным вопросом вполне могут задаться. Редкий большой апдейт прошлых лет не приносил нам тех или иных проблем с софтом, библиотеками и консолью. Не может похвастаться отсутствием проблем и нынешнее обновление.

Одним из лучших советов тут конечно было бы подождать месяц-другой и только затем обновляться — избавит от многих проблем и потери времени. Но ждать не хочется, а посему после обновления у вас гарантированно всё сломается (речь далее в основном идёт о ruby и rails): будут выскакивать seg fault'ы, не будут собираться некоторые гемы, возникнут проблемы со скриптами в консоли.

Исправление некоторых проблем нагуглить будет легко, а для некоторых предлагают лишь хаки в виде задания дополнительных параметров компиляции и переменных окружения.



У автора ушла большая часть выходного на полное обновление системы и настройку рабочего окружения, в результате чего родилась описанная ниже инструкция. Если вы рубист, разрабатывает на маке и собираетесь обновляться, то следование следующим пунктам вам очень поможет сэкономить время.



  1. Первым делом после обновления OSX запустите Xcode, установите обновления и согласитесь с новой лицензией.

  2. Xcode почему-то в апсторе доступен только 6.0.1, хотя для нормальной работы в Yosemite требуется 6.1, поэтому скачайте и установите Xcode 6.1 по этой ссылке, после чего в консоли выполните

    xcode-select --install




  3. В Yosemite сделали что-то с консолью, из-за чего переменные окружения в текущей сессии терминала и переменные окружения при выполнении скриптов/программ различаются, а если точнее, то изменения, внесённые в PATH в ~/.bashprofile или ~/.zshrc не будут подхватываться. В чём проблема, я не знаю, но на практике оказываются как бы 2 переменные PATH: та, которая содержит изменения из вашего ~/.bashrc, и та, которая в систему по дефолту.

    Из-за этого в консоли начинают происходить множество косяков, о которых жалуются повсюду в интернетах. Чтобы избежать непонятных проблем, в настройках консоли нужно явно прописать login shell "/usr/bin/login -f имя_вашего_пользователя".



  4. Далее следует обновить homebrew, который у вас работать не будет из-за прописанной в нём 1.8 версии руби.

    cd /usr/local
    git pull




  5. Следующим пунктом будет установка gcc и его зависимостей, если он у вас раньше не стоял

    brew install gcc




  6. Пора обновлять пакеты homebrew.

    brew upgrade




  7. Что-то может быть до сих пор не так, поэтому убедитесь, что brew doctor не выдаёт никаких проблем.

  8. Обновляем pow, т.к. в Yosemite выпилили какие-то deprecated api, используемые в старом pow'е.

    curl get.pow.cx | sh




  9. Теперь можно переустановить руби

    rvm reinstall 2.1.3




  10. И последним пунктом будет постгрес, если вы его конечно используете. В 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 в вашем проекте наконец-то должен корректно отработать и без ошибок собрать все гемы.

Приятной работы.


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

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