Установка R Commander (на примере openSUSE)

valentin
valentin написал #1 Автор

Возникла надобность установить R и R_Commander к нему.

R Commander — графический интерфейс для языка программирования R.
...представляет свободную альтернативу коммерческому пакету SPSS.

Установить, в точности следуя существующим инструкциям, не получилось; немного дополню, напишу как я ставил.

На сайте программы есть инструкция по установке, из которой можно узнать, что устанавливать нужно из коммандной строки самого R (вызванного от имени суперпользователя: sudo R) коммандой:
install.packages("Rcmdr", dependencies=TRUE)
Установка происходит путём компиляции из исходников (в автоматическом режиме), если не установлены dev-пакеты, компилятор будет ругаться и довольно ясно даст понять, что хорошо бы установить их.

На скриншоте пакеты, которые я ставил:


Эти пакеты я устанавливал с помощью http://software.opensuse.org/search
При очередной попытке установить терминал сообщил:

make: gfortran: Команда не найдена

Поиск по слову gfortran выдал следующее:

~> cnf gfortran
Программу 'gfortran' можно найти в следующих пакетах:

  • gcc-fortran [ путь: /usr/bin/gfortran, репозиторий: zypp (openSUSE 11.2-0) ]
  • gcc-fortran [ путь: /usr/bin/gfortran, репозиторий: zypp (repo-oss) ]
    Try installing with:
    sudo zypper install gcc-fortran

Установил.

~> sudo zypper install gcc-fortran

Следующее и, в общем-то, последнее, в чём была запинка, это сообщение в конце установки:

Предупреждение
In install.packages("Rcmdr", dependencies = TRUE) :
установка пакета 'RODBC' имеет ненулевой статус выхода

Установил пакеты unixODBC и unixODBC-devel

~> sudo zypper in unixODBC unixODBC-devel

Далее, повторил комманду установки R Commander, немного насторожило сообщение (орфография сохранена):

Commander GUI можно вызвать только из итнерактивной сессии

При попытке запуска из той же сессии (комманда library(Rcmdr)):

library(Rcmdr)
Error : .onAttach failed in attachNamespace() for 'Rcmdr', details:
call: structure(.External("dotTclObjv", objv, PACKAGE = "tcltk"), class = "tclObj")
error: [tcl] invalid command name "font".
Ошибка: не удалась загрузка пакета/пространства имен для 'Rcmdr'

Графическая оболочка запускается из консоли самого R, вызванного от имени обычного пользователя (комманда R в терминале, с учётом регистра(!)), сначала:

~> R  
R version 2.11.0 Under development (unstable) (2010-03-06 r51213)  
Copyright (C) 2010 The R Foundation for Statistical Computing  
ISBN 3-900051-07-0  

R -- это свободное ПО, и оно поставляется безо всяких гарантий.  
Вы вольны распространять его при соблюдении некоторых условий.  
Введите 'license()' для получения более подробной информации.  

R -- это проект, в котором сотрудничает множество разработчиков.  
Введите 'contributors()' для получения дополнительной информации и  
'citation()' для ознакомления с правилами упоминания R и его пакетов  
в публикациях.  

Введите 'demo()' для запуска демонстрационных программ, 'help()' -- для  
получения справки, 'help.start()' -- для доступа к справке через браузер.  
Введите 'q()', чтобы выйти из R.  

>

Появится консоль R (в самом терминале).
Затем, в этой консоли (комманда library(Rcmdr)):

library(Rcmdr)
Загрузка требуемого пакета: tcltk
Загружаю интерфейс Tcl/Tk... готово
Загрузка требуемого пакета: car

В итоге, получаем, что хотели:


Примечания:
Возможно, не все пакеты, которые я ставил, нужны.
В процессе установки я переустаналивал пакеты R-*
Возможно, надо устанавливать пакет, содержащий в названии "abind"


Не знаю, нужно-не_нужно; может, у меня одного установка проходила таким образом, но решил описать как я ставил, авось кому пригодится.
Вроде бы, ничего не пропустил.


Вопрос: можно ли как-нибудь запустить этот ГУИ с ярлыка?

Anatol
Anatol написал #2

можно конечно, создать соответствующий ярлык :) обычно он идет с суффиксом .desktop
открой любой ярлык который у тебя на рабочем столе в текстовом редакторе, а дальше сам поймешь :)

valentin
valentin написал #3 Автор

а дальше сам поймешь :)

Разве так получится?
В том-то и дело, что это всё дело запускается двумя коммандами, притом первая -- просто в терминале, а вторая -- уже в той консоли которая была вызвана первой коммандой.
Обычный ярлык для запуска-то содать не проблема, а как быть с этим?

Кстати, я там когда редактировал в конце, не исправил про запуск ГУИ. Теперь поправил.

Anatol
Anatol написал #4

тогда видимо никак

valentin
valentin написал #5 Автор

Это ещё не всё...
Решил, проверить: поставить R Commander на свежеустановленную openSUSE той же версии.

Оказалось, не хватает make.
Поставил.

sudo zypper in make

Скомпилировалось.
...вроде бы.

Запускаю.

library(Rcmdr)

Получаю уведомление:


Даю отмашку на установку. Установка пошла, но при следующем запуске снова возникло это уведомление.
Решил поставить руками из консоли R.

Далее буду писать ошибку и что понадобилось для решения. Комманды данные из консоли будут в рамке с черным полем, те, которые даны из консоли R, а также вывод этой консоли -- в рамке со светлым полем.
Итак, начал с rgl, после "----" новая попытка установки конкретного пакета после успешного устранения предфдущей ошибки.

install.packages("rgl", dependencies=TRUE)

checking for X... no
configure: error: X11 not found but required, configure aborted.

sudo zypper in xorg-x11-devel

configure: error: missing required header GL/glu.h
ERROR: configuration failed for package 'rgl'

sudo zypper in mesa-devel

make: g++: Команда не найдена

Поискал g++

cnf g++
sudo zypper install gcc-c++

pngpixmap.h:3:17: error: png.h: Нет такого файла или каталога

sudo zypper in libpng-devel

С пакетм rgl на этом всё.
Теперь multcomp

install.packages("multcomp", dependencies=TRUE)

Error: package 'survival' 2.34-1 was found, but >= 2.35.7 is required by 'multcomp'

install.packages("survival", dependencies=TRUE)

Теперь, вроде бы всё. Запускается без вопросов.

Кто заинтересован, прошу отписаться сюда об установке на предмет того, все ли компоненты установлены теперь.