Добрый день уважаемые читатели! Вчера я вдохновился статьей, проверяющей ваше вознаграждение за статьи, от @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, а также взяты конфиги с многочисленных форумов
Осталось только запустить проверку кол-ва постов онлайн) Для Стимита такой сервис (http://steemdollar.com/limitstatus.php?name=steemit) давно существует, а чем Голос хуже? ))
Собрать на сервер инвестиций чутка и запустить? Почему нет? Для начала, готов такое и на своём VDS поднять. =)
Да, уж! Век живи, век учись! @sxiii вы молодец, что помогаете таким , как я.
@fetta - спасибо - стараюсь! :)
ничего не поняла вообще. )) кроме одного, вы явно в этом всем разбираетесь. ) Теперь я точно знаю, кого буду мучить, если вопросы возникнут. ( сори) .
ПыСы. можно на ты?)
Даже нужно, @tarimta :) Ник в телеграме - @fakesnowden
Даже не знаю, как надо постараться, чтобы постить хотябы 4 годные (уникальные) статьи в сутки...как минимум перфекционизм надо оставить)
Ну, у меня много своих старых материалов, скриптов, наработок. Каждый день нахожу тематическое интересное. Плюс мой проект #краудсписок
Важно взнуздано, внушает!