ContinuumIO / anaconda-issues

Anaconda issue tracking
648 stars 221 forks source link

r-base package sets TAR=/bin/gtar and breaks some r docker images #11509

Open alanhoyle opened 4 years ago

alanhoyle commented 4 years ago

Actual Behavior

I'm trying to build a docker image with R installed in it. if I install R by saying

"conda install r" it sets TAR to /bin/gtar. This prevents some underlying R packages from working (e.g. devtools), because the proper value for TAR is /bin/tar

Expected Behavior

It should search for tar and set the value as appropriate, or leave it as /bin/tar.

Steps to Reproduce

$ docker run -ti continuumio/miniconda:latest
(base) root@[...]# conda install r r-devtools
[...]
(base) root@[...]# R -q -e 'Sys.getenv("TAR") ; library(devtools) ; install_github("Displayr/flipPlots")'
# R -q -e 'Sys.getenv("TAR"); library(devtools); install_github("Displayr/flipPlots")'
> Sys.getenv("TAR"); library(devtools); install_github("Displayr/flipPlots")
[1] "/bin/gtar"
Downloading GitHub repo Displayr/flipPlots@master
sh: 1: /bin/gtar: not found
sh: 1: /bin/gtar: not found
Error in system(cmd, intern = TRUE) : error in running command
Calls: install_github ... getrootdir -> stopifnot -> untar -> <Anonymous> -> system
In addition: Warning messages:
1: In system(cmd) : error in running command
2: In utils::untar(tarfile, ...) :
  ‘/bin/gtar -xf '/tmp/RtmpDQ6uXN/fileb97f1423e1.tar.gz' -C '/tmp/RtmpDQ6uXN/remotesb9753b7d7bf'’ returned error code 127
Execution halted
(base) root@[...]# which tar
/bin/tar
Anaconda or Miniconda version:

I've tried several: r, r-base, conda-forge's r, r's r, and 3.6.0, 3.6.1, etc.

Operating System:
conda info
``` active environment : base active env location : /opt/conda shell level : 1 user config file : /root/.condarc populated config files : conda version : 4.8.0 conda-build version : not installed python version : 2.7.16.final.0 virtual packages : __glibc=2.28 base environment : /opt/conda (writable) channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /opt/conda/pkgs /root/.conda/pkgs envs directories : /opt/conda/envs /root/.conda/envs platform : linux-64 user-agent : conda/4.8.0 requests/2.22.0 CPython/2.7.16 Linux/5.3.0-24-generic debian/10 glibc/2.28 UID:GID : 0:0 netrc file : None offline mode : False ```
conda list --show-channel-urls
``` # packages in environment at /opt/conda: # # Name Version Build Channel _libgcc_mutex 0.1 main defaults _r-mutex 1.0.0 anacondar_1 defaults asn1crypto 1.0.1 py27_0 defaults binutils_impl_linux-64 2.31.1 h6176602_1 defaults binutils_linux-64 2.31.1 h6176602_8 defaults bwidget 1.9.11 1 defaults bzip2 1.0.8 h7b6447c_0 defaults ca-certificates 2019.11.27 0 defaults cairo 1.14.12 h8948797_3 defaults certifi 2019.11.28 py27_0 defaults cffi 1.12.3 py27h2e261b9_0 defaults chardet 3.0.4 py27_1003 defaults conda 4.8.0 py27_0 defaults conda-package-handling 1.6.0 py27h7b6447c_0 defaults cryptography 2.7 py27h1ba5d50_0 defaults curl 7.67.0 hbc83047_0 defaults enum34 1.1.6 py27_1 defaults fontconfig 2.13.0 h9420a91_0 defaults freetype 2.9.1 h8a8886c_1 defaults fribidi 1.0.5 h7b6447c_0 defaults futures 3.3.0 py27_0 defaults gcc_impl_linux-64 7.3.0 habb00fd_1 defaults gcc_linux-64 7.3.0 h553295d_8 defaults gfortran_impl_linux-64 7.3.0 hdf63c60_1 defaults gfortran_linux-64 7.3.0 h553295d_8 defaults glib 2.56.2 hd408876_0 defaults graphite2 1.3.13 h23475e2_0 defaults gsl 2.4 h14c3975_4 defaults gxx_impl_linux-64 7.3.0 hdf63c60_1 defaults gxx_linux-64 7.3.0 h553295d_8 defaults harfbuzz 1.8.8 hffaf4a1_0 defaults icu 58.2 h9c2bf20_1 defaults idna 2.8 py27_0 defaults ipaddress 1.0.22 py27_0 defaults jpeg 9b h024ee3a_2 defaults krb5 1.16.1 h173b8e3_7 defaults libcurl 7.67.0 h20c2e04_0 defaults libedit 3.1.20181209 hc058e9b_0 defaults libffi 3.2.1 hd88cf55_4 defaults libgcc-ng 9.1.0 hdf63c60_0 defaults libgfortran-ng 7.3.0 hdf63c60_0 defaults libpng 1.6.37 hbc83047_0 defaults libssh2 1.8.2 h1ba5d50_0 defaults libstdcxx-ng 9.1.0 hdf63c60_0 defaults libtiff 4.1.0 h2733197_0 defaults libuuid 1.0.3 h1bed415_2 defaults libxcb 1.13 h1bed415_1 defaults libxml2 2.9.9 hea5a465_1 defaults make 4.2.1 h1bed415_1 defaults ncurses 6.1 he6710b0_1 defaults openssl 1.1.1d h7b6447c_3 defaults pango 1.42.4 h049681c_0 defaults pcre 8.43 he6710b0_0 defaults pip 19.2.3 py27_0 defaults pixman 0.38.0 h7b6447c_0 defaults pycosat 0.6.3 py27h14c3975_0 defaults pycparser 2.19 py27_0 defaults pyopenssl 19.0.0 py27_0 defaults pysocks 1.7.1 py27_0 defaults python 2.7.16 h9bab390_7 defaults r 3.6.0 r36_0 defaults r-askpass 1.0 r36h14c3975_0 defaults r-assertthat 0.2.1 r36h6115d3f_0 defaults r-backports 1.1.4 r36h96ca727_0 defaults r-base 3.6.1 h9bb98a2_1 defaults r-boot 1.3_20 r36h6115d3f_0 defaults r-callr 3.2.0 r36h6115d3f_0 defaults r-class 7.3_15 r36h96ca727_0 defaults r-cli 1.1.0 r36h6115d3f_0 defaults r-clipr 0.6.0 r36h6115d3f_0 defaults r-clisymbols 1.2.0 r36h6115d3f_0 defaults r-cluster 2.0.8 r36ha65eedd_0 defaults r-codetools 0.2_16 r36h6115d3f_0 defaults r-crayon 1.3.4 r36h6115d3f_0 defaults r-curl 3.3 r36h96ca727_0 defaults r-desc 1.2.0 r36h6115d3f_0 defaults r-devtools 2.0.2 r36h6115d3f_0 defaults r-digest 0.6.18 r36h96ca727_0 defaults r-fansi 0.4.0 r36h96ca727_0 defaults r-foreign 0.8_71 r36h96ca727_0 defaults r-fs 1.2.7 r36h29659fb_0 defaults r-gh 1.0.1 r36h6115d3f_0 defaults r-git2r 0.25.2 r36h96ca727_0 defaults r-glue 1.3.1 r36h96ca727_0 defaults r-httr 1.4.0 r36h6115d3f_0 defaults r-ini 0.3.1 r36h6115d3f_0 defaults r-jsonlite 1.6 r36h96ca727_0 defaults r-kernsmooth 2.23_15 r36ha65eedd_4 defaults r-lattice 0.20_38 r36h96ca727_0 defaults r-magrittr 1.5 r36h6115d3f_4 defaults r-mass 7.3_51.3 r36h96ca727_0 defaults r-matrix 1.2_17 r36h96ca727_0 defaults r-memoise 1.1.0 r36h6115d3f_0 defaults r-mgcv 1.8_28 r36h96ca727_0 defaults r-mime 0.6 r36h96ca727_0 defaults r-nlme 3.1_139 r36ha65eedd_0 defaults r-nnet 7.3_12 r36h96ca727_0 defaults r-openssl 1.3 r36h96ca727_0 defaults r-pillar 1.3.1 r36h6115d3f_0 defaults r-pkgbuild 1.0.3 r36h6115d3f_0 defaults r-pkgconfig 2.0.2 r36h6115d3f_0 defaults r-pkgload 1.0.2 r36h29659fb_0 defaults r-prettyunits 1.0.2 r36h6115d3f_0 defaults r-processx 3.3.0 r36h96ca727_0 defaults r-ps 1.3.0 r36h96ca727_0 defaults r-purrr 0.3.2 r36h96ca727_0 defaults r-r6 2.4.0 r36h6115d3f_0 defaults r-rcmdcheck 1.3.2 r36h6115d3f_0 defaults r-rcpp 1.0.1 r36h29659fb_0 defaults r-recommended 3.6.0 r36_0 defaults r-remotes 2.0.4 r36h6115d3f_0 defaults r-rlang 0.3.4 r36h96ca727_0 defaults r-rpart 4.1_15 r36h96ca727_0 defaults r-rprojroot 1.3_2 r36h6115d3f_0 defaults r-rstudioapi 0.10 r36h6115d3f_0 defaults r-sessioninfo 1.1.1 r36h6115d3f_0 defaults r-spatial 7.3_11 r36h96ca727_4 defaults r-survival 2.44_1.1 r36h96ca727_0 defaults r-sys 3.2 r36h96ca727_0 defaults r-tibble 2.1.1 r36h96ca727_0 defaults r-usethis 1.5.0 r36h6115d3f_0 defaults r-utf8 1.1.4 r36h96ca727_0 defaults r-whisker 0.3_2 r36h6115d3f_4 defaults r-withr 2.1.2 r36h6115d3f_0 defaults r-xopen 1.0.0 r36h6115d3f_0 defaults r-yaml 2.2.0 r36h96ca727_0 defaults readline 7.0 h7b6447c_5 defaults requests 2.22.0 py27_0 defaults ruamel_yaml 0.15.46 py27h14c3975_0 defaults setuptools 41.4.0 py27_0 defaults six 1.12.0 py27_0 defaults sqlite 3.30.0 h7b6447c_0 defaults tk 8.6.8 hbc83047_0 defaults tktable 2.10 h14c3975_0 defaults tqdm 4.36.1 py_0 defaults urllib3 1.24.2 py27_0 defaults wheel 0.33.6 py27_0 defaults xz 5.2.4 h14c3975_4 defaults yaml 0.1.7 had09818_2 defaults zlib 1.2.11 h7b6447c_3 defaults zstd 1.3.7 h0b5b093_0 defaults ```
rokazok commented 4 years ago

And if you must use conda with R, you can get around this problem by adding package installations to your Dockerfile in this format (adapted from here): R --vanilla -e "Sys.setenv(TAR = '/bin/tar'); devtools::install_version('data.table', version='1.12.0', repos='https://cran.r-project.org')"

Note: The above uses devtools to install a specific package version.