deployment on shinyapps.io failing - r

Hi I'm trying to deploy an app on the server, however, I get the following errors
* May be unable to deploy package dependency "rClr" could not
determine a repository URL for the source CRAN.
* May be unable to deploy package dependency "tlf" could not determine
a repository URL for the source CRAN.
Unable to determine the source location for some packages. Packages
should be installed from a package repository like CRAN or a version
control system. Check that options(repos) refers to a package
repository containing the needed package versions.
The backbone packages can not be installed from Cran and have to be done manually, hence the errors. How can this be fixed in order to deploy the app on the server?
Thanks for all help

Related

Is there a way to 'install' R packages without running install.packages()?

We are testing how to run R in the cloud in a secure isolated environment that is blocked from CRAN and also cannot use packages.install(). We defined an environment which is based on R essentials Anaconda's bundle, still we would like to be able to customize it on demand with extra packages. Is there a way to be able to simulate packages.install(), e.g. by offline downloading the package, zip it, copy to the secure environment and unzipping it to a specific location in the library folder?
thanks!
You can download the package from CRAN as a zip and then transport it to the isolated PC as a file. For example, here is the link to dplyr on CRAN: https://cran.r-project.org/web/packages/dplyr/index.html
Then use the code below to install the local file:
install.packages("~/Downloads/dplyr_1.0.7.zip", repos = NULL)
On Windows you might require Rtools. At least there was a Warning about it but the package still installed.
For Linux machines, you can build the package from source using the tarball from the same page:
install.packages("~/Downloads/dplyr_1.0.7.tar.gz", repos = NULL, type = "source")
In both cases you need to take care of dependencies yourself as they are not checked while installing through this method (look at the "imports" field on the CRAN website for the package).

Non-standard Remotes package INLA in R package

I have a package that Requires INLA, which is not hosted on CRAN or a standard GitHub repository. There are multiple SO questions detailing how to install the package on a personal machine, such as this, or even mentions it as a dependency in a package.
The two ways that are typically recommended to install on a personal machine are:
Direct from INLA website
install.packages("INLA",repos=c(getOption("repos"),INLA="https://inla.r-inla-download.org/R/stable"), dep=TRUE)
From the GitHub host
devtools::install_github(repo = "https://github.com/hrue/r-inla", ref = "stable", subdir = "rinla", build = FALSE)
Now, these are fine for personal machines, but don't work in the DESCRIPTION files Remotes: section.
If we do url::https://inla.r-inla-download.org/R/stable, this gives an error that the file extension isn't recognized.
Error: Error: Failed to install 'unknown package' from URL:
Don't know how to decompress files with extension
If we do github::hrue/r-inla, I am unaware of how to pass (or if it's even possible) the ref, subdir, and build arguments in the DESCRIPTION file.
Previous packages used a read only mirror of the INLA code that was hosted on GitHub, solely for this purpose, at this repo and then just using github::inbo/INLA. However, this repository is out of date.
Current solution
What I'm doing instead is to directly reference the tarball hosted on the main webpage.
url::https://inla.r-inla-download.org/R/stable/src/contrib/INLA_21.02.23.tar.gz
This solution works, and passes CI as well as the machines are able to install and load from there. The only issue is that I need to periodically update the static link to this tarball, and would prefer to reference the stable build, either directly from the INLA website as above, or the hrue/inla repo with those other arguments passed. Directly referencing those links also has the advantage that when my package is re-installed on a machine, it would recognize whether or not the latest version of INLA has been installed on that machine. Is there a way to achieve this in the DESCRIPTION file?
This is not a perfect answer but maybe what you can do is add the zip url of the stable branch of INLA from the new github repository of INLA:-
url::https://github.com/hrue/r-inla/archive/refs/heads/stable.zip
Hence, this will always install the latest stable version of the package.

Problems installing Microsoft.Owin (for SignalR)

I'm trying to experiment with SignalR by adding it to an existing (but small) ASP.Net (.Net 4.6.1, VS 2017) web application. However, I'm having real problems getting the Nuget package installed; more specifically the Microsoft.Owin component (which appears to be a dependency).
I've followed the instructions here, but as soon as I try to install Owin - either explicitly, or indirectly by trying to install the main SignalR package, and regardless of whether it's via Package Manager or Package Manager Console - I get the error:
PM> Install-Package Microsoft.Owin
Attempting to gather dependency information for package 'Microsoft.Owin.4.0.0' with respect to project
'SignalRProject', targeting '.NETFramework,Version=v4.6.1'
Gathering dependency information took 43.64 ms Attempting to resolve
dependencies for package 'Microsoft.Owin.4.0.0' with
DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'Microsoft.Owin.4.0.0'
Resolved
actions to install package 'Microsoft.Owin.4.0.0'
Retrieving package
'Microsoft.Owin 4.0.0' from 'nuget.org'.
Retrieving package 'Owin 1.0.0' from 'nuget.org'.
Adding package 'Owin.1.0.0' to folder 'c:\code\SignalRProject\packages'
Install failed. Rolling back...
Package 'Owin.1.0.0' does not exist in project
'SignalRProject'
Removing package 'Owin.1.0.0' from folder
'c:\code\SignalRProject\packages'
Install-Package : TF400024: The
change on c:\code\SignalRProject\packages\Owin.1.0\Owin.1.0.nupkg
cannot be undone because a file already exists at
c:\code\SignalRProject\packages\Owin.1.0\Owin.1.0.nupkg. The file
must be deleted from disk for the undo to succeed.
I've tried the Owin.1.0.nupkg file, and the parent directory itself, but after restarting VS I continue to get the error. I've tried upgrading to .Net 4.7.1, but to no effect. How can I find out what's causing the Owin install error?
You could donwload a running microsoft example and then compare with yours https://code.msdn.microsoft.com/Getting-Started-with-c366b2f3
Install-Package : TF400024: The change on
c:\code\SignalRProject\packages\Owin.1.0\Owin.1.0.nupkg cannot be
undone because a file already exists at
c:\code\SignalRProject\packages\Owin.1.0\Owin.1.0.nupkg. The file must
be deleted from disk for the undo to succeed.
This error is caused by TFVC source control. You should first check-in your changes and then install nuget packages
I've managed to work around my issue, and get Owin (and SignalR) installed by using the 3rd-party Paket Nuget alternative.
>paket.exe add Microsoft.Owin --project SignalRProject
Paket version 5.148.0
Dependencies files saved to c:\code\SignalRProject\paket.dependencies
Adding package Microsoft.Owin to c:\code\SignalRProject\paket.references into group Main
References file saved to c:\code\SignalRProject\paket.references
- Creating model and downloading packages.
- paket.references -> SignalRProject.csproj
Performance:
- Disk IO: 63 milliseconds
- Runtime: 6 seconds

Proget server feed does not include Nuget packages even though package has been pushed to the Proget server successfully

We are using Proget 4.4.2.5. We can successfully push the Nuget package to the Proget server but am not seeing the package in the feed.
The "nuget install" command fails when we omit the version (i.e. we want to fetch only the latest). It works for other Nuget packages that appear in the feed when version is omitted. The nuget install command only works on this package when the version is specified.
I have tried restarting the Proget Service but that does not appear to resolve the issue.
Thanks in advance for any assistance. This is an ugent / blocking issues for us.
Figured out that my specific package is a pre-release and thus required the prerelease option to be set on the nuget install command.

Installation of dependencies of R packages from local repository

Has the issue described here been resolved:
https://github.com/rstudio/packrat/issues/169
If not, does it mean that if I have a package [package_from_local_repo] installed by packrat from a local repository, its dependencies (although available in CRAN, etc) will not be installed?
Is a workaround to use library([missing dependency]) on the same R code that calls my [package_from_local_repo]?

Resources