Windows安裝WSL–Ubuntu
- 2019 年 11 月 28 日
- 筆記
第一步:安裝wsl
WSL(Ubuntu)將Ubuntu和Win10無縫連接起來,讓開發人員可以不使用虛擬機,就輕鬆地在同一個系統中使用win10和Ubuntu,你可以用它代替Cywin32和babun.
- 最新版win10(18年3月更新)
- 在win10的設置中打開更新和安全,打開針對開發人員選項
- 然後在程序和功能中打開Linux子系統。
- 重啟計算機後,打開應用商店搜索下載ubuntu18.04
- 舊版的win10或者離線安裝 參考下面的內容安裝bash。 http://www.cnblogs.com/VAllen/archive/2017/04/03/BashOnWindowsDownloadAndInstallError.html 推薦選擇16.04的ubuntu。
- 添加ubuntu到快速訪問 如果你需要經常在win10資源管理器對ubuntu的文件進行操作,那麼在C盤搜索rootfs這個文件夾,這就是ubuntu在win10上的儲存位置。 將rootfs文件夾拖放到資源管理器的快速訪問。(你也可以添加其下的/home/你的用戶文件夾)
- 獲取權限 直接在win10資源管理器操作ubuntu的文件可能是無效的,這是因為win10的默認用戶並不是超級管理員,對ubuntu的權限是只讀的。 你需要取得rootfs文件夾的所有權限。(可以使用「鼠標管家」這個軟件,添加菜單,管理員取得所有權限)
第二步:安裝wsl terminal
wsl-terminal是一個很好用的WSL終端。
- 下載WSL: https://github.com/goreliu/wsl-terminal/releases 下載失敗請試試以前的版本
- 在鼠標右鍵添加
Open WSL Here
: 在wsl程序目錄下,有個tools目錄,運行其中的1-add-open-wsl-terminal-here-menu。(刪除則運行1-remove開頭的腳本)
注意:最新版windows需要把wsl-terminal安裝在非C盤
第三步:更新root用戶的密碼
桌面點擊鼠標右鍵,選擇Open WSL Here
打開Bash。
- 更新root密碼:
sudo passwd
這一步需要輸入你在下載ubuntu後建立的用戶密碼
第四步:更換軟件源(apt源和pip源)
系統默認的apt源是國外的,下載軟件速度慢,python的pip源也很慢,我們都換成阿里雲的源。
- 更換apt源:
cd /etc/apt/sudo cp sources.list sources.list.bak && sudo vim sources.list
刪除其中所有內容,替換成:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
sudo apt updatesudo apt upgrade
- 修改pip源: 創建pip配置文件:
mkdir ~/.pip && vi ~/.pip/pip.conf
在打開的vim中輸入下文並保存:
[global]trusted-host=mirrors.aliyun.comindex-url=http://mirrors.aliyun.com/pypi/simple/
第五步:安裝zsh
zsh能讓你通過鍵盤的上鍵,查找以前輸入的命令。 例如,你可以輸入sudo
然後按向上鍵,就會出現以前輸入的以sudo
開頭的命令。
- 安裝zsh:
sudo apt -y install zsh
- 安裝oh-my-zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- 讓wsl-terminal默認啟動zsh: 在wsl-terminal安裝目錄的/etc中,修改wsl-terminal.conf中相應的部分為
;shell=/bin/bashshell=/bin/zsh
如果提示文件只讀,採取第一步中的獲取權限
第六步:安裝Vim plug和YouCompleteMe
Vim plug是vim插件管理工具,YCM是很好用的C、python代碼補全工具,也支持Go、Rust等其他語言。
- 下載Vim Plug:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- 在vimrc中添加安裝配置
vi ~/.vimrc
在其中添加
" Specify a directory for pluginscall plug#begin('~/.vim/plugged')" Make sure you use single quotesPlug 'jiangmiao/auto-pairs'Plug 'davidhalter/jedi-vim', {'for': 'python'}Plug 'Valloric/YouCompleteMe', {'for': 'python'}"可以添加已經手動安裝的插件"Plug '~/.vim/bundle/YouCompleteMe'" Initialize plugin systemcall plug#end()
保存退出,並進入vi
vi
按下:
鍵進入命令行,輸入
PlugInstall
注意:
YCM的python補全依賴jedi-vim
因為YCM包有200多M,所以需要下載很久。
第七步:編譯YCM
安裝完成後提示YCM server錯誤,這是正常的,因為ycm需要手工編譯出YCM core庫。
- 安裝YCM編譯需要的依賴
sudo apt -y install cmake build-essential python3-dev
- 切換到YCM目錄:
cd ~/.vim/plugged/YouCompleteMe
- 更改編譯使用python3(使用python2.7時跳過本步驟):
vi ./install.py
把第一行末尾的python改為python3 - 編譯YCM core:
./install.py
參考: vim安裝YouCompleteMe插件,與python補全插件jedi-vim
第八步:配置YCM
YouCompleteMe配置後才能發揮出它強大的功效。
- 在vimrc中設置YCM使用python3支持:
"python版本設置,使用python2.7時去掉末尾的數字3let g:ycm_python_binary_path='/usr/bin/python3'" 語法關鍵字補全let g:ycm_seed_identifiers_with_syntax=1"從第2個鍵入字符就開始羅列匹配項let g:ycm_min_num_of_chars_for_completion=2"最小候選標識符長度let g:ycm_min_num_identifier_candidate_chars = 5"按下Ctrl+空格直接彈出所有類和函數,要先關閉系統中的輸入法切換快捷鍵let g:ycm_key_invoke_completion = '<C-Space>'"配置文件路徑let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'"把ycm識別的標識符和語法關鍵字放在一起let g:ycm_seed_identifiers_with_syntax = 1"注釋和字符串中的文字也會被收入補全,默認關閉let g:ycm_collect_identifiers_from_comments_and_strings=1"字符串輸入補全,字符串中輸入.加字母時會引發錯誤,默認開啟let g:ycm_complete_in_strings=1
不同於很多vim插件,YCM需要有配置。在vim啟動後,YCM會找尋當前路徑以及上層路徑的.ycm_extra_conf.py。在~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/中提供了默認的模板。 複製配置文件:
cp ~/.vim/plugged/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/
第九步 python和pip配置
- 修改默認python3
sudo ln -s /usr/bin/python3 /usr/bin/pythonwget bootstrap.pypa.io/get-pip.py
- 安裝pip
sudo python get-pip.py
第十步 pypy3安裝配置(如果不使用pypy請跳過)
- 下載pypy3並解壓 到pypy官網下載pypy3.6-v7.0.0-linux64.tar.bz2,然後用下面的命令解壓
tar -jxvf pypy3.6-v7.0.0-linux64.tar.bz2
解壓命令詳解
- 解壓後把文件夾命名為pypy3
- 移動pypy3到/usr/local/lib
sudo mv pypy3 /usr/local/lib/
- 建立軟鏈接,使其可執行
sudo ln -s /usr/local/lib/pypy3/bin/pypy3 /usr/bin/pypy
- 給pypy安裝pip
sudo pypy get-pip.pysudo ln -s /usr/local/lib/pypy3/bin/pip /usr/bin/pipp
注意:你也可以使用類似pip-pypy的命令來代替pipp,這只是我個人習慣
第十一步 使用virtualenvwrapper虛擬環境
通常不同的項目會使用不同的庫版本,虛擬環境能讓你免弄壞系統環境的風險。virtalenvwrapper基於virtualenv,但是更方便。
- 安裝virtualenvwrapper
sudo pip install -U virtualenvwrapper
這會自動安裝依賴包virtualenv。
- 打開zshrc,添加環境變量等後,重啟zsh終端
vi ~/.zshrcexport PATH=/usr/local/lib/pypy3/bin:$PATHexport VIRTUALENVWRAPPER_PYTHON=/usr/local/lib/pypy3/bin/pypy3source /usr/local/lib/pypy3/bin/virtualenvwrapper.sh
- 新建虛擬環境
mkvirtualenv -p /usr/local/lib/pypy3/bin/pypy3 env1
默認創建在~/. virtualenvs目錄下 -p指定了建立時使用的版本,如果你使用默認的python3,可以使用
mkvirtualenv env1
- 自動選擇虛擬環境,在zshrc末尾添加
workon env1
註:找不到virtualenvwrapper.sh,可以使用下面的命令查找腳本
sudo find / -path "/mnt" -prune -o -name virtualenvwrapper.sh -print
第十二步 Vim語法檢查和格式化代碼
syntastic是語法檢查工具,它需要flake8的支持,yapf用來格式化python代碼。
- 安裝flake8語法檢查和yapf代碼格式化
sudo pipp install flake8 yapf
- 在vimrc中安裝syntastic vimrc中添加
Plugin 'vim-syntastic/syntastic'"(下面的配置放在vundle安裝語句外)"vimrc設置flake8作為語法檢查器let g:syntastic_python_checkers = ['flake8']"高亮錯誤"let g:syntastic_enable_highlighting=1"自動跳轉到發現的第一個錯誤或警告處"let g:syntastic_auto_jump = 1"yapf自動格式化快捷鍵"autocmd FileType python nnoremap <F8> :0, $!yapf<CR><CR>
保存退出後,用PluginInstall命令安裝。
yapf僅對py文件有效, 如果出現語法錯誤,可能會出現亂碼,這時按u鍵恢復py文件。
第十三步 安裝MariaDB數據庫
MariaDB是MySQL作者的新分支,CentOS已經默認使用MariaDB代替MySQL。
- 安裝
sudo apt -y install mariadb-server python3-pymysql
- 重啟數據庫,以創建sock文件
sudo service mysql restart
- 切換到root用戶,進入數據庫
su -# 輸入密碼mysql
- 在mysql> 提示符下創建用戶
# 創建一個名為:admin 密碼為:admin 的用戶。insert into mysql.user(Host,User,Password) values("localhost","admin",password("admin"));# 刷新權限flush privileges;# 賦予admin用戶所有權限GRANT ALL ON *.* TO 'admin'@'localhost';# 刪除用戶及所有權限DROP USER account;
- 在
~/.zshrc
中設置alias
alias db='sudo service mysql start'
- 注意:mariaDB需要手動創建數據庫
- Ubuntu上mariaDB的默認字符集為utf8mb4,兼容utf-8,不需要進行更改。Centos需要設置charset。
第十四步:(僅對本人有效)修改.vimrc,添加molakai主題
- 複製配置好的vimrc
cp /mnt/d/.vimrc ~/.vimrc
使用舊版的.vimrc後,出現進入vim沒有配色的情況。 這是因為vundle在vimrc中的配置是filetype off,關掉即可。 當需要使用vundle的時候再打開這個選項。
- 複製vim的molokai配色
mkdir -p ~/.vim/colors && cp /mnt/d/molokai.vim ~/.vim/colors/molokai.vim
重啟服務,大功告成。