I am installing the R package patchwork in a self-created R virtual environment in miniconda3 through the command conda install -c conda-forge r-patchwork
after activating the virtual env. In the list of R packages to install, I find many packages irrelevant to patchwork. I wish to ask why so many irrelevant packages are installed and if it is possible to install only patchwork and its dependencies?
Here is a screenshot showing many packages irrelevant to patchwork are installed using the code above:
All the packages are relevant. While the immediate dependencies of r-patchwork
are only r-base
, r-ggplot
and r-gtable
, those each have their own dependencies. One can use Mamba's repoquery
functionality to generate the full dependency graph.
## using Mambaforge container
$ docker run --rm -it condaforge/mambaforge:latest
## create environment with r-patchwork as only spec
(base) $ mamba create -qyn foo r-patchwork
# this installs 139 packages...
## activate environment
(base) $ conda activate foo
## show the dependency graph for r-patchwork
(foo) $ mamba repoquery depends --tree r-patchwork
r-patchwork[1.1.2]
├─ r-base[4.2.2]
│ ├─ _r-mutex[1.0.1]
│ ├─ bwidget[1.9.14]
│ │ └─ tk[8.6.12]
│ │ ├─ libgcc-ng[12.2.0]
│ │ │ ├─ _libgcc_mutex[0.1]
│ │ │ └─ _openmp_mutex[4.5]
│ │ │ ├─ _libgcc_mutex already visited
│ │ │ └─ libgomp[12.2.0]
│ │ │ └─ _libgcc_mutex already visited
│ │ └─ libzlib[1.2.13]
│ │ └─ libgcc-ng already visited
│ ├─ tk already visited
│ ├─ libgcc-ng already visited
│ ├─ libzlib already visited
│ ├─ bzip2[1.0.8]
│ │ └─ libgcc-ng already visited
│ ├─ cairo[1.16.0]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libzlib already visited
│ │ ├─ fontconfig[2.14.1]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libzlib already visited
│ │ │ ├─ expat[2.5.0]
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ └─ libstdcxx-ng[12.2.0]
│ │ │ ├─ freetype[2.12.1]
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ ├─ libzlib already visited
│ │ │ │ └─ libpng[1.6.39]
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ └─ libzlib already visited
│ │ │ └─ libuuid[2.32.1]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ freetype already visited
│ │ ├─ libpng already visited
│ │ ├─ fonts-conda-ecosystem[1]
│ │ │ └─ fonts-conda-forge[1]
│ │ │ ├─ font-ttf-dejavu-sans-mono[2.37]
│ │ │ ├─ font-ttf-inconsolata[3.000]
│ │ │ ├─ font-ttf-source-code-pro[2.038]
│ │ │ └─ font-ttf-ubuntu[0.83]
│ │ ├─ icu[70.1]
│ │ │ ├─ libgcc-ng already visited
│ │ │ └─ libstdcxx-ng already visited
│ │ ├─ libglib[2.74.1]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libzlib already visited
│ │ │ ├─ libstdcxx-ng already visited
│ │ │ ├─ gettext[0.21.1]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ ├─ libffi[3.4.2]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ ├─ libiconv[1.17]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ └─ pcre2[10.40]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libzlib already visited
│ │ │ └─ bzip2 already visited
│ │ ├─ libxcb[1.13]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ pthread-stubs[0.4]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ ├─ xorg-libxau[1.0.9]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ └─ xorg-libxdmcp[1.1.3]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ pixman[0.40.0]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ xorg-libice[1.0.10]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ xorg-libsm[1.2.3]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libuuid already visited
│ │ │ └─ xorg-libice already visited
│ │ ├─ xorg-libx11[1.7.2]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libxcb already visited
│ │ │ ├─ xorg-kbproto[1.0.7]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ └─ xorg-xproto[7.0.31]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ xorg-libxext[1.3.4]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ xorg-libx11 already visited
│ │ │ └─ xorg-xextproto[7.3.0]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ xorg-libxrender[0.9.10]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ xorg-libx11 already visited
│ │ │ └─ xorg-renderproto[0.11.1]
│ │ │ └─ libgcc-ng already visited
│ │ └─ zlib[1.2.13]
│ │ ├─ libgcc-ng already visited
│ │ └─ libzlib already visited
│ ├─ libstdcxx-ng already visited
│ ├─ freetype already visited
│ ├─ libpng already visited
│ ├─ libuuid already visited
│ ├─ icu already visited
│ ├─ libglib already visited
│ ├─ pcre2 already visited
│ ├─ curl[7.86.0]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libzlib already visited
│ │ ├─ krb5[1.19.3]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libstdcxx-ng already visited
│ │ │ ├─ keyutils[1.6.1]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ ├─ libedit[3.1.20191231]
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ └─ ncurses[6.3]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ └─ openssl[3.0.7]
│ │ │ ├─ libgcc-ng already visited
│ │ │ └─ ca-certificates[2022.9.24]
│ │ ├─ openssl already visited
│ │ ├─ libcurl[7.86.0]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libzlib already visited
│ │ │ ├─ krb5 already visited
│ │ │ ├─ openssl already visited
│ │ │ ├─ libnghttp2[1.47.0]
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ ├─ libzlib already visited
│ │ │ │ ├─ libstdcxx-ng already visited
│ │ │ │ ├─ openssl already visited
│ │ │ │ ├─ c-ares[1.18.1]
│ │ │ │ │ └─ libgcc-ng already visited
│ │ │ │ └─ libev[4.33]
│ │ │ │ └─ libgcc-ng already visited
│ │ │ └─ libssh2[1.10.0]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libzlib already visited
│ │ │ └─ openssl already visited
│ │ └─ libssh2 already visited
│ ├─ krb5 already visited
│ ├─ ncurses already visited
│ ├─ libcurl already visited
│ ├─ libssh2 already visited
│ ├─ gcc_impl_linux-64[12.2.0]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libgomp already visited
│ │ ├─ libstdcxx-ng already visited
│ │ ├─ binutils_impl_linux-64[2.39]
│ │ │ ├─ ld_impl_linux-64[2.39]
│ │ │ └─ sysroot_linux-64[2.12]
│ │ │ └─ kernel-headers_linux-64[2.6.32]
│ │ ├─ sysroot_linux-64 already visited
│ │ ├─ libgcc-devel_linux-64[12.2.0]
│ │ └─ libsanitizer[12.2.0]
│ │ └─ libgcc-ng already visited
│ ├─ gfortran_impl_linux-64[12.2.0]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libstdcxx-ng already visited
│ │ ├─ gcc_impl_linux-64 already visited
│ │ ├─ sysroot_linux-64 already visited
│ │ └─ libgfortran5[12.2.0]
│ ├─ libgfortran5 already visited
│ ├─ gsl[2.7]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libblas[3.9.0]
│ │ │ └─ libopenblas[0.3.21]
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libgfortran5 already visited
│ │ │ └─ libgfortran-ng[12.2.0]
│ │ │ └─ libgfortran5 already visited
│ │ └─ libcblas[3.9.0]
│ │ └─ libblas already visited
│ ├─ libblas already visited
│ ├─ libgfortran-ng already visited
│ ├─ gxx_impl_linux-64[12.2.0]
│ │ ├─ gcc_impl_linux-64 already visited
│ │ ├─ sysroot_linux-64 already visited
│ │ └─ libstdcxx-devel_linux-64[12.2.0]
│ ├─ jpeg[9e]
│ │ └─ libgcc-ng already visited
│ ├─ liblapack[3.9.0]
│ │ └─ libblas already visited
│ ├─ libtiff[4.4.0]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libzlib already visited
│ │ ├─ libstdcxx-ng already visited
│ │ ├─ jpeg already visited
│ │ ├─ lerc[4.0.0]
│ │ │ ├─ libgcc-ng already visited
│ │ │ └─ libstdcxx-ng already visited
│ │ ├─ libdeflate[1.14]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ libwebp-base[1.2.4]
│ │ │ └─ libgcc-ng already visited
│ │ ├─ xz[5.2.6]
│ │ │ └─ libgcc-ng already visited
│ │ └─ zstd[1.5.2]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libzlib already visited
│ │ └─ libstdcxx-ng already visited
│ ├─ xz already visited
│ ├─ libxml2[2.10.3]
│ │ ├─ libgcc-ng already visited
│ │ ├─ libzlib already visited
│ │ ├─ icu already visited
│ │ ├─ libiconv already visited
│ │ └─ xz already visited
│ ├─ make[4.3]
│ │ └─ libgcc-ng already visited
│ ├─ pango[1.50.12]
│ │ ├─ libgcc-ng already visited
│ │ ├─ cairo already visited
│ │ ├─ fontconfig already visited
│ │ ├─ freetype already visited
│ │ ├─ libpng already visited
│ │ ├─ fonts-conda-ecosystem already visited
│ │ ├─ libglib already visited
│ │ ├─ fribidi[1.0.10]
│ │ │ └─ libgcc-ng already visited
│ │ └─ harfbuzz[5.3.0]
│ │ ├─ libgcc-ng already visited
│ │ ├─ cairo already visited
│ │ ├─ libstdcxx-ng already visited
│ │ ├─ freetype already visited
│ │ ├─ icu already visited
│ │ ├─ libglib already visited
│ │ └─ graphite2[1.3.13]
│ │ ├─ libgcc-ng already visited
│ │ └─ libstdcxx-ng already visited
│ ├─ readline[8.1.2]
│ │ ├─ libgcc-ng already visited
│ │ └─ ncurses already visited
│ ├─ sed[4.8]
│ │ └─ libgcc-ng already visited
│ ├─ tktable[2.10]
│ │ ├─ tk already visited
│ │ └─ libgcc-ng already visited
│ └─ xorg-libxt[1.2.1]
│ ├─ libgcc-ng already visited
│ ├─ xorg-libice already visited
│ ├─ xorg-libsm already visited
│ ├─ xorg-libx11 already visited
│ ├─ xorg-kbproto already visited
│ └─ xorg-xproto already visited
├─ r-ggplot2[3.4.0]
│ ├─ r-base already visited
│ ├─ r-digest[0.6.30]
│ │ ├─ r-base already visited
│ │ ├─ libgcc-ng already visited
│ │ └─ libstdcxx-ng already visited
│ ├─ r-glue[1.6.2]
│ │ ├─ r-base already visited
│ │ └─ libgcc-ng already visited
│ ├─ r-gtable[0.3.1]
│ │ └─ r-base already visited
│ ├─ r-isoband[0.2.6]
│ │ ├─ r-base already visited
│ │ ├─ libgcc-ng already visited
│ │ ├─ libstdcxx-ng already visited
│ │ ├─ r-rcpp[1.0.9]
│ │ │ ├─ r-base already visited
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libstdcxx-ng already visited
│ │ │ └─ __glibc >>> NOT FOUND <<<
│ │ └─ r-testthat[3.1.5]
│ │ ├─ r-base already visited
│ │ ├─ libgcc-ng already visited
│ │ ├─ libstdcxx-ng already visited
│ │ ├─ r-digest already visited
│ │ ├─ r-brio[1.1.3]
│ │ │ ├─ r-base already visited
│ │ │ └─ libgcc-ng already visited
│ │ ├─ r-callr[3.7.3]
│ │ │ ├─ r-base already visited
│ │ │ ├─ r-processx[3.8.0]
│ │ │ │ ├─ r-base already visited
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ ├─ r-ps[1.7.2]
│ │ │ │ │ ├─ r-base already visited
│ │ │ │ │ └─ libgcc-ng already visited
│ │ │ │ └─ r-r6[2.5.1]
│ │ │ │ └─ r-base already visited
│ │ │ └─ r-r6 already visited
│ │ ├─ r-processx already visited
│ │ ├─ r-ps already visited
│ │ ├─ r-r6 already visited
│ │ ├─ r-cli[3.4.1]
│ │ │ ├─ r-base already visited
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libstdcxx-ng already visited
│ │ │ └─ r-glue already visited
│ │ ├─ r-crayon[1.5.2]
│ │ │ └─ r-base already visited
│ │ ├─ r-desc[1.4.2]
│ │ │ ├─ r-base already visited
│ │ │ ├─ r-r6 already visited
│ │ │ ├─ r-cli already visited
│ │ │ └─ r-rprojroot[2.0.3]
│ │ │ ├─ r-base already visited
│ │ │ └─ r-backports[1.4.1]
│ │ │ ├─ r-base already visited
│ │ │ └─ libgcc-ng already visited
│ │ ├─ r-ellipsis[0.3.2]
│ │ │ ├─ r-base already visited
│ │ │ ├─ libgcc-ng already visited
│ │ │ └─ r-rlang[1.0.6]
│ │ │ ├─ r-base already visited
│ │ │ ├─ libgcc-ng already visited
│ │ │ └─ libstdcxx-ng already visited
│ │ ├─ r-rlang already visited
│ │ ├─ r-evaluate[0.18]
│ │ │ └─ r-base already visited
│ │ ├─ r-jsonlite[1.8.3]
│ │ │ ├─ r-base already visited
│ │ │ └─ libgcc-ng already visited
│ │ ├─ r-lifecycle[1.0.3]
│ │ │ ├─ r-base already visited
│ │ │ ├─ r-glue already visited
│ │ │ ├─ r-cli already visited
│ │ │ └─ r-rlang already visited
│ │ ├─ r-magrittr[2.0.3]
│ │ │ ├─ r-base already visited
│ │ │ └─ libgcc-ng already visited
│ │ ├─ r-pkgload[1.3.2]
│ │ │ ├─ r-base already visited
│ │ │ ├─ r-glue already visited
│ │ │ ├─ r-cli already visited
│ │ │ ├─ r-crayon already visited
│ │ │ ├─ r-desc already visited
│ │ │ ├─ r-rprojroot already visited
│ │ │ ├─ r-rlang already visited
│ │ │ ├─ r-fs[1.5.2]
│ │ │ │ ├─ r-base already visited
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ └─ libstdcxx-ng already visited
│ │ │ └─ r-withr[2.5.0]
│ │ │ └─ r-base already visited
│ │ ├─ r-withr already visited
│ │ ├─ r-praise[1.0.0]
│ │ │ └─ r-base already visited
│ │ └─ r-waldo[0.4.0]
│ │ ├─ r-base already visited
│ │ ├─ r-glue already visited
│ │ ├─ r-cli already visited
│ │ ├─ r-rlang already visited
│ │ ├─ r-diffobj[0.3.5]
│ │ │ ├─ r-base already visited
│ │ │ ├─ libgcc-ng already visited
│ │ │ └─ r-crayon already visited
│ │ ├─ r-fansi[1.0.3]
│ │ │ ├─ r-base already visited
│ │ │ └─ libgcc-ng already visited
│ │ ├─ r-rematch2[2.1.2]
│ │ │ ├─ r-base already visited
│ │ │ └─ r-tibble[3.1.8]
│ │ │ ├─ r-base already visited
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ r-ellipsis already visited
│ │ │ ├─ r-rlang already visited
│ │ │ ├─ r-lifecycle already visited
│ │ │ ├─ r-magrittr already visited
│ │ │ ├─ r-fansi already visited
│ │ │ ├─ r-pillar[1.8.1]
│ │ │ │ ├─ r-base already visited
│ │ │ │ ├─ r-cli already visited
│ │ │ │ ├─ r-crayon already visited
│ │ │ │ ├─ r-ellipsis already visited
│ │ │ │ ├─ r-rlang already visited
│ │ │ │ ├─ r-lifecycle already visited
│ │ │ │ ├─ r-fansi already visited
│ │ │ │ ├─ r-utf8[1.2.2]
│ │ │ │ │ ├─ r-base already visited
│ │ │ │ │ └─ libgcc-ng already visited
│ │ │ │ └─ r-vctrs[0.5.1]
│ │ │ │ ├─ r-base already visited
│ │ │ │ ├─ libgcc-ng already visited
│ │ │ │ ├─ libstdcxx-ng already visited
│ │ │ │ ├─ r-glue already visited
│ │ │ │ ├─ r-cli already visited
│ │ │ │ ├─ r-rlang already visited
│ │ │ │ └─ r-lifecycle already visited
│ │ │ ├─ r-vctrs already visited
│ │ │ └─ r-pkgconfig[2.0.3]
│ │ │ └─ r-base already visited
│ │ └─ r-tibble already visited
│ ├─ r-rlang already visited
│ ├─ r-withr already visited
│ ├─ r-tibble already visited
│ ├─ r-mass[7.3_58.1]
│ │ ├─ r-base already visited
│ │ └─ libgcc-ng already visited
│ ├─ r-mgcv[1.8_41]
│ │ ├─ r-base already visited
│ │ ├─ libgcc-ng already visited
│ │ ├─ libblas already visited
│ │ ├─ liblapack already visited
│ │ ├─ r-matrix[1.5_3]
│ │ │ ├─ r-base already visited
│ │ │ ├─ libgcc-ng already visited
│ │ │ ├─ libblas already visited
│ │ │ ├─ liblapack already visited
│ │ │ └─ r-lattice[0.20_45]
│ │ │ ├─ r-base already visited
│ │ │ └─ libgcc-ng already visited
│ │ └─ r-nlme[3.1_160]
│ │ ├─ r-base already visited
│ │ ├─ libgcc-ng already visited
│ │ ├─ libgfortran5 already visited
│ │ ├─ libgfortran-ng already visited
│ │ └─ r-lattice already visited
│ └─ r-scales[1.2.1]
│ ├─ r-base already visited
│ ├─ r-r6 already visited
│ ├─ r-lifecycle already visited
│ ├─ r-farver[2.1.1]
│ │ ├─ r-base already visited
│ │ ├─ libgcc-ng already visited
│ │ └─ libstdcxx-ng already visited
│ ├─ r-labeling[0.4.2]
│ │ └─ r-base already visited
│ ├─ r-munsell[0.5.0]
│ │ ├─ r-base already visited
│ │ └─ r-colorspace[2.0_3]
│ │ ├─ r-base already visited
│ │ └─ libgcc-ng already visited
│ ├─ r-rcolorbrewer[1.1_3]
│ │ └─ r-base already visited
│ └─ r-viridislite[0.4.1]
│ └─ r-base already visited
└─ r-gtable already visited
Upon inspection, one concludes that the additional R packages are r-ggplot
dependencies. OP is seeing expected behavior.
Prompted by this question, I found that the r-isoband
package in Conda Forge was unnecessarily including r-testthat
as a runtime dependency when it was really only needed for running tests. Conda Forge now has removed this. I can report that using the same procedure as above now results in an environment with 16 fewer R packages (123 instead of 139).