歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> centos 科研環境搭建

centos 科研環境搭建

日期:2017/3/3 12:19:16   编辑:Linux技術
CentOS 7的安裝與其他Linux發行版的安裝差不多,個別地方稍有不同。
准備工作
准備材料
U盤:容量700M以上,用於制作U盤啟動盤,因為在制作啟動盤時會格式化U盤,所以U盤內不要包含重要資料CentOS 7.0 LiveCD ISO鏡像文件Universal USB installer:Windows下的U盤啟動盤制作工具一個已安裝Windows的電腦:用於制作U盤啟動盤
運行Universal USB installer並制作U盤啟動盤
將U盤插入計算機,重啟,進入BIOS選擇從U盤啟動,即可進入CentOS的LiveCD
進入LiveCD後,點擊桌面的“Install to Hard Drive”即可安裝
注:Linux下可以通過dd命令制作啟動盤,但由於對原理不夠了解,偶爾會導致制作失敗,或制作成功後U盤容量有問題,還是用Windows下的Universal USB installer比較靠譜。
安裝過程
選擇安裝過程中使用的語言:用默認的英文即可
選擇區域和城市:Asia和Shanghai
鍵盤使用English(US)而不是English(UK)
Hostname可以改也可以不改,我用saturn.geolab
安裝的目的地,選擇要使用的硬盤,在“Other Storage Options”處選擇“I will configure partioning”,即手動分區
分區
CentOS 7的分區似乎比較特別,自認為經驗很豐富的我在第一次安裝CentOS7時還是在分區上耽誤了很多時間。後來找到比較合適的分區方法,如下:
點擊“Click here to create them automatically”,即讓安裝程序幫忙分區默認的分區方案是使用LVM,其好處在於“當機器有多塊硬盤時,在使用的時候看上去只有一塊”默認的文件系統為XFS而不是以前常用的EXT4;自動分區完成後,再根據自己的需求,手動修改分區細節
/boot:CentOS自動分配,一定不要亂改;/:根目錄,理論上15G就夠了,不過現在硬盤不值錢,多分一些以防萬一;swap:與物理內存大小一致即可/opt:個人習慣是將第三方軟件都安裝在/opt下,所以分了70G/home:余下的全部空間點擊“Begin to Install”開始安裝
真正的安裝
設置root密碼
創建一般用戶
等待安裝完成
安裝完成,重啟
重啟後,同意License即可
對系統的若干修改
若干原則
為了搭建一個穩定的系統,盡量避免因為各種瞎折騰而導致的系統問題,特訂立了一些軟件安裝的原則。具體參見《CentOS 7下的軟件安裝方法與策略》。
給一般賬號root權限
默認情況下,一般賬號是沒有root權限的。為什麼不直接用root賬號,而是要給一般賬號root權限呢?
日常工作中使用root賬號,是非常糟糕且危險的習慣!無論是服務器還是個人電腦都是如此。安裝軟件時需要root權限,只能su切換到root賬戶再安裝。對於習慣使用sudo的人來說,還是有些麻煩。
假設賬戶名為seisman,要授予他root權限,則要修改配置文件/etc/sudoers
$ su # echo 'seisman ALL=(ALL) ALL' >> /etc/sudoers # 向配置文件中加入語句 # tail -1 /etc/sudoers # 檢查一下是否正確 seisman ALL=(ALL) ALL
其中seisman為當前用戶名。
添加第三方源
CentOS由於很追求穩定性,所以官方源中自帶的軟件不多,因而需要一些第三方源,比如EPEL、ATrpms、ELRepo、 Nux Dextop、RepoForge等。根據上面提到的軟件安裝原則,為了盡可能保證系統的穩定性,此處大型第三方源只添加EPEL源和 ELRepo源。
EPEL
EPEL即Extra Packages for Enterprise Linux,為CentOS提供了額外的10000多個軟件包,而且在不替換系統組件方面下了很多功夫,因而可以放心使用。
1
sudo yum install epel-release
執行完該命令後,在/etc/yum.repos.d目錄下會多一個epel.repo文件。
ELRepo
ELRepo包含了一些硬件相關的驅動程序,比如顯卡、聲卡驅動。
sudo rpm --importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvhhttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
完成該命令後,在/etc/yum.repos.d目錄下會多一個elrepo.repo文件。
安裝yum-axelget
yum-axelget是EPEL提供的一個yum插件。使用該插件後用yum安裝軟件時可以並行下載,大大提高了軟件的下載速度,減少了下載的等待時間:
sudo yum install yum-axelget
安裝該插件的同時會安裝另一個軟件axel。axel是一個並行下載工具,在下載http、ftp等簡單協議的文件時非常好用。
第一次全面更新
在進一步操作之前,先把已經安裝的軟件包都升級到最新版:
sudo yum update
要更新的軟件包有些多,可能需要一段時間。不過有了yum-axelget插件,速度已經快了很多啦。
重啟
此處建議重啟。
刪除多余的kernel
在前面的yum update執行之後,可能會將kernel也一起更新,則在啟動CentOS時啟動項中會有很多項。
確認當前使用的kernel版本號:
$ uname -r 3.10.0-123.9.3.el7.x86_64
查找當前系統安裝的所有kernel:
$ rpm -qa | grep kernel kernel-3.10.0-123.8.1.el7.x86_64 kernel-3.10.0-123.9.3.el7.x86_64 kernel-devel-3.10.0-123.9.2.el7.x86_64 kernel-tools-3.10.0-123.9.3.el7.x86_64 kernel-headers-3.10.0-123.9.3.el7.x86_64 kernel-3.10.0-123.9.2.el7.x86_64 kernel-tools-libs-3.10.0-123.9.3.el7.x86_64
kernel-devel-3.10.0-123.8.1.el7.x86_64 kernel-devel-3.10.0-123.9.3.el7.x86_64
可以看出有三個版本的kernel,123.8.1、123.9.2和123.9.3。除了最新的kernel外,建議多保留一個舊kernel,以免新kernel出現問題時可以通過舊kernel進入系統。因而此處刪除123.8.1版本的kernel:
sudo yum remove kernel-3.10.0-123.8.1.el7.x86_64 sudo yum remove kernel-devel-3.10.0-123.8.1.el7.x86_64
基礎開發環境
GCC系列
sudo yum install gcc # C編譯器 sudo yum install gcc-c++ # C++編譯器 sudo yum install gcc-gfortran # Fortran編譯器 sudo yum install compat-gcc-44 # 兼容gcc 4.4 sudo yum install compat-gcc-44-c++ # 兼容gcc-c++
4.4 sudo yum install compat-gcc-44-gfortran # 兼容gcc-fortran 4.4 sudo yum install compat-libf2c-34 # g77 3.4.x兼容庫
軟件開發輔助工具
sudo yum install make sudo yum install gdb # 代碼調試器 sudo yum install cmake # Cmake sudo yum install git # 版本控制
驅動程序
顯卡驅動
Linux默認只使用開源的顯卡驅動,就目前的情況來看,開源驅動的效果還是不錯的,但跟官方的閉源驅動相比還是有一定差距。最明顯的區別是,在使用SAC的ppk功能放大波形時,使用開源驅動會出現延遲,而使用官方閉源則整個過程非常順暢。
安裝顯卡檢測程序:
sudo yum install nvidia-detect
檢測顯卡型號以及對應的驅動:
$ nvidia-detect Probing for supported NVIDIA devices... [10de:06dd] NVIDIA Corporation GF100GL [Quadro 4000] This device requires the current 340.58 NVIDIA driver kmod-nvidia
此處提示需要安裝340.58版的顯卡驅動。安裝顯卡驅動:
sudo yum install nvidia-x11-drv nvidia-x11-drv-32bit sudo yum remove xorg-x11-glamor
重啟。
NTFS驅動
CentOS下默認無法掛載NTFS格式的硬盤。需安裝nfts-3g即可實現即插即用:
sudo yum install ntfs-3g
進階開發環境
Java環境
Java的一大特色在於跨平台,只有安裝了Java運行環境,即可運行Java程序:
sudo yum install java # java運行環境
Clang系列
Clang可以認為是GCC的替代品,可以用於編譯C、C++、Objective-C和Objective-C++。其提供了更友好的報錯信息,在有些方面比GCC更友好,同時其提供了一個代碼靜態分析器,可以用於分析代碼中可能出現的bug和內存溢出問題。
sudo yum install clang # clang編譯器 sudo yum install clang-analyzer # clang靜態分析器
Intel系列
Intel的大部分軟件都是非開源且收費的,但同時部分軟件也提供了Linux下的非商業免費版。比如icc、ifort、mkl數學庫以及代碼性能分析工具等。
Intel軟件的申請以及安裝參考《Intel非商業免費開發工具》。
還有一點需要注意的是,Intel也提供了並行相關的幾個命令,比如mpicc、mpirun。所以openmpi、mpich和intel三者,在並行時只能用其中一個。
並行計算
並行可以用openmpi,也可以用mpich,二者應該是並列的。但是由於二者提供了幾乎一樣的命令,所以二者可以同時安裝,但是不可以同時處於使用狀態。
openmpi
安裝openmpi:
sudo yum install openmpi openmpi-devel
安裝後,二進制文件位於/usr/lib64/openmpi/bin下,動態庫文件位於/usr/lib64/openmpi/lib下,因而實際使用的話還需要額外的配置,在.bashrc中加入如下語句:
export PATH=/usr/lib64/openmpi/bin/:${PATH} module load mpi/openmpi-x86_64
mpich
安裝mpich:
sudo yum install mpich mpich-devel
安裝後,二進制文件位於/usr/lib64/mpich/bin下,動態庫文件位於/usr/lib64/mpich/lib下,因而實際使用的話還需要額外的配置,在.bashrc中加入如下語句:
export PATH=/usr/lib64/mpich/bin/:${PATH} module load mpi/mpich-x86_64
腳本語言環境
Perl
CentOS 7.0自帶了Perl 5.16.3(2013年03月11日發布),目前的最新版本為5.20.1(2014年09月14日發布)。
系統自帶Perl
系統自帶Perl,就目前來看,版本不算老,基本夠用。官方源和EPEL源中提供了1000多個模塊,可以直接用yum安裝:
sudo yum install perl-Parallel-ForkManager # 並行模塊
若源中沒有已打包好的模塊,也可以使用perl自帶的cpan來安裝模塊。
優先級:yum > cpan。
plenv管理新版本
若需要使用最新版本的perl,可以使用plenv安裝新版本的perl,並使用plenv提供的cpanm命令安裝模塊:
cpanm install Parallel::ForkManager # 並行模塊
Python
CentOS 7.0自帶Python 2.7.5,目前Python 2的最新版本為2.7.8,Python 3的最新版本為3.4.2。
系統自帶Python
系統自帶的Python 2.7.5,基本已經夠用,Python 2常用的模塊在官方源或EPEL源中也有有編譯好的包,因而直接通過yum安裝即可:
sudo yum install python-matplotlib # 2D繪圖庫 sudo yum install PyQt4 # Qt4的Python綁定 sudo yum install numpy # 數組操作庫 sudo yum install scipy # 科學計算庫 sudo yum install python-requests # 網頁請求 sudo yum install python-docopt # 命令行參數分析器 sudo yum install gdal-python
# gdal的Python綁定
pyenv管理Python3
Python2與Python3之間是不完全兼容的,而我以Python3為主,所以需要安裝一個Python3。
首先,安裝pyenv來管理多個Python版本,然後利用pyenv安裝anaconda3(即Python 3.4)。anaconda自帶了眾多科學計算所需的包,免去了安裝的麻煩,對於其他包,則可以利用Python自帶的pip安裝:
pip install requests pip install docopt
日常軟件
Office套件
LibreOffice
大多數Linux發行版都自帶LibreOffice:
sudo yum install libreoffice
LibreOffice與Microsoft Office的兼容性不太好,操作界面與MS Office也有較大差異,讓人不太習慣。
WPS Office
若在Linux下對於文檔處理有更高一些的要求,可以嘗試目前還處於測試版的WPS Office for Linux。WPS Office的兼容性以及界面都比LibreOffice要好很多,值得期待,當然還是不能做到完全兼容MS Office。
安裝過程參考CentOS下安裝WPS Office一文。
TeXLive 2014
系統是自帶了TeXLive,版本較老,還是安裝最新版比較好。
根據Linux下安裝TeXLive一文,從ISO文件中安裝TeXLive。
安裝完成後,更新所有模塊:
tlmgr update --all
Mendeley
Mendeley是一個跨平台的文獻管理軟件,其內部自帶了一個可以添加注釋的PDF閱讀器。
下載Generic Linux (64 bits) :http://www.mendeley.com/download-mendeley-desktop
安裝:
tar -xvf mendeleydesktop-1.12.3-linux-x86_64.tar.bz2 # 解壓 sudo mv mendeleydesktop /opt # 復制到/opt下 cd /opt/mendeleydesktop/bin # cd進去 ./install-mendeley-link-handler.sh /opt/mendeleydesktop/bin/mendeleydesktop sudo yum install qtwebkit # 安裝依賴包
注銷重新登陸,在Application->Education下即可看到mendeley的相關項目。不過是沒有軟件的圖標的,強迫症不能忍,用下面的命令解決:
cp /opt/mendeleydesktop/share/icons/hicolor/128x128/apps/mendeleydesktop.png ~/.local/share/icons/
Google Chrome浏覽器
默認的浏覽器是Firefox,還是更喜歡Chrome浏覽器。
在/etc/yum.repos.d/目錄下新建文件google-chrome.repo,向其中添加如下內容:
[google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
安裝:
sudo yum install google-chrome-stable
由於Google的官方源在國內可能無法正常訪問,導致安裝失敗或安裝後無法正常更新。有人在國內服務器上做了Google官方源的鏡像,若你相信該鏡像是安全的,則可使用此國內鏡像代替Google官方源,google-chrome.repo的內容改為:
[google-chrome] name=google-chrome #baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch #gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub mirrorlist=http://1dot75cm.tk/mirrorlist gpgkey=http://1dot75cm.tk/src/linux_signing_key.pub
gpgcheck=1 enabled=1
Opera浏覽器
也可以選擇Opera浏覽器。
下載地址:http://www.opera.com/download/guide/?os=linux
選擇CentOS RPM package進行下載。下載完成後,執行:
sudo yum localinstall opera-12.16-1860.x86_64.rpm
想要卸載的話,就執行:
sudo yum remove opera
Flash插件
Flash插件主要是看在線視頻的時候要用。Google浏覽器自帶了Flash插件,所以這裡安裝的flash插件主要是為了firefox。
sudo rpm -ivhhttp://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux sudo yum install flash-plugin
解壓軟件
解壓7z或zip格式需要p7zip,由EPEL提供:
sudo yum install p7zip
解壓rar格式需要unrar,該軟件由Nux Dextop提供,但該源與EPEL源有沖突,所以直接下載該rpm進行安裝:
sudo yum localinstallhttp://li.nux.ro/download/nux/dextop/el7/x86_64/unrar-5.0.12-2.el7.nux.x86_64.rpm
FTP客戶端
FTP客戶端,還是有界面的filezilla比較方便些。
sudo yum install filezilla
效率類軟件
這一類工具能夠在不同方面提高科研的效率,也提高了使用者的體驗。
終端模擬器
Gnome自帶的終端模擬器是gnome-terminal。經常會需要開十幾個終端,切換和管理起來比較麻煩。
terminator
terminator有很多功能,我只用到了終端分割的功能。Ctrl+Shift+O對終端水平分隔,Ctrl+Shift+E對終端垂直分隔,Alt+上下左右可以在各子終端中切換。
sudo yum localinstallhttp://li.nux.ro/download/nux/dextop/el7/x86_64/terminator-0.97-6.el7.nux.noarch.rpm
guake
有些時候需要臨時執行一兩個命令,但是又不想額外啟動一個終端的情況下,guake是個不錯的選擇。
sudo yum localinstallhttp://li.nux.ro/download/nux/dextop/el7/x86_64/guake-0.4.4-11.el7.nux.x86_64.rpm
安裝完成後,在Application->System Tools裡找到guake Terminal即可啟動。按下F12即可呼出guake,再次按下F12即可隱藏。也可在終端執行guake-prefs對gauke進行配置。
zsh與oh my zsh
Linux下有很多shell,比如最常見的bash,除此之外還有csh、ksh。zsh也是一個shell。
zsh的特點在於:
語法基本完全兼容於bash,一般用戶完全體會不到其區別zsh提供命令補全特性,比bash的補全要更好用可配置性強
完全不經配置的zsh已經很好用了,一般用戶也沒必要花時間研究配置。oh my zsh是一群人一起維護的一套zsh配置文件。直接用這個配置文件,稍稍了解一點會有更好的體驗。
安裝zsh:
sudo yum install zsh
安裝oh my zsh:
curl -Lhttp://install.ohmyz.sh | sh
上面的命令,做了如下幾件事情:
下載oh my zsh到~/.oh-my-zsh備份已有的zsh配置文件~/.zshrc,並復制新的.zshrc文件將當前用戶的默認shell由bash改成zsh
第三步中,會報錯如下:chsh: "/usr/bin/zsh" is not listed in /etc/shells.,需要手動修改默認shell:
chsh -s /bin/zsh
chsh命令修改的是login shell,因而需要退出當前用戶並重新登陸,以後用戶的默認shell就從bash變成了zsh,所有的配置都不用寫到.bashrc而要寫到.zshrc中。
在.zshrc中可以選擇喜歡的主題,以及適當數量的插件。下面列出我在用的插件:
git
該插件為git的眾多常用命令提供了更簡單的別名,比如git status的別名是gst,大大簡寫了擊鍵數。但該插件中git mergetool --no-prompt的別名是gmt,與GMT軟件沖突,需要將該插件的目錄git復制到custom/plugins下,然後刪除其中的gmt別名;
命令補全插件: pip, pyenv
sudo:按兩下ESC即可在當前命令前加上sudo
yum:為常見的yum命令提供別名
autojump
autojump是一個非常智能的目錄快速切換的工具。簡單演示如下:
$ pwd /home/seisman $ cd Desktop $ cd /opt $ cd /usr/local # 用j命令迅速從/usr/local跳轉到與des匹配的目錄,這裡只有Desktop可以匹配 $ j des $ pwd /home/seisman/Desktop
用法差不多就這樣,具體看項目主頁。
安裝:
sudo yum install autojump sudo yum install autojump-zsh
中文輸入法
剛安裝的系統可能是沒有中文輸入法的,源中帶的中文輸入法應該是ibus,使用效果一般。fcitx是更好的選擇,基於fcitx框架的搜狗輸入法或許是更更好的選擇。
參考CentOS7安裝fcitx中文輸入法。
HostTool
科學上網幾乎已經成為每個搞科研的人的必備技能。
科學上網的方式有很多,這裡只說HostTool:https://hosts.huhamhire.com/
HostTool科學上網本質上就是用最新的host文件替代了系統自帶的host文件。
下載解壓後,進入目錄,直接sudo python2 hoststool.py即可運行,具體的用法自己研究一下。
VirtualBox虛擬機
有時候可能需要在Windows下做一些操作,如果機器性能足夠好的話,可以安裝VirtualBox虛擬機。
wgethttp://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo sudo mv virtualbox.repo /etc/yum.repos.d/ sudo yum install VirtualBox-4.3
這樣就可以在Linux下虛擬一個Windows啦,好開心。
等寬字體
編程要用等寬字體,這點是常識了。一款適合編程的等寬字體,至少要滿足如下幾個要求:
易於區分“1”、“i”和“l”
易於區分“0”、“o”和“O”
易於區分中文下的左引號和右引號
美觀
目前選擇的Source Code Pro。將解壓後的字體文件放在~/.fonts目錄下,並修改終端、gedit以及其他編輯器、IDE等的默認字體。
同步網盤
網盤根據功能大概可以分為兩類:同步網盤和備份網盤。既然是同步網盤,Linux下的客戶端必不可少。就目前已知的情況來看,CentOS下能使用的同步網盤只有兩個:Dropbox和堅果雲。
我主要用同步網盤將Linux機器上的PDF文獻同步到iPad上。
Dropbox
又是一個被牆的工具,熟練掌握科學上網技巧的人可以使用,一般人還是不要用了。
wgethttps://www.dropbox.com/download?dl=packages/fedora/nautilus-dropbox-1.6.2-1.fedora.x86_64.rpm sudo rpm -i nautilus-dropbox-1.6.2-1.fedora.x86_64.rpm
堅果雲
國內的全平台同步網盤,不限空間,但限制每月上傳流量1G,下載流量3G。
# 堅果雲依賴於notify-python,該包位於Nux Dextop源中 sudo yum localinstallhttp://li.nux.ro/download/nux/dextop/el7/x86_64/notify-python-0.1.1-25.el7.nux.x86_64.rpm # 下載 wgethttps://jianguoyun.com/static/exe/installer/fedora/nautilus_nutstore_amd64.rpm sudo rpm -i nautilus_nutstore_amd64.rpm
工具軟件
視頻下載工具
you-get和youtube-dl <https://github.com/rg3/youtube-dl>是兩個用於從視頻網站上下載視頻文件的工具。其中,後者支持的網站更多,但前者對國內的視頻網站支持更好。
pip install you-get pip install youtube-dl
PDF處理工具
cpdf是一個跨平台的PDF處理工具,可以完成常見的PDF合並、切割、加密解密、書簽、水印等功能。
下載已編譯好的二進制包,解壓,並將與自己的平台對應的二進制文件復制到${HOME}/bin目錄下即可使用。
BT軟件
transmission是Linux下常用的Torrent下載軟件:
sudo yum install transmission
在“Application”->“Internet”->中可以啟動transmission。
其他工具
sudo yum install nfs-utils # 掛載NFS文件系統所必須 sudo yum install xclip # 終端的文本復制工具 sudo yum install ImageMagick # 其中的import和convert命令很有用 sudo yum install dos2unix unix2dos # Windows和Linux換行符互相轉換
地球物理相關
SAC
參考《SAC參考手冊》中的相關章節。
GMT
安裝GMT4安裝GMT5
TauP:走時計算工具
rdseed:SEED轉SAC的工具
win32tools:Hinet自定義的win32格式轉SAC格式
pssac:用GMT繪制SAC文件
distaz:根據兩點經緯度計算震中距和方位角
娛樂
sudo yum install 2048-cli # 2048命令行版
未完成
Google Earth
理論上Google Earth應該可以跟Google Chrome用類似的方法來安裝的,但是由於Google Earth的rpm包存在bug,導致無法通過上面的方法安裝。
$ cd - $ wgethttps://dl.google.com/dl/earth/client/current/google-earth-stable_current_x86_64.rpm $ rpm2cpio google-earth-stable_current_x86_64.rpm | cpio -div $ sudo cp -r opt/google/earth /opt/google/ $ sudo cp etc/cron.daily/google-earth /etc/cron.daily/
$ rm -rf usr opt etc $ sudo ln -s /opt/google/earth/free/googleearth /usr/bin/google-earth
安裝完成後,啟動後奔潰。。
Copyright © Linux教程網 All Rights Reserved