Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sxiii
7 лет назад

[R] Так три или четыре поста в день в Голос? Делаем статистический анализ в Linux / RStudio на основе кода @oxygendependant (17 шагов) [МАНУАЛ]

Добрый день уважаемые читатели! Вчера я вдохновился статьей, проверяющей ваше вознаграждение за статьи, от @oxygendependant - лично для меня была проблема лишь в том, что техническая часть описана для винды.

Уверен, большинство разработчиков здесь, как и многие пользователи, винду "в глаза" уже давно не видели (я вот примерно с 2008 года), я решил переписать туториал - как запустить код программы (правда, пришлось всё таки изменить одну строку) на Linux.

Приготовьтесь - это руководство не для слабонервных =) Оно съест до 0.5 Гб вашего дискового пространства и до 30 минут времени. Пооооооооооехали!

Напомню, что большинство действий, описанных здесь, можно сделать и через графику, но - дольше и менее удобно :) Руководство подразумевает что у вас Ubuntu 16.10, хотя по факту ни на других версиях Ubuntu, Debian, ни даже на rpm-дистрибутивах мануал будет не сильно отличаться. Для вашего удобства названия шагов я выделил жирным, и к каждому шагу дал комментарии, а также кое-где разместил скриншоты.

Чтобы работать с языком R, нам надо его установить. Корректнее это сделать в Linux, разумеется - добавить репозитории от разработчика.
Шаг 1. Добавляем репозитории R-Cran (R) в наш дистрибутив.

sudo touch /etc/apt/sources.list.d/r-cran.list
sudo chmod 777 /etc/apt/sources.list.d/r-cran.list 
sudo echo "deb http://cran.gis-lab.info/bin/linux/ubuntu yakkety/" >> /etc/apt/sources.list.d/r-cran.list

Теперь, чтобы добавленные репозитории заработали, нам надо загрузить необходимые ключи (подписи) в систему. Шаг 2. Добавляем ключи.

sudo gpg --keyserver keyserver.ubuntu.com --recv 51716619E084DAB9
sudo gpg --export --armor 06F90DE5381BA480  | sudo apt-key add -

Готово, можно перейти к установке R. Шаг 3. Установка R.
sudo apt-get install r-base

Если у вас, как у меня, Ubuntu 16.10, в неё не успели перекочевать 2 пакета для работы R-Studio. Но, благо, версии от предыдущей Ubuntu работают идеально. Скачиваем 2 нужные зависимости (их не было у меня в Ubuntu 16.10). Шаг 4. Скачивание зависимостей R-Studio.

wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1.5ubuntu1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-1_amd64.deb

Устаналиваем оба файла одним махом. Если вы не знаете о wildcard (звёздочка - *), то это удобный способ эксплуатации интерпретатора BASH, где он автоматически подставит все вхождения (совпадения). Шаг 5. Установка зависимостей R-Studio.
sudo dpkg -i libgstreamer*deb

Шаг 6. Скачиваем R-Studio. Последняя версия с официального сайта. Если сейчас не февраль 2017, проверьте, возможно уже вышла более новая - скачайте её через графику (да и установить можете тоже так).
wget https://download1.rstudio.org/rstudio-1.0.136-amd64.deb

Но я всё же предопчитаю установку R-Studio через консоль. Так виден весь процесс и ошибки зависимостей, в случае чего. Шаг 7. Устанавливаем пакет R-Studio.
sudo dpkg -i rstudio*deb

Откроем файл app.R по ссылке ниже, выделим его весь Ctrl+A и скопируем в буфер обмена Ctrl+C. Данный файл подправлен мной относительно github-версии исходника @oxygendependant для работы с FreeTDS на Linux. Исходник был для работы с unixODBC, и я не смог его запустить, как ни старался... Шаг 8. Копирование кода анализатора.
https://pastebin.com/raw/fujTweBC

Шаг 9. Запускаем R-Studio из системного меню. Ура! По идее, у вас должна запуститься без ошибок среда R-Studio в Linux. Если появились какие-то ошибки и среда закрылась, попробуйте загуглить их или напишите мне вопрос в комментариях.

Далее инструкция не сильно отличается от @oxygendependant. Нужно нажать левую иконку с плюсиком и выбрать Shiny Web App... Шаг 10. Создание вашего приложения Shiny Web App.

Шаг 11. Даем проекту имя (на ваш вкус). Выбраем первую опцию - app.R. Создаём проект.

Шаг 12. Вставляем ранее скопированный код в основное поле R-Studio (ссылка на код выше, файл app.R).

Теперь надо доустановить необходимые библиотеки и тулкит FreeTDS для подключения к MSSQL. Шаг 13. Ставим библиотеки FreeTDS, тут всего 5 пакетов.

sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc freetds-bin

Теперь нужно настроить 2 файла для корректной работы FreeTDS. Замечу, если вам не нравится консольный (текстовый редактор) nano, замените его на графический gedit, вам будет проще. А если вы не против nano - напоминаю, сохранить файл там Ctrl+O и Enter, выход из nano - Ctrl+X и Enter. Обратите внимание - не рекомендую оставлять в файлах настройки лишние пробелы или мусор, это может повлиять на работу FreeTDS. Поэтому конфиги - по минимуму! На всякий случай я ещё сделал скрин со всеми 3 файлами конфигурации - odbcinst.ini, freetds.conf и odbc.ini, который, по идее, вам не нужен, но вдруг...

Шаг 14. Отредактируем файл --- /etc/freetds/freetds.conf ---

sudo nano /etc/freetds/freetds.conf

Вписываем туда вот это:

[TS]
    host = sql.golos.cloud
    port = 1433
    tds version = 7.1

Остальное лучше убрать. Шаг 15. Отредактируем файл --- /etc/odbcinst.ini ---

sudo nano /etc/odbcinst.ini

Вписываем это, остальное удаляем или комментируем

[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Шаг 16. Нажимаем "Run App" справа над окном редактора.

RStudio может предложить установить недостающие библиотеки. Надо согласиться, конечно. Если всё пройдет хорошо, приложение запустит ваш стандартный системый браузер (у меня - Firefox), в котором и откроется ваше скомпилированное приложение.

Шаг 17. Вписываем свой ник на Голосе (в единственное поле открывшейся веб-страницы) и вуаля! Вон она, долгожданная статистика. На странице вы увидите, можно ли без штрафа запостить новую заметку, а если нет - то когда можно будет, и какой штраф будет, если запостить прямо сейчас.

Вдруг вы решитесь пройти по этому руководству - пожму вам руку :) И если возникнут сложности на любом этапе, пишите о них, я постараюсь помочь. А если не возникнут - тоже пишите, чтобы я знал, что руководство достаточно качественное и полезное.

Это мой первый опыт работы c R и R-Studio, так что не обессудьте. :)

Спасибо, что читаете меня :)
С уважением,
Айтишник, линуксоид из Ростова-на-Дону
Den Ivanov aka sxiii

P.S. В исходном файле @oxygendependant 41-я строчка не работает:

dbhandle <- odbcDriverConnect('driver={SQL Server};server=sql.golos.cloud;UID=golos;PWD=golos')

Я её заменил на FreeTDS (та ссылка на pastebin выше):

dbhandle <- odbcDriverConnect('Driver=FreeTDS;TDS_Version=7.0;Server=sql.golos.cloud;Port=1433;Uid=golos;Pwd=golos')

по материалам и коду @oxygendependant, а также взяты конфиги с многочисленных форумов

0
812.751 GOLOS
На Golos с January 2017
Комментарии (9)
Сортировать по:
Сначала старые