Tag: «mac os x»
Проблемы компиляции C++-приложений у Homebrew в OS X 10.9 Mavericks
Есть проблема с Homebrew в OS X 10.9 Mavericks - некоторые пакеты не компилятся из исходных кодов. Касается это программ, написанных на C++. Вчера пришлось потратить некоторое количество времени на её решение.
Судя по гуглению, проблема касается только тех, кто обновлялся в 10.8 на 10.9. У тех, кто ставил систему с нуля - вроде бы всё хорошо.
Вчера получил вот такое:
$ brew update
Updated Homebrew from f949b212 to 9d10c43e.
==> Updated Formulae
gfortran
$ brew install spidermonkey
==> Downloading http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
Already downloaded: /Library/Caches/Homebrew/spidermonkey-1.8.5.tar.gz
==> ../js/src/configure --prefix=/usr/local/Cellar/spidermonkey/1.8.5 --enable-readline --enable-threadsafe --with-system-nspr --enable-macos-target=10.9
==> make
==> make install
Error: spidermonkey dependency readline was built with the following
C++ standard library: libstdc++ (from clang)
This is incompatible with the standard library being used
to build spidermonkey: libc++ (from clang)
Please reinstall readline using a compatible compiler.
hint: Check https://github.com/mxcl/homebrew/wiki/C++-Standard-Libraries
Погуглив и потыкавшись в issues на github'е, пошёл по ссылке, которая в консоли была в последней строчке. Там было:
Есть две стандартные C++ библиотеки, которые поддерживают компиляторы Apple.
По умолчанию в 10.8 и более ранних использовалась libstdc++, она поддерживалась компиляторами Apple GCC, GNU GCC и clang.
В 10.9 по умолчанию используется libc++, она же по умолчанию в clang на более старых платформах при билдинге кода C++11.
Существуют некоторые несовместимости между несколькими стандартными C++ библиотеками, поэтому Homebrew отбраковывает установку софта если его зависимость была собрана с несовместимой C++ библиотекой. Он рекомендует вам собирать дерево зависимостей используя совместимый компилятор.
Если вы обновились до 10.9 с более ранней версии - потому, что по умолчанию теперь как C++ библиотека используется libc++, возможно вы не сможете собрать из исходных кодов программы, чьи зависимости были собраны в 10.8 или более ранних. Если вы читаете это потому, что были направлены сюда ошибкой компиляции, вы можете исправить всё переустановив зависимости пакета, который вы пытаетесь собрать.
Вот, собственно, и решение проблемы. Если вы ставите какой-то пакет (в данном случае spidermonkey) и видите ошибку вроде:
Error: spidermonkey dependency readline was built with the following
C++ standard library: libstdc++ (from clang)
то нужно просто переустановить зависимость, на которую ругается компилятор. В данном случае readline. Просто выполнив команду:
brew reinstall -v readline
После того, как зависимость будет пересобрана - сам пакет установится.
Собственно, я с этим столкнулся, когда пытался установить новую версию CouchDB. Она тянет за собой spidermonkey, которая тянет за собой readline. Обе зависимости пришлось просто переустановить.
Надеюсь заметка кому-нибудь сэкономит время.
comment commentsКак обновить хакинтош с Mac OS X Mountain Lion до Mavericks
Обновил сегодня рабочий хакинтош до 10.9. Всё довольно странно, но реализуемо.
До этого стояла 10.8.5 Mountain Lion. Через Mac App Store скачал обновление Mavericks. Запустил - установщик попросил перезагрузку. После перезагрузки ничего не произошло - просто загрузилась Mountain Lion снова.
Для установки обновления нужно следующее:
comment commentsСоздание ssh-алиасов для терминала в Mac OS X
Шпаргалка.
Всё то же самое, что и в Linux, только в макоси нет команды ssh-copy-id. Чтобы она пявилась:
brew install ssh-copy-id
Дальше всё как в Linux'е:
Чтобы коннектиться к хосту 192.168.1.2 не через ssh root@192.168.1.2, а ssh myhost делаем следующее:
Создаем файл ~/.ssh/config, а в нем пишем:
Host myhost
HostName 192.168.1.2
User root
Port 22
Далее, чтобы не вводить каждый раз заново пароль, генерируем наши ключи
ssh-keygen -t rsa
И копируем публичный ключ на сервер
ssh-copy-id myhost
Обновление ключей:
ssh-add ~/.ssh/id_rsa
comment comments
Потоковое вещание звука на Mac OS X
Так получилось, что в моей комнате колонки находятся в одной части, а комьютер в другой. Провод от колонок тянуть не представляется разумным. Итак - имеются колонки, wi-fi, а также мобильное устройство с wi-fi (в моём случае iPad, но может подойти всё что угодно, что умеет играть по wi-fi музыку). Вспомнил, что есть замечательная программа Nicecast - с её помощью можно организовать в 1 клик онлайн-вещание. Суть в том, чтобы оставаться за своим рабочим местом и рулить музыкой за ним, но играла она в колонках на другой стороне. Кому-то покажется, что проще провод протянуть, но... Fuck yeah, почему бы не заморочиться?
comment comments