通过 Anaconda 安装 R

在一台不通外网只能连上某个特定 mirror 的机器上,需要用 Python 和 R。曲线救国,用 Conda 装好了 R,记录一下。

安装 Miniconda

安装:

cd /my_dir
wget http://mirror/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -f -p miniconda3
export PATH=$PATH:/my_dir/miniconda3/bin

替换 Anaconda 源,并且禁用 defaults(因为连不上):

conda config --add channels http://mirror/anaconda/pkgs/free/
conda config --add channels http://mirror/anaconda/cloud/conda-forge/
conda config --add channels http://mirror/anaconda/pkgs/r/
conda config --set show_channel_urls true
conda config --remove channels defaults
conda config --show

创建环境并安装 R

创建环境,装 r-base,然后就可以用 R 了!截止到这一步,miniconda 一共是 833M。

conda create -n my-r-env
source activate my-r-env
conda install -c http://mirror/anaconda/pkgs/r/ r-base
R

在 Bash 里装包

从 Aanaconda 装 R 包(其实从 CRAN 直接装就行了,更符合平时的使用习惯)。

conda install -c http://mirror/anaconda/pkgs/r/ r-ggplot2
conda install -c http://mirror/anaconda/pkgs/r/ r-data.table

在 R 里升级 / 装包

可以看一下包都装在哪里。

.Library  # 可以看一下包都装在哪里
.libPaths()  # 可以看一下包都装在哪里

安装包:

options(download.file.method = "wget") # 不写不行,原因未知,放弃探索
repo = 'http://mirror/CRAN/'
update.packages(repos=repo, ask=F) # 升级所有包
install.packages('devtools', repos=repo) # 安装包

从源码安装自己下载的包:

install.packages('xxxxxxxxx.tar.gz', repos=NULL, type="source")

踩坑

  1. 从 conda-forge 装的 r-base 无法运行,报错 /my_dir/miniconda3/envs/my-r-env/lib/R/bin/exec/R: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory。但是从 pkgs/r/ 装的就没毛病,放弃。
  2. 安装 R 包的时候,如果是 Github 上直接下载的 zip,需要在服务器上 unzip 后重新 tar -czf xxx.tar.gz xxxx。否则会报错 Error in rawToChar(block[seq_len(ns)])......

发表评论

匿名网友

拖动滑块以完成验证