I don't think install.packages() can do what you want. If you are specifying a URL, then install.packages() assumes it has no way to know where the other dependencies are supposed to come from.

The typical way I install an unusual version of a package is to install the CRAN version first (install.packages("ggplot2") will do that, and will get all the deps), then reinstall the special version, and hope I've got all the right dependencies.

Duncan Murdoch

On 2025-02-06 12:36 p.m., arilamst...@gmail.com wrote:
It appears that install.packages does not automatically install package
dependencies when the package is installed via a URL. As an example, here
is what I get when I attempt to install the latest ggplot2 tarball via its
URL on CRAN:

install.packages("
https://cran.r-project.org/src/contrib/ggplot2_3.5.1.tar.gz";)
inferring 'repos = NULL' from 'pkgs'
trying URL 'https://cran.r-project.org/src/contrib/ggplot2_3.5.1.tar.gz'
Content type 'application/x-gzip' length 3604371 bytes (3.4 MB)
==================================================
downloaded 3.4 MB

ERROR: dependencies ‘cli’, ‘glue’, ‘gtable’, ‘isoband’, ‘lifecycle’,
‘rlang’, ‘scales’, ‘tibble’, ‘vctrs’, ‘withr’ are not available for package
‘ggplot2’
* removing
‘/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/ggplot2’
Warning in install.packages :
   installation of package
‘/var/folders/m7/ztk511fj6vl4m6bw7vh47nk40000gn/T//RtmpmmFBOH/downloaded_packages/ggplot2_3.5.1.tar.gz’
had non-zero exit status


Is there a parameter I can give to install.packages so that it will
automatically install all the packages the package (in this example
ggplot2) needs? I've read the documentation of install.packages several
times, and am confused by the interplay of the various parameters. When I
type getOption('repos') I get:

                        CRAN
"https://cran.rstudio.com/";
attr(,"RStudio")
[1] TRUE

Without this it looks like installing from a URL is a 2-step process:

install.packages(c(<packages the package needs>))
install.packages("<url of package tarball>")

I am aware that there are some contributed packages (such as devtools and
remotes) that do this for you in a single line. But I am curious whether
this is possible via install.packages alone.

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to