On 14/06/2019 5:04 a.m., Michael Gruenstaeudl wrote:
Assume an R package (`myRpackage`) that has a conda package
(`condaDependecy`) as a system requirement. The file `DESCRIPTION` of
the R package would read like:
Package: myRpackage
...
SystemRequirements: condaDependecy (>= 0.1)
...
How can I ensure the automatic installation of this condaDependecy (i.e.
`conda install condaDependency`) upon installing the R package itself
(i.e. `install.packages("myRpackage")`), assuming that myRpackage is
listed on CRAN?
You can't do that in a CRAN package. You're not allowed to modify the
user's system.
What you can do is include a function to install the dependency, and in
your .onLoad (not .onAttach, which should rarely be used) try to detect
if it is present. If it is not, you can print a message telling the
user what to do, and fail the load with a call to stop().
Duncan Murdoch
I would prefer a method less "clunky" as
.onAttach = function(libname = find.package("myRpackage"), pkgname
= "myRpackage") {
system("conda install -y condaDependency")
}
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel