New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install binary if available #107

Open
nuest opened this Issue Dec 21, 2017 · 5 comments

Comments

2 participants
@nuest
Member

nuest commented Dec 21, 2017

Fun and educational post: http://dirk.eddelbuettel.com/blog/2017/12/13/#013_faster_package_installation_two

Installation time is not really an issue for it, it would be cool if we could detect if a binary package is available and then install that.

@eddelbuettel: Is it possible to get the information whether an R package is available as a Debian binary from somewhere? Maybe some clever apt cache search?

@eddelbuettel

This comment has been minimized.

Show comment
Hide comment
@eddelbuettel

eddelbuettel Dec 21, 2017

@nuest Yes, planned as the next blog post. Didn't get to it yet :)

eddelbuettel commented Dec 21, 2017

@nuest Yes, planned as the next blog post. Didn't get to it yet :)

@eddelbuettel

This comment has been minimized.

Show comment
Hide comment
@eddelbuettel

eddelbuettel Dec 22, 2017

Here is a short write up. Let me know if it is helpful and/or comprehensible: http://dirk.eddelbuettel.com/blog/2017/12/22#014_finding_binary_deb_packages

eddelbuettel commented Dec 22, 2017

Here is a short write up. Let me know if it is helpful and/or comprehensible: http://dirk.eddelbuettel.com/blog/2017/12/22#014_finding_binary_deb_packages

@nuest

This comment has been minimized.

Show comment
Hide comment
@nuest

nuest Dec 23, 2017

Member

Yes, that helps:

library("sf")
library("RcppAPT")

pkgs <- names(sapply(c(sessionInfo()$otherPks, sessionInfo()$loadedOnly), function(p) p$package)) # probably a better way to do this... just a quick hack
pkgs <- tolower(paste("r-cran-", pkgs, sep = ""))

RcppAPT::hasPackages(pkgs)

gives me

r-cran-compiler r-cran-magrittr    r-cran-class    r-cran-tools      r-cran-dbi 
          FALSE            TRUE            TRUE           FALSE            TRUE 
   r-cran-units     r-cran-rcpp r-cran-udunits2     r-cran-grid    r-cran-e1071 
          FALSE            TRUE           FALSE           FALSE            TRUE 
r-cran-classint    r-cran-tcltk 
          FALSE           FALSE

which is just what I need.

Using binary might be worse for reproducibility, but I still like this as a feature for containerit.

Member

nuest commented Dec 23, 2017

Yes, that helps:

library("sf")
library("RcppAPT")

pkgs <- names(sapply(c(sessionInfo()$otherPks, sessionInfo()$loadedOnly), function(p) p$package)) # probably a better way to do this... just a quick hack
pkgs <- tolower(paste("r-cran-", pkgs, sep = ""))

RcppAPT::hasPackages(pkgs)

gives me

r-cran-compiler r-cran-magrittr    r-cran-class    r-cran-tools      r-cran-dbi 
          FALSE            TRUE            TRUE           FALSE            TRUE 
   r-cran-units     r-cran-rcpp r-cran-udunits2     r-cran-grid    r-cran-e1071 
          FALSE            TRUE           FALSE           FALSE            TRUE 
r-cran-classint    r-cran-tcltk 
          FALSE           FALSE

which is just what I need.

Using binary might be worse for reproducibility, but I still like this as a feature for containerit.

@eddelbuettel

This comment has been minimized.

Show comment
Hide comment
@eddelbuettel

eddelbuettel Dec 23, 2017

I am also a little undecided about wheter it is better for reproducability. On the one hand it "fixes" one more moving part: rebuilding a container gets you more things that are unchanged. But the container builder may have a little bit less control over the binaries -- just like with a distro.

eddelbuettel commented Dec 23, 2017

I am also a little undecided about wheter it is better for reproducability. On the one hand it "fixes" one more moving part: rebuilding a container gets you more things that are unchanged. But the container builder may have a little bit less control over the binaries -- just like with a distro.

@nuest

This comment has been minimized.

Show comment
Hide comment
@nuest

nuest Dec 26, 2017

Member

Yes, that helps:

library("sf")
library("RcppAPT")

pkgs <- names(sapply(c(sessionInfo()$otherPks, sessionInfo()$loadedOnly), function(p) p$package)) # probably a better way to do this... just a quick hack
pkgs <- tolower(paste("r-cran-", pkgs, sep = ""))

RcppAPT::hasPackages(pkgs)

gives me

r-cran-compiler r-cran-magrittr    r-cran-class    r-cran-tools      r-cran-dbi 
          FALSE            TRUE            TRUE           FALSE            TRUE 
   r-cran-units     r-cran-rcpp r-cran-udunits2     r-cran-grid    r-cran-e1071 
          FALSE            TRUE           FALSE           FALSE            TRUE 
r-cran-classint    r-cran-tcltk 
          FALSE           FALSE

which is just what I need.

Using binary might be worse for reproducibility, but I still like this as a feature for containerit.

Member

nuest commented Dec 26, 2017

Yes, that helps:

library("sf")
library("RcppAPT")

pkgs <- names(sapply(c(sessionInfo()$otherPks, sessionInfo()$loadedOnly), function(p) p$package)) # probably a better way to do this... just a quick hack
pkgs <- tolower(paste("r-cran-", pkgs, sep = ""))

RcppAPT::hasPackages(pkgs)

gives me

r-cran-compiler r-cran-magrittr    r-cran-class    r-cran-tools      r-cran-dbi 
          FALSE            TRUE            TRUE           FALSE            TRUE 
   r-cran-units     r-cran-rcpp r-cran-udunits2     r-cran-grid    r-cran-e1071 
          FALSE            TRUE           FALSE           FALSE            TRUE 
r-cran-classint    r-cran-tcltk 
          FALSE           FALSE

which is just what I need.

Using binary might be worse for reproducibility, but I still like this as a feature for containerit.

@nuest nuest added this to Current sprint in containerit package development Jan 2, 2018

@nuest nuest moved this from Current sprint to Backlog in containerit package development Jan 2, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment