在一台不通外网只能连上某个特定 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")
踩坑
- 从 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/
装的就没毛病,放弃。 - 安装 R 包的时候,如果是 Github 上直接下载的 zip,需要在服务器上 unzip 后重新
tar -czf xxx.tar.gz xxxx
。否则会报错Error in rawToChar(block[seq_len(ns)])......
。