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

Reply via email to