shiny depends on fastmap which is only available in source form

Hi. Although any helpful advice will be gratefully received, I am writing here mainly to ask if my analysis of the problem is likely to be correct.

I want to use the mosaic package from CRAN, but when I call its do() function I get:

Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]): there is no package called ‘shiny’

Looking at the messages when the mosaic package is installed (and using tools::dependsOnPkgs) I see that mosaic depends on the leaflet package which depends on crosstalk which depends on shiny. There are also messages:

Package which is only available in source form, and may need compilation of C/C++/Fortran: 'fastmap'
...
ERROR: dependency 'fastmap' is not available for package 'shiny'
...
installation of package 'shiny' had non-zero exit status

I believe that a dependency on fastmap was added in version 1.4.0 of shiny which was released at the start of October. I did not have this problem before October. And it is unlikely that mosaic::do actually needs shiny, but it is probably needed by other functions in the mosaic package.

It may be relevant that I am using R version 3.4.1 and RStudio 1.1.453 under Windows 10 version 1903. These are installed on the many classroom machines here. We wanted to upgrade R and RStudio over the summer, but our IT support people were busy fighting other fires.

1 Like

It may be relevant that I am using R version 3.4.1 and RStudio 1.1.453 under Windows 10 version 1903.

This is very relevant, indeed. As can be seen on fastmap's CRAN page Windows binary packages are available for R devel, R release (3.6) and R oldrel (3.5), but not for old-oldrel (3.4). Since updating R and installing Rtools are probably out of the question, you could try to convince IT to install Rtools on a separate computer. On this computer, a fastmap binary package for R 3.4 would be build which can then be distributed to the people requiring an up-to-date shiny package. Alternatively, you could install an older version of the shiny package that does not depend on fastmap, e.g. via remotes::install_version().

1 Like

I have this issue too and was able to compile on a machine with RTools and move the packages over (following rstub's advice). Before shiny would install I had to do the same thing for the htmltools and httpuv packages.

1 Like

The reply from rstub is excellent. In my situation, I have also found a problem with package hms (version 0.5.2 was published on 30 October and it depends on vctrs 0.2.0) so I am using the following workaround to install old packages until we can upgrade the version of R. It seems that using R version 3.4.1 is gradually becoming untenable.

install.packages("remotes")
remotes::install_version("shiny", "1.3.2", upgrade=FALSE)
remotes::install_version("hms", "0.4.2", upgrade=FALSE)