#mysql #r #bash
#mysql #r #bash
Вопрос:
Я пытаюсь установить RMySQL на свой mac (mavericks), и он выдает ошибку, когда я пытаюсь собрать его из исходного кода, говоря:
Ошибка конфигурации: не удалось найти каталоги, включающие установку MySQL, и / или библиотеки. Вручную укажите расположение библиотек MySQL и файлов заголовков и повторно запустите R CMD INSTALL.
Инструкции:
Определите и экспортируйте 2 переменные оболочки PKG_CPPFLAGS и PKG_LIBS, чтобы включить каталог для заголовочных файлов (* .h) и библиотек, например (используя синтаксис Bourne shell):
export PKG_CPPFLAGS=»-I» export PKG_LIBS=»-L -lmysqlclient» Повторно запустите команду R INSTALL:
R CMD INSTALL RMySQL_.tar.gz
Я попытался следовать инструкциям, введя:
export PKG_CPPFLAGS=»-I/usr/local/mysql/include» export PKG_LIBS=»-L/usr/local/mysql/ lib -lmysqlclient»
но когда я повторно запускаю RMySQL, он все равно не работает. Более того, если я наберу
$ PKG_LIBS
чтобы узнать, что содержит эта переменная, я получаю
-bash: -L /usr/local/mysql / lib: нет такого файла или каталога ‘
Я знаю, что /usr/local/mysql/lib существует, и он содержит заголовок MySQL. Я неправильно понял инструкции?
Я спрашиваю здесь только после больших усилий по поиску решений и / или обходных путей. Иногда хреново быть новичком.
Комментарии:
1. Вы перешли по этой ссылке ?
2. Да, я это сделал. Не повезло. спасибо за попытку.
Ответ №1:
Я предполагаю, что вы пытаетесь заставить RMySQL работать на R 3.1.0 в Mavericks? Вместо того, чтобы беспокоиться об экспорте переменных и т.д., вот простое и понятное решение для вас, которое должно избежать головной боли.
Ссылка на установку RMySQL Pascal, представленная выше, действительно является вашим решением. Вероятно, вы просто спотыкаетесь о синтаксисе или заставляете вещи работать с терминала.
Даже если вы «новичок», вы должны быть в состоянии заставить это работать. Я попытаюсь предложить здесь «руководство для манекена», поскольку, держу пари, есть много других, у которых тоже есть эта проблема, даже после попытки прочитать readme установки RMySQL.
Я бы поспорил с очень высокой уверенностью, что проблема заключается только в том, что вы неправильно указываете расположение библиотек и папок заголовков для компиляции.Внимательно прочитайте ошибки при попытке компиляции… ошибки, вероятно, скажут вам, что файл / заголовок отсутствует или какой-либо файл .so (общий объект) отсутствует.
Один простой способ скомпилировать RMySQL из исходного кода на R 3.1.0, mavericks заключается в следующем (это не требует от вас установки каких-либо переменных среды, никакого редактирования файла Renviron и т. Д.):
-
Работает ли MySQL сам по себе? т. Е. Вы можете открыть / запустить его без проблем? Если нет, сначала исправьте это.
-
Найдите точное местоположение вашей установки mysql. Для меня, на Mavericks, я вижу mysql, установленный по адресу /usr/local/mysql-5.6.17-osx10.7-x86_64 (ваш номер версии может отличаться). Существует также другая папка /usr/local/mysql, которая является псевдонимом /usr/local/mysql-5.6.17-osx10.7-x86_64 (/usr/local/mysql находит текущую версию mysql, которую вы используете, если, я думаю, существует несколько файловых папок mysql). В этом каталоге я вижу два подкаталога (среди многих), которые называются «include» и «lib». Посмотрите; «include» будет содержать заголовочные файлы (include, как в #include и т. Д., В простых программах на C ). Папка «lib» содержит скомпилированный исходный код библиотеки mysql.
-
Простой способ скомпилировать и установить RMySQL, который не совсем соответствует предложенному способу сделать это в руководстве по установке, заключается в следующем. Обратите внимание, что это делает то же самое, что и в руководстве по установке, только немного проще, поскольку это одна командная строка из терминала, как только вы узнаете, где находится ваша папка установки mysql. Перейдите к терминалу и введите точно следующее, с одним пробелом между каждым фрагментом (с именем вашей папки mysql, соответствующим номеру версии):
PKG_CPPFLAGS=»-I/usr/local/mysql/include/» PKG_LIBS=»-L/usr/local/mysql /lib/ -lmysqlclient» R CMD INSTALL RMySQL_0.9-3.tar.gz
ИЛИ (то же самое, просто больше ввода)
PKG_CPPFLAGS=»-I/usr/local/mysql-5.6.17-osx10.7-x86_64/include/» PKG_LIBS=»-L/usr/local/mysql-5.6.17-osx10.7-x86_64/lib/ -lmysqlclient» R CMD INSTALL RMySQL_0.9-3.tar.gz
Примечание для чайников: при запуске этой команды убедитесь, что вы выполняете это из терминала в каталоге, который содержит RMySQL_0.9-3.tar.gz файл (или как бы там ни называлась ваша папка, содержащая исходный код RMySQL)
и RMySQL компилируется!
Не бойтесь пытаться скомпилировать исходный код — это не только для «программистов на компилируемом языке» или «выпускников компьютерных наук». В большинстве случаев сбой компиляции происходит только потому, что файлы «отсутствуют» (в исходном коде нет повреждений) — пользователь неправильно указал расположение заголовка и библиотек (общих объектов). Теперь натяни свои большие трусики для мальчиков / девочек и просто сделай это …. это просто.
Примечания для людей, не имеющих представления о компиляции исходного кода для пакетов на R:
a) обратите особое внимание на интервал в приведенном выше, иначе это может не сработать. Не ставьте никаких пробелов между = и именами переменных / файлов (например, не пытайтесь указывать в приведенном выше PKG_CPPFLAGS =»-I/usr/local/mysql/include/», так как это не сработает)
б) При компиляции вы хотите указать расположение файлов заголовков и файлов библиотеки, и это то, что делают «-I / …. » и «-L / ….». Каталог -I указывает расположение файлов заголовков, а -L — расположение файлов библиотеки. Для файлов библиотеки также требуется расширение -l[имя библиотеки] (-l является сокращением от -lib в именах объектов библиотеки).
c) Обратите внимание, что в каталоге /usr/local/mysql-5.6.17-osx10.7-x86_64/lib/ я не вижу файла с именем «lmysqlclient» или даже «libmysqlclient», но я вижу файлы с именами (среди прочих) «libmysqlclient.a» и «libmysqlclient.18.dylib». Так что не беспокойтесь о неправильной установке MySQL, если вы не видите файл с именем «libmysqlclient» в папке lib.
Комментарии:
1. У меня недостаточно очков репутации, чтобы поддержать ваш ответ, но я бы хотел. Ваш ответ был героическим. Спасибо, что нашли время! Я уверен, что куча других людей столкнется с этой проблемой.
2. На случай, если это поможет другим людям, следующая команда сработала и для меня (я только что получил эту работу, когда увидел ваш ответ FXQuantTrader): R CMD INSTALL —configure-args=’—with-mysql-inc=/usr/local/mysql/include —with-mysql-lib=/usr/local/mysql/lib —with-mysql-dir=/usr/local/mysql’ RMySQL_0.9-3.tar
3. Нет проблем, рад помочь