dsBase can not be installed on opal server

Dear all,

One of our server has successfully installed opal, but we found the dsBase is not the default installed package.

Thus, we try to install it ourself with opalr, but can not success. See below:

> opal=opal.login(url = "xxxx:xxx", user = "xxx", password = "xxx")
> dsadmin.installed_package(opal, pkg = "dsBase")
[1] FALSE
> dsadmin.install_package(opal, pkg = "dsBase")
[1] FALSE
> dsadmin.installed_package(opal, pkg = "dsBase")
[1] FALSE
> dsadmin.installed_package(opal, pkg = "resourcer")
[1] TRUE

By the way, resourcer is the only default installed package.

It is appreciated if anyone have any suggestions.

Regards, Hank

Hi Hank,

Which version of Opal are you using? New versions of Opal, 2.16 and after (if memory serves me right), you should use “DSI” and “DSOpal” R packages to interact with the Opal server.

If you are seeing “resourcer” package I suspect you are running a relatively new version of Opal, which I suspect ‘opal’ and ‘opaladmin’ R packages will only partially work.

Stuart

Hank,

I think the best way to proceed is to initially confirm which version of Opal you are using. The way I do this would be to log into the Opal Web Portal (usually on port 8080) with my web browser and (after login in) check the version which is displayed in the bottom right corner of the page.

Stuart

Dear Stuart,

Thanks a lot, I found the information, this server installed 3.0.3 version opal.

Regards, Hank

Hank, In that case you will need to use the ‘DSI’ and ‘DSOpal’ R packages. I would advice uninstalling the ‘opal’ and ‘opaladmin’ packages if they are installed on your client.

Are you trying to login to the Opal server using ‘https’ or ‘http’? The error messages does look like a SSL certificate issue.

Stuart

Dear Stuart,

Sorry for confusing you. I have three opal servers, two of them have problems for using but different issues.

For this server, the issue is the missing dsBase package. I can login but cannot install dsBase from opalr. For DSI and DSOpal, I still can login but cannot find functions to install server-side packages. Could you please suggest one?

Regards, Hank

Hank,

If you have access to the administrative account, I find the easiest way to install the ‘dsBase’ package is via the Opal Web Portal: “Administration” -> “DataSHIELD” then use “+ Add Package” button.

Stuart

Hi Stuart,

This is the first way I tried, but it did not work. Even there is no error messages returned.

Regards, Hank

Hi,

dsBase fails at being installed in your R server. You should check the R server logs for error messages: in Opal, go to Administration > R and then click Download.

Regards
Yannick

Hi Yannick,

Great information!

There are indeed errors when instaling the dependency. See below:

... ...

checking for ranlib... ERROR: no information for variable 'RANLIB'
... ...

libtool: link: ERROR: no information for variable 'AR' cru .libs/libutil.a .libs/mt19937ar.o .libs/sobolseq.o .libs/timer.o .libs/stop.o .libs/redblack.o .libs/qsort_r.o .libs/rescale.o 
../libtool: line 1102: ERROR:: command not found
make[2]: *** [libutil.la] Error 127
make[2]: Leaving directory `/tmp/Rtmpz57bwJ/R.INSTALL743e428fe501/nloptr/src/nlopt_src/util'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/Rtmpz57bwJ/R.INSTALL743e428fe501/nloptr/src/nlopt_src'
make: *** [all] Error 2
ERROR: configuration failed for package ‘nloptr’
* removing ‘/var/lib/rserver/R/library/nloptr’
ERROR: dependency ‘nloptr’ is not available for package ‘lme4’
* removing ‘/var/lib/rserver/R/library/lme4’
ERROR: dependency ‘lme4’ is not available for package ‘dsBase’
* removing ‘/var/lib/rserver/R/library/dsBase’
ERROR: dependency ‘dsBase’ is not available for package ‘datashield’
* removing ‘/var/lib/rserver/R/library/datashield’

Dpes anyone know how to fix this issue?

Regards, Hank

It says that libtool command is failing because of ranlib not configured. Seems a bit cryptic but sounds like a compiler error (gcc). How was installed R on this server ?

By the way, for your information the rserver is also available as a docker image, that simplifies system dependencies issues.

Hi Yannick,

According to this page:

This error is due to the new version of nloptr not applicable to 3+ version of R.Thus, installation of an older version of nloptr would solve it. For example,

packageurl<-"https://cran.r-project.org/src/contrib/Archive/nloptr/nloptr_1.2.1.tar.gz"

install.packages(packageurl, repos=NULL, type="source")

But I do not know how to do it with datashield packages or web-management? Anyone know?

Regards, Hank

Hi, I don’t know if this helps but on my development VM I have nloptr version 1.2.2.2:

nloptr * 1.2.2.2 2020-07-02 [1] CRAN (R 4.0.3)

Stuart

@swheater Thanks for this information. My r-server is 3.6.0.

From CRAN page of nloptr(https://cran.r-project.org/web/packages/nloptr/index.html), the auther forgot to say the minumum available version of R. Therefore, my r-server tried to install the newest version. However it seams the nloptr 1.2.2.2 is not compitiable with R 3.6

Anyone know how I can install a old-version package into the r-server of opal?

Regards, Hank

Hank,

What operating system (and version) are you deploying your Opal Server to?

Stuart

Use something like this to install a specific package version:

library(opalr)
o <- opal.login(username = "administrator", password = "password", url = "https://opal-demo.obiba.org")
opal.execute(o, script = 'devtools::install_version("rgdal", version = "1.5-12", repos = "https://cloud.r-project.org", upgrade = "never")')
opal.logout(o)

But why not using R 4.x ?

Regards Yannick

Dear Yannick,

Brilliant idea!

Do we just need to update R software on server, then opal can use automatically?

Regards, Hank

Opal has no requirements regarding the R server (as soon as it is accessible), and is also not responsible for the R server failures by the way… Then update whatever you want in R, just make sure you have a clean install (i.e. not mixing R 3.x and R 4.x packages).

Great, thanks for the information

Hank