Windows的Linux子系統搭建數據科學環境

近日看到R語言中文社區上一篇關於Windows的Linux子系統搭建Python和R環境的文章,加上蝦神也在宣傳,因而我也動手來玩一玩。以前很早就瞭解過WSL,但一直沒動手使用,趁機來學習一下。git

1 Windows Subsystem for Linux(WSL)簡介

簡介一下WSL。github

Windows Subsystem for Linux(簡稱WSL)是一個爲在Windows 10上可以原生運行Linux二進制可執行文件(ELF格式)的兼容層。它是由微軟與Canonical公司合做開發,目標是使純正的Ubuntu 14.04 "Trusty Tahr"映像能下載和解壓到用戶的本地計算機,而且映像內的工具和實用工具能在此子系統上原生運行。WSL提供了一個微軟開發的Linux兼容內核接口(不包含Linux代碼),來自Ubuntu的用戶模式二進制文件在其上運行。該子系統不能運行全部Linux軟件,例如那些圖形用戶界面,以及那些須要未實現的Linux內核服務的軟件。不過,這能夠用在外部X服務器上運行的圖形X Window系統緩解。此子系統起源於命運多舛的Astoria項目,其目的是容許Android應用運行在Windows 10 Mobile上。此功能組件從Windows 10 Insider Preview build 14316開始可用。——維基百科編程

2 WSL安裝

在開始菜單裏搜索"Microsoft Store"。ubuntu

接着在"Microsoft Store"中搜索"Linux"。vim

從中選擇一個Linux的發行版安裝便可。我選的是Ubuntu 18.04 LTS,我的比較熟悉Ubuntu,同時也想試一下18.04版本。點擊獲取後,"Microsoft Store"就會自動下載安裝。固然安裝完後,你能夠把它固定到開始屏幕比較方便。windows

固然如今啓動WSL是失敗的,由於還得在Windows中啓用該功能。依舊是在開始菜單搜索Windows功能。瀏覽器

接着打鉤"適用於Linux的Windows子系統"。bash

這個時候就能愉快地開啓Ubuntu系統了(固然通常上面勾選完須要重啓系統,這類就跳過了)。服務器

若是第一次啓動的話,會要求你建立一個Linux的帳戶和密碼,熟悉Linux系統的同窗應該很清楚了,這就很少說了,若是不熟悉的,建議去學習一下Linux的基礎管理和操做。這樣就愉快地能夠開始在Windows上玩耍Linux系統了。另外這個系統實際上是安裝在以下的地址內,這樣子後期管理時也能夠快速上手使用。curl

C:\Users\你的用戶名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs

同時WSL直接將你的其餘磁盤掛載到了mnt文件夾下面,能夠直接經過/mnt/d訪問。

cd /mnt/f
ls -l

若是以爲下載速度略慢的話,徹底能夠更新apt源文件來提速。能夠看到在/etc/apt下面的sources.list

咱們這裏在本身的F盤建立了一個WSL的工做空間,能夠用來作各類相關的事情,譬如這裏在更新apt源文件前,先備份到這個空間內。須要提醒下,我這裏都先運行了sudo su,以root帳戶執行。因此不須要在命令前加sudo,若是不是root帳戶,請加sudo。

mkdir /mnt/f/WSLworkspace
cp /etc/apt/sources.list /mnt/f/WSLworkspace/sourcesbackup.list

而替換源一般使用vim或者gedit來操做,這個時候知道咱們的系統安裝路徑的好處就來了。只須要在Windows上打開對應文件夾下的sources.list(建議用Notepad++),複製粘貼就能夠。給出幾個源。

清華

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

阿里源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

中科大

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

接着就能夠進行更新軟件了。

sudo apt-get update
sudo apt-get upgrade

3 WSL搭建數據科學環境

接下來就是搭建數據科學環境(Python和R)了。這裏推薦安裝Anaconda,固然若是想從頭開始安裝也是容許的。先去Anaconda 官網找到最新的版本。我Windows上基本都是Python2,所以在這個版本上主要以Python3爲主,就是圖中紅框的。下載連接以下。

https://repo.continuum.io/archive/Anaconda3-2018.12-Linux-x86_64.sh

接着用wget下載,能夠改變路徑。

wget -P /mnt/f/WSLworkspace https://repo.continuum.io/archive/Anaconda3-2018.12-Linux-x86_64.sh

接下來就是安裝Anaconda3。

bash /mnt/f/WSLworkspace/Anaconda3-2018.12-Linux-x86_64.sh

中間能夠選擇安裝位置,這裏默認安裝在/root/Anaconda3,接着就等待安裝結束了。安裝過程當中會提示是否將Anaconda3添加到環境變量,選yes。安裝完會提示是否要安裝Microsoft VS code,我建議能夠不裝。接着再Linux命令行裏敲入。

jupyter lab --allow-root

關於這個的配置有一些參考的內容見後面的連接,這裏不詳細展開,若是以root帳戶運行的話必須加上--allow -root。

接着在Windows瀏覽器裏訪問http://localhost:8888/lab?。

除了Python3,咱們還推薦裝個R,用於混合編程。這個時候畢竟本機已經安裝了原生R,我決定在Linux上搭建一個Microsoft R Open(MRO)。一樣是打開MRO官網

利用wget下載MRO。

wget -P /mnt/f/WSLworkspace https://mran.blob.core.windows.net/install/mro/3.5.1/microsoft-r-open-3.5.1.tar.gz

因爲我用的Ubuntu18.04,還須要安裝libpng12庫。

wget -P /mnt/f/WSLworkspace https://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
dpkg -i libpng12-01_1.2.54-1ubuntu1_amd64.deb

定位到MRO下載路徑。

cd /mnt/f/WSLworkspace
tar -xf microsoft-r-open-3.5.1.tar.gz
cd microsoft-r-open
./install.sh

接着須要看MRO和MKL的許可,先按回車看許可,接着按q鍵退出,按y進行安裝。

R安裝好後,還須要配置到jupyter中。首先須要先安裝devtools,Ubuntu 18.04還須要先安裝libssl。

apt-get install libssl-dev

接着進入到R中。

install.packages('devtools')
library(devtools)
install_github('IRKernel/IRkernel')

這邊發現IRkernel裝不上,還須要裝libcurl。

apt-get install libcurl4-openssl-dev

最後發現github鏈接老有問題。

Github也有一個相同的issues,能夠安裝離線包,在github上點擊clone or download,下載到文件夾中。

devtools::install('/mnt/f/WSLworkspacre/IRkernel-master')

終於安裝成功。最後在R裏,再敲入以下命令。

IRkernel::installspec(name = 'ir35', displayname = 'MRO')

大功告成。

運行一波代碼。

雖然R語言中文社區給出了比較完整的教程,可是具體搭建過程當中,仍是無數的坑。但願你們也是動手實踐爲主。最近發現好多須要在Linux系統上安裝的包和庫,所以有這個環境很是地好。

參考連接:

windows10 Linux子系統文件目錄

再見虛擬機!在Win10中使用Linux版本的R和Python

Ubuntu 18.04 軟件源修改爲國內源(文件或界面形式)

設置 jupyter notebook 可遠程訪問

Running as root is not recommended. Use --allow-root to bypass

Running as root is not recommended. Use --allow-root to bypass

Github Issues:Installation of packages using Devtools Fails - error setting certificate

error setting certificate verify locations, install_github

沒法安裝github上的R包:error setting certificate verify

Github Issues:Installation failed: Timeout was reached during installation of IRkernel

相關文章
相關標籤/搜索