- PVSM.RU - https://www.pvsm.ru -
Является продолжением предыдущих публикаций [1].
Очень часто попытки применить инструменты DataScience в корпоративной среде встают в полное противоречие с требованиями Службы Информационной Безопасности (СИБ). В мире DataScience рекомендация «поставь с гитхаба» становится практически нерешаемой при полной изоляции аналитической машины от интернета. Тем не менее, задача запуска на linux инфраструктуры R в offline окружении вполне решаемая. Ниже приведу последовательность мантр, которые позволят это исполнить. Если какие-то шаги будут не совсем прозрачными, то скорректирую по мере появления комментариев. Эти же шаги можно использовать и для online инсталляции, пропуская шаги, относящиеся к хитрым трюкам или созданию локальных репозиториев. Собрано по крупицам на основании многократных инсталляций под разнообразные задачи. Практика показала, что тема весьма актуальна.
srchost
— отдельная машина с доступом в Интернет;dsthost
— целевая машина для инсталляции R аналитики;Шаги исполняются на srchost
и dsthost
. В качестве srchost
может выступать и просто Windows машина аналитика, тогда шаги по развертыванию srchost
можно опустить.
На srchost
пакеты устанавливаются из интернета, на dsthost
— из локального репозитория. Далее srchost
будет использоваться для создания miniCRAN.
sudo yum update
sudo yum -y install chrony
sudo systemctl start chronyd
sudo systemctl enable chronyd
sudo systemctl status chronyd
sudo yum -y install epel-release
uname -a
sudo yum -y install wget tree
sudo yum -y install wget libcurl-devel openssl-devel cyrus-sasl-devel libxml2-devel libpng-devel libjpeg-devel python python-devel proj proj-devel mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel gmp-devel mpfr-devel cairo-devel libXt-devel gtk2-devel v8-devel udunits2 udunits2-devel xorg-x11-server-Xvfb unixODBC* postgresql-devel mariadb-devel mysql-devel gcc-gfortran* texlive*, ufw, dejavu*, psmisc, rrdtool, wireshark, lrzsz
sudo yum -y install dejavu-fonts-common dejavu-sans-mono-fonts rrdtool psmisc lrzsz gdal* proj-devel proj-epsg proj-nad protobuf-devel geos-devel
Необходимо для работы RMarkdown
sudo yum -y install texlive texlive-latex texlive-xetex texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexrecommended texlive-xetex-def texlive-collection-xetex
Добавляем поддержку кириллицы:
sudo yum -y install texlive-cyrillic texlive-collection-langcyrillic texlive-cyrillic-doc texlive-framed texlive-titling texlive-*font* linux-liber*
Установка Roboto Condensed:
wget http://li.nux.ro/download/nux/dextop/el7/x86_64//google-roboto-common-1.2-2.el7.nux.noarch.rpm
wget http://li.nux.ro/download/nux/dextop/el7/x86_64//google-roboto-condensed-fonts-1.2-2.el7.nux.noarch.rpm
sudo yum localinstall google-roboto-common-1.2-2.el7.nux.noarch.rpm
sudo yum localinstall google-roboto-condensed-fonts-1.2-2.el7.nux.noarch.rpm
sudo fc-cache
sudo yum -y install R
Используем пакет miniCRAN для инициализации репозитория на srchost
. Предполагаем, что она работает под управлением CentOS и на ней стоит R. Считаем, что локальная директория /opt/miniCRAN
, куда будут загружаться необходимые пакеты, уже создана.
Ставим miniCRAN
sudo -i R
install.packages("miniCRAN") # инсталляция miniCRAN
Выкачиваем нужные нам пакеты (дополнить чего не хватает для вашего проекта) вместе с зависимостями
sudo -i R
library("miniCRAN")
tags <- c("tidyverse", "lubridate", "glue", "scales", "forcats", "readxl", "magrittr", "stringi", "stringr",
"futile.logger", "jsonlite", "Cairo", "RColorBrewer", "extrafont", "hrbrthemes", "DBI", "RPostgreSQL",
"config", "shiny", "shinyjqui", "shinythemes", "shinyBS", "shinyjs", "shinyWidgets", "shinycssloaders",
"formattable", "anytime", "tictoc", "digest", "officer", "openxlsx", "assertr", "checkmate", "udunits2",
"devtools", "DT", "data.table")
pkgList <- pkgDep(tags, suggests=TRUE, enhances=FALSE)
makeRepo(pkgList, path="/opt/miniCRAN", repos="https://cloud.r-project.org/", type=c("source"))
на dsthost
вручную скопировать содержимое /opt/miniCRAN
На dsthost
в файле /usr/lib64/R/library/base/R/Rprofile
дописываем
local({
uri <- paste0("file://", normalizePath("/opt/miniCRAN", winslash="/"))
options(repos = c(CRAN = uri))
})
На srchost
stringi
./opt/icu55/data
./usr/lib64/R/etc/Renviron
:
# manual ICUDT
ICUDT_DIR=/opt/icu55/data
# --------------------
"Установка Microsoft ODBC Driver for SQL Server для Linux и macOS" [3]:
sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql
на dsthost
sudo -i R
update.packages(ask=FALSE)
udunits2
После установки библиотек ищем расположение h файлов следующей командой find . -type f -name udunits2.h
и запускаем инсталляцию пакета из консоли R со следующими параметрами:
install.packages("udunits2", configure.args='--with-udunits2-include=/usr/include/udunits2/')
install.packages()
sudo -i R
install.packages(c("tidyverse", "lubridate", "glue", "scales", "forcats", "readxl", "magrittr", "stringi", "stringr",
"futile.logger", "jsonlite", "Cairo", "RColorBrewer", "extrafont", "hrbrthemes", "DBI", "RPostgreSQL",
"config", "shiny", "shinyjqui", "shinythemes", "shinyBS", "shinyjs", "shinyWidgets", "shinycssloaders",
"formattable", "anytime", "tictoc", "digest", "officer", "openxlsx", "assertr", "checkmate", "udunits2", "devtools", "DT", "data.table"))
vi /etc/environment
R_CONFIG_ACTIVE=production
source /etc/environment
echo $R_CONFIG_ACTIVE
sudo systemctl restart shiny-server
на dsthost
Завести отдельного пользователя с uid > 100! от лица которого будем заходить в RStudio Server:
sudo useradd ruser
sudo passwd XXX
sudo usermod -aG wheel ruser # to make user 'sudo-user'
на srchost
dsthost
rpm -ihv ./rstudio-server ... .rpm
на srchost
rpm -ihv ./shiny-server ... .rpm
Shiny Server
http://<server-ip>:3838/
— общая стартовая страница с приложениямиhttp://<server-ip>:8787
на srchost
:
cd /tmp
&& git clone https://github.com/path1/pack.git
(from bash on local server)pack
to /tmp
folder in remote server dsthost
devtools::install_local(path="/tmp/pack")
~/R/
пользователя ruser/srv/shiny-server
командой ln -s <SOURCE> <LINK_NAME>
:sudo ln -s /home/ruser/R/<app> /srv/shiny-server/<app>
chmod -R go+rwx /home/ruser
Предыдущая публикация — «Использование R для «промышленной» разработки» [1].
Автор: i_shutov
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/data-mining/271010
Ссылки в тексте:
[1] предыдущих публикаций: https://habrahabr.ru/post/342254/
[2] ICU: https://raw.githubusercontent.com/gagolews/stringi/master/src/icu55/data/icudt55l.zip
[3] "Установка Microsoft ODBC Driver for SQL Server для Linux и macOS": https://docs.microsoft.com/ru-ru/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server
[4] Страница загрузки: https://www.rstudio.com/products/rstudio/download-server/
[5] Страница загрузки: https://www.rstudio.com/products/shiny/download-server/
[6] Источник: https://habrahabr.ru/post/345000/?utm_campaign=345000
Нажмите здесь для печати.