Integration with sysreqs
Closed this issue · 2 comments
I've been playing with the sysreqs
package and have found it can be used to auto-install dependencies. I imagine you already knew this. Reprex from bash below FYI:
sudo apt install $(r -e 'cat(paste(sysreqs::sysreqs(desc = system.file(package = "tmap", "DESCRIPTION"), platform = "linux-x86_64-ubuntu-gcc"), collapse = " "))')
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'git' instead of 'git-core'
Note, selecting 'libnode-dev' instead of 'libv8-dev'
...
Context: comes from discussions with @eddelbuettel and r-hub/sysreqs#17
Thanks @Robinlovelace ! It's definitely a cool package, @nuest has done some cool work with sysreqs
+ Docker in https://github.com/o2r-project/containerit as well.
I'm still not sure the best way to integrate this into our stacks though (e.g. you still have to opt in to allowing users to even have sudo
privileges in the rocker-versioned containers). That's probably okay though at least for instances that are used as a single user environment anyway....
We could probably be making better use of it in the Dockerfiles themselves, though manually installing the apt dependencies may still be more robust. And of course sysreqs is still not a complete solution for system requirements, since it does not really address version issues that may require us to add a PPA or something (i.e. especially on the spatial stack as you know better than me!)
Definitely worth us thinking more about all the same. Suggestions on kinds of integration one might want to see (e,g. more user-facing or developer / Dockerfile level) welcome.
It doesn't look like we'll be doing this anytime soon, so I close it.
If you want to use a similar solution, consider using rocker/r-bspm.