從零到一,Linux開發環境一步到位
安裝manjaro-deppin linux系統
下載manjaro-deepin映象:
ofollow,noindex">https://sourceforge.net/projects/manjarolinux-community/files/archive/deepin/17.1.7/manjaro-deepin-17.1.7-stable-x86_64.iso/download
如果是要真機安裝,下載usbwriter,虛擬機器跳過此步
https://sourceforge.net/projects/usbwriter/
真機安裝準備一個U盤,使用上面下載好的usbwriter 把manjaro-deepin映象寫入到U盤,插到電腦裡引導即可
虛擬機器安裝,建立虛擬機器就不用講了吧,百度有,和建立其他虛擬機器步驟一樣

技術分享圖片
安裝瀏覽器
firefox 是自帶的,新增如下addon附件,安裝中文環境
https://addons.mozilla.org/zh-CN/firefox/addon/chinese-simplified-zh-cn-la/?src=search
新增SwitchyOmega,並配置自動規則列表地址(為後面的shadowsockes翻牆配置做準備):
https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt安裝Chrome
sudo pacman -S google-chrome
更新倉庫國內源
增加archlinuxcn軟體倉庫以及各種開發工具源,提高下載速度。
1、更改配置檔案
sudo nano /etc/pacman.conf
新增以下內容:
[archlinuxcn] SigLevel = Optional TrustedOnly Server = http://mirrors.ustc.edu.cn/archlinuxcn/$arch [arch4edu] SigLevel = Never Server = http://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch
如下圖:Ctrl+X退出並儲存更改

截圖_2018-10-14_23-52-48.png
2、更新並選擇最快的源列表
sudo pacman-mirrors -g
3、更新系統
sudo pacman -Syyu
4、安裝archlinuxcn-keyring
sudo pacman -S archlinuxcn-keyring
如果上面安裝失敗,則執行以下命令:
sudo pacman -Syu haveged sudo systemctl start haveged sudo systemctl enable haveged sudo rm -rf /etc/pacman.d/gnupg sudo pacman-key --init sudo pacman-key --populate archlinux sudo pacman -S archlinuxcn-keyring sudo pacman-key --populate archlinuxcn
安裝中文輸入法
# fcitx-rime非常推薦的拼音輸入法 # fcitx-im 全部安裝 # fcitx-configtool 圖形化配置工具 # fcitx: 輸入法本體 # fcitx-gtk2,gtk3,qt4,qt5:對於不同 GUI 框架的支援 # fcitx-cloudpinyin:雲輸入支援 # fcitx-skin-material:一個很不錯的面板 # fcitx-rime:我比較推薦的輸入法 # 命令支援一併安裝,如下: sudo pacman -S fcitx-rime fcitx-im fcitx-configtool fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fcitx-skin-material fcitx-cloudpinyin fcitx-sogoupinyin
之後就是還需要更改 ~/.xprofile
sudo nano ~/.xprofile
新增內容,重啟之後就可以支援快捷鍵切換:
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx
pacman的常用命令
在軟體中心解除安裝不需要的軟體,安裝wps、chrome、shadowsocks-qt5、eclipse-java、gimp、vlc、vim、vim-youcompleteme-git、Foxit Reader、electronic-wechat(具體根據個人情況,可用“yaourt 軟體名”的方式安裝軟體)
安裝 pacman -S
刪除 pacman -R
移除已安裝不需要軟體包 pacman -Rs
刪除一個包,所有依賴 pacman -Rsc
升級包 pacman -Syu
查詢包資料庫 pacman -Ss
搜尋以安裝的包 pacman -Qs
顯示包大量資訊 pacman -Si
本地安裝包 pacman -Qi
清理包快取 pacman -Sc
常用的一些軟體
安裝網易雲音樂
sudo pacman -S netease-cloud-music
壓縮解壓縮
sudo pacman -S file-roller unrar unzip p7zip
Git ssh
pacman -S git openssh
安裝wps
yaourt -S wps-office
VSCode
pacman -S visual-studio-code-bin
sudo timedatectl set-local-rtc 1
開啟AUR,支援更多的軟體

截圖_2018-10-15_19-39-10.png
軟體中心搜尋deep,安裝qq

截圖_2018-10-15_00-48-02.png
系統會自動安裝上依賴的deep-wine等

截圖_2018-10-15_01-04-30.png
在deep的搜尋之中切換到AUR庫,選擇以下微信版本
微信

深度截圖_選擇區域_20181015010938.png
安裝vim
sudo pacman -S vim
安裝spf13-vim配置
curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
JDK
sudo pacman -S jdk8
配置Java環境:
export JAVA_HOME=/usr/lib/jvm/default export JRE_HOME=${JAVA_HOEM}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
虛擬機器
Archlinux維基有更詳細的安裝說明:VMware(簡體中文).
VMware workstation 14 啟用金鑰:
CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3WK-AFXEK-488JP-A7MQX-XL8YF AC5XK-0ZD4H-088HP-9NQZV-ZG2R4 ZC5XK-A6E0M-080XQ-04ZZG-YF08D ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8 FF590-2DX83-M81LZ-XDM7E-MKUT4 FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD AALYG-20HVE-WHQ13-67MUP-XVMF3
uget & aria2
sudo pacman -S uget sudo pacman -S aria2
然後在uget的介面點選: 編輯->設定->外掛, 在外掛匹配順序選擇aria2
堅果雲
sudo pacman -S nutstore
shadownsocks-qt5
sudo pacman -S shadownsocks-qt5
jetbrains toolbox
非常推薦安裝jetbrans全家桶管理工具,更新和管理十分方便。軟體中心搜尋toolbox
下載之後進行啟用
Step 1: IMPORTANT:
add 0.0.0.0 account.jetbrains.com
to your host file ( google if you don't know where it is )
Step 2:
then get the key from http://idea.lanyus.com/getkey

深度截圖_選擇區域_20181017123450.png
安裝Go
toolbox點選下載goland,安裝完畢開啟軟體,開啟setting

深度截圖_選擇區域_20181017124047.png
配置goroot
如果之前沒有配置過go環境的話,這裡應該是空白的。

深度截圖_選擇區域_20181017132659.png
安裝go環境
官方下載地址: https://golang.org/dl/ 。
需要翻牆,打不開的用這個國內的地址: https://golang.google.cn/dl/
選擇對應的linux版本,這裡選擇了1.9.2(看自己需求,也可以下載最新版本)

深度截圖_選擇區域_20181017130821.png
1、下載二進位制包:go1.4.linux-amd64.tar.gz。
2、將下載的二進位制包解壓至 /usr/local目錄。
tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz
3、將 /usr/local/go/bin 目錄新增至PATH環境變數:
export PATH=$PATH:/usr/local/go/bin
4、驗證是否安裝成功
go version

深度截圖_選擇區域_20181017132221.png
kotlin
從 https://repo.continuum.io/archive/index.html 上下載對應版本的Anaconda。
比如我選擇安裝 Anaconda3-5.0.1-Linux-x86_64.sh ,(對應python3.6,x64系統)可以採用下列命令。
wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
下載完成成後直接進行安裝:
bash Anaconda3-5.0.1-Linux-x86_64.sh
安裝過程中會需要不斷回車來閱讀並同意license。安裝路徑預設為使用者目錄(可以自己指定),最後需要確認將路徑加入使用者的 .bashrc 中。
最後,立即使路徑生效,需要在使用者目錄下執行:
source .bashrc
此時,開啟python就是最新的3.6版本了。
為了保持更新,可以在終端中執行:
conda upgrade --all
如果報下面的錯誤,很可能是因為設定了 PYTHONPATH 環境變數。這將導致Anaconda無法呼叫正常的自己的庫(Anaconda執行不依賴PYTHONPATH環境變數)。
Traceback (most recent call last): File "/home/*****/anaconda3/bin/conda", line 4, in <module> import re File "/home/*****/anaconda3/lib/python3.6/re.py", line 142, in <module> class RegexFlag(enum.IntFlag): AttributeError: module 'enum' has no attribute 'IntFlag'
因此建議在開啟python前執行
unset PYTHONPATH
或者暴力地將上述命令同樣寫入.bashrc檔案中並用source生效。
Anaconda除了python外還包括下面幾個有用的工具:
- Anaconda Navigtor:用於管理工具包和環境的圖形使用者介面,後續涉及的眾多管理命令也可以在 Navigator 中手工實現。
- Jupyter notebook :基於web的互動式計算環境,可以編輯易於人們閱讀的文件,用於展示資料分析的過程。
- qtconsole :一個可執行 IPython 的仿終端圖形介面程式,相比 Python Shell 介面,qtconsole 可以直接顯示程式碼生成的圖形,實現多行程式碼輸入執行,以及內建許多有用的功能和函式。
- spyder :一個使用Python語言、跨平臺的、科學運算整合開發環境。
在命令列中輸入:
conda create -n python27 python=2.7
想要使用python2.7環境同樣需要命令 activate python27(這裡面的python27是前面create時自己定義的名字),該條命令在linux和mac環境中使用 source activate python27 。接下來看到命令列的最前端多出來(python27),這時候已經處在python2.7的環境中了。想要退出python2.7進入python3.6,需要再次鍵入命令deactivate(linux和mac下用source deactivate命令)。
更換版本前,強烈建議將映象源配置好,這樣下載速度會快很多,下面給出了清華源的設定命令。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
安裝額外執行如下命令:
conda create -n py27 python=2.7 # 此處py27是自定義命名,名稱一旦確認,下面的命令需與此處一致
conda install -n py27 jupyter # 安裝 jupyter notebook
conda install -n py27 spyder # 安裝 Spyder
安裝完成後,開啟notebook可以看到新建按鈕出現了python2

20171128150325511.png
如果沒有出現,執行下面程式碼則會出現python2。
source activate py27 # 啟用python2
jupyter notebook # 開啟notebook

深度截圖_選擇區域_20181016184310.png
如果需要在新版本中安裝(上述python2版本),命令如下:
首先切換到對應版本
Linux方法如下:
source activate py27
pip install xxx # xxx為python包名稱

深度截圖_選擇區域_20181016185655.png

深度截圖_選擇區域_20181016185725.png
生成配置檔案
jupyter notebook --generate-config
Writing default config to: /home/philos/.jupyter/jupyter_notebook_config.py
生成密碼
進入jupyter介面輸入以下函式,獲取密碼
from notebook.auth import passwd
passwd()

深度截圖_選擇區域_20181016193106.png
修改預設配置檔案(檢視上面打印出來的檔案路徑)
sudo nano /home/philos/.jupyter/jupyter_notebook_config.py
設定訪問notebook的ip,*表示所有IP,這裡設定ip為都可訪問
c.NotebookApp.ip='*'
填寫剛剛生成的密文 注意前面新增一個小寫的u
c.NotebookApp.password = u'sha1:c4e5bb82220c:b366753bc43f4ffc7dae208ef6263340b8d9cc3c'
禁止notebook啟動時自動開啟瀏覽器(在linux伺服器一般都是ssh命令列訪問,沒有圖形介面的。所以,啟動也沒啥用)
c.NotebookApp.open_browser = False
指定訪問的埠,預設是8888。
c.NotebookApp.port =8889
c.NotebookApp.notebook_dir = '/home/user/user1' #指定工作空間
c.PAMAuthenticator.encoding = 'utf8' #指定utf-8編碼,解決讀取中文路徑或者檔案亂碼問題
ctrl + W 可以快速搜尋到想要修改的內容
啟動 jupyter notebook
root 使用者需使用以下命令 jupyter notebook --allow-root
本地瀏覽器訪問網址: http://localhost:8889
這裡可以建設區域網,公司內網既可以一起訪問。或者放到伺服器上,通過 http://serverIP :埠號進行訪問。

深度截圖_選擇區域_20181016194638.png
上面的操作做完,可以多個使用者使用了 但是工作空間只有一個,且只能一個人去開啟服務,不能關閉,這點有點但疼痛。
實現多使用者:
首先新增linux 使用者
useradd user2
passwd user2
然後登入user2
重複上面的操作,生成配置檔案,並修改配置檔案
注意埠號和工作空間不能跟上面一樣就好了。
然後執行命令
jupyter notebook
發現報錯,忘了截圖了,大概意思是/run/user/0/ 的許可權問題
切換root 使用者或者sudo 命令
chmod 777 /run/user/0/jupyter
chmod 777 -R /run/user/0/jupyter
chmod 777 -R /run/user/0/
JupyterHub的安裝與配置——讓Jupyter支援多使用者teamviewer
manjaro的teamviewer有一些問題,pacman裝上之後會出現"Not ready,.."的情況,此時應該:
sudo teamviewer --daemon enable
再開啟teamviewer即可!
linux備份
timeshift
- 許可權問題
sudo gedit /etc/rsyncd.conf
將其中的
uid = nobody
gid = nobody
改為
uid = root
gid = root
備份結束之後一定要改回來!!
系統備份
我目前的解決方案是 rsync,下面給出一個我從 Arch wiki 那裡魔改來的備份指令碼.區別基本上就是使用了更新和刪除,就是如果目標位置已經有備份,他只會更新新的檔案,並刪除已經被刪除了的檔案。另外,我還把 steam 的路徑新增到了黑名單,這樣可以讓我節省幾十個G的遊戲的硬碟空間。如果要還原的話,你只需要把 rsync 的引數互換一下,就以把備份檔案複製回原來的位置了。
#!/bin/sh START=$(date +%s) rsync -aAXvu --delete /* /Your/Destination/Directory --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/var/lib/pacman/sync/*,/home/towdium/.local/share/Steam/*} FINISH=$(date +%s) echo "total time: $(( ($FINISH-$START) / 60 )) minutes, $(( ($FINISH-$START) % 60 )) seconds" | tee /run/media/towdium/Files/manjaro/"Backup from $(date '+%A, %d %B %Y, %T')"
雙硬碟時,機械硬碟掛載
- 格式化硬碟為EXT4
如果時windows過來的NTFS,一定要進行格式化,否則無法寫入
fdisk -l # 列出所有分割槽,找到想要格式化的分割槽名,如/dev/sda1
sudo mkfs -t ext4 /dev/sda1 # 格式化完成
- 分割槽
sudo fdisk /dev/sda #格式化後名稱為/dev/sda
輸入n、p、1、兩下回車、wq、回車,分成一個區
- 掛載
新建資料夾作為掛載點
mkdir /home/ray/Documents/Data
給定寫入許可權
chown -R 500:ray /run/media/ray/data/
sudo chown ray:ray /run/media/ray/data/
掛載
sudo mount -t ext4 /dev/sda1 /home/ray/Documents/Data/
- 開機自動掛載
sudo gedit /etc/fstab
加入:
/dev/sda1 /home/ray/Documents/Data ext4 defaults 0 2
新增字型
1. 安裝依賴
sudo pacman -S fontconfig
2. 下載對應的字型檔案,並且放到指定位置
- 微軟雅黑: https://pan.baidu.com/s/1pL5asEv
- 放入/usr/share/fonts/my_fonts/中
- 建立快取
mkfontscale
mkfontdir
fc-cache -fv
docker + pyspark + jupyter 安裝
參考: http://maxmelnick.com/2016/06/04/spark-docker.html
1. 本地安裝docker
1.1 安裝docker包
sudo pacman -S docker
1.2 防止許可權問題,加入使用者許可權
sudo usermod -aG docker XXX
1.3 重啟服務(或者重啟計算機)
sudo systemctl restart docker
1.4 檢視安裝是否成功
sudo docker --version
2 配置spark 映象(images)和容器(containers)
首先,直接建立容器,如果映象不存在,則會自動下載:
sudo docker run -d -p 8888:8888 --name spark -v $PWD:/home/jovyan/work jupyter/all-spark-notebook start-notebook.sh --NotebookApp.password='sha1:5b1e121347e8:15266c00b25c2e497714de20a674d5b8935e09dd'
命令解釋:
- docker run 載映象基礎上建立容器
- -d 後臺執行
- -p 8888:8888 指定埠
- -- name spark 命名容器
- -v $PWD:/home/jovyan/work 掛載 all-spark-notebook的工作目錄到當前目錄,使得檔案可以在docker內外共享(jovyan是該映象內建的使用者名稱,不要更改!)
- jupyter/all-spark-notebook 映象名稱,來自 https://hub.docker.com/r/jupyter/all-spark-notebook/
- start-notebook.sh --NotebookApp.password='sha1:5b1e121347e8:15266c00b25c2e497714de20a674d5b8935e09dd' 指定密碼而不是token,密碼先得轉為hash碼( 怎麼轉 )
在瀏覽器中輸入' http://localhost:8888 ',即可開啟容器對應的notebook
其次,檢視docker狀態
# 顯示當前容器 docker ps # 顯示所有容器 docker ps -a # 顯示所有映象 docker images # 刪除容器 docker rm container_name # 刪除映象,必須先刪除依賴該映象的容器 docker rmi image_name
最後,直接開啟或是關閉
# 關閉容器 docker stop spark # 開啟容器 docker start spark