今天在windows7系統(tǒng)下安裝ubuntu系統(tǒng),同時安裝一些專業(yè)軟件类嗤,其中在ubuntu下安裝的NCL是比較費腦筋的一項工作糊肠,在此分享一下安裝過程和可能遇到的問題。
一遗锣、序言
首先NCL的安裝主要分為兩個步驟货裹,第一步是適合操作系統(tǒng)版本的NCL下載,第二步是NCL的安裝精偿,那么針對這兩個步驟官網(wǎng)都有非常詳細的介紹弧圆,分別是第一步下載(Download NCL binaries and/or source code)和第二步安裝(Install NCL/NCAR Graphics from a precompiled binary),鑒于英文閱讀的難度笔咽,下面我用中文詳細的講一下操作步驟和問題搔预。
二、NCL下載
NCL下載官網(wǎng)的原文說明如下(直接粘貼原文):
- Go to www.earthsystemgrid.org
- Click on "NCL: NCAR Command Language" (bottom middle of page).
- Click on "NCL Version 6.3.0" or the version you're interested in.
- Click on whether you want an OPeNDAP binary, a non OPeNDAP binary, or source code. If you don't know what OPeNDAP is, then you probably don't need it.
- Click on "Download Options".
- Click on the name of the file you want to download, and it should automatically download to your machine.
具體翻譯如下
- 訪問網(wǎng)站www.earthsystemgrid.org
- 點擊網(wǎng)站上的 "NCL: NCAR Command Language"(位置在主頁下面的中部)
- 點擊"NCL Version 6.3.0" 或者其他你感興趣的版本
- 點擊OPeNDAP binary叶组、non OPeNDAP binary或者source code的其中一個拯田,如果你并不知道OPeNDAP是什么的話,那你可能并不需要它(意思就是選擇non OPeNDAP binary)
- 點擊 "Download Options"
- 點擊你想下載文件的名字甩十,就會自動下載到你的機器上面了
值得關(guān)注的是步驟4和步驟6中要面臨選擇版本的問題船庇。
第4步 OPeNDAP,個人意見是如果你和我一樣不知道什么是OPeNDAP侣监,那就選“not OPeNDAP-enabled”版本好了鸭轮,或者去了解一下OPeNDAP的含義再做決定。
第9步 很關(guān)鍵橄霉,筆者此時遇到的選項如下:
仔細比較這幾個選擇窃爷,主要區(qū)別在于三點:
- 系統(tǒng)版本;
- gcc版本(gcc是一套由GNU開發(fā)的編程語言編譯器,支持多種語言按厘,詳見維基百科-gcc詞條医吊,沒興趣了解也沒關(guān)系);
- 處理器類型(即i686刻剥,x86_64遮咖,64bit等選項)。
前面給出的鏈接包含了如何了解自己系統(tǒng)版本和gcc版本的提示造虏,即輸入以下三條命令:
uname -m
cat /etc/issue
gcc –-version
如下圖所示,之后所有的終端指令也都是在這個命令框里輸入麦箍,搜索terminal即可找到
分別能夠獲取自己系統(tǒng)的處理器類型(筆者為x86_64)漓藕,系統(tǒng)版本(筆者為Ubuntu14.04)以及gcc版本(14.04附帶版本為4.8.4)。第一點沒問題挟裂,第二點NCL官方也有說明:
If your flavor of Linux or “bitness” doesn’t match, then you can
usually use one of the other ones. For example, if you have a CentOS
or Fedora system, then try a RedHat binary. If you have a Ubuntu
system, try a Debian binary.
即對于Ubuntu享钞,應(yīng)當(dāng)選擇Debian版本。問題是诀蓉,14.0.4自帶的gcc版本為4.8栗竖,而這里最大只有472,且官網(wǎng)有如下要求:
If your version of gcc doesn’t match any in the list, then use a
version of gcc that is lower or just slightly higher (for example, if
you have gcc 4.4.6, you can probably use a gcc 4.4.5 binary).
含義就是說ubuntu的gcc版本要比下載的NCL要求的低或者高一點渠啤,也就是說我的電腦版本是4.8大于472(也就是4.7.2)狐肢,這樣安裝了可能有問題,雖然沒有試過在高版本gcc下使用NCL到底會不會出現(xiàn)問題沥曹,但保險起見份名,我們最好還是將系統(tǒng)的gcc版本從4.8降至4.7。筆者在這個問題上耗費了半天時間妓美,查閱到了很多復(fù)雜的方法都不順利且不明所以僵腺,最后發(fā)現(xiàn)可以通過一個簡便的方法安裝低版本的gcc并將其更改為系統(tǒng)默認(rèn)的版本(需要計算機聯(lián)網(wǎng))。
解決方法如下
1壶栋、在ubuntu終端中輸入:
sudo apt-get install gcc-4.7
sudo命令表示需要特殊權(quán)限辰如,在輸入后可能系統(tǒng)要求輸入用戶密碼,其實就是安裝Ubuntu時設(shè)定的密碼贵试,亦即開機密碼琉兜。輸入密碼時屏幕沒有反應(yīng),不用管它锡移,輸完敲回車便可呕童。在此之后如果發(fā)生權(quán)限問題,應(yīng)該都可以在命令前加上sudo再試試淆珊。此時計算機開始在服務(wù)器源中下載4.7版本的gcc夺饲。下載完畢后,到gcc目錄下會發(fā)現(xiàn)多了gcc-4.7的相關(guān)文件夾(輸入gcc -v可查看gcc的目錄位置)。
如果遇到了
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關(guān)系樹
正在讀取狀態(tài)信息... 完成
現(xiàn)在沒有可用的軟件包 gcc-4.7往声,但是它被其它的軟件包引用了擂找。
這可能意味著這個缺失的軟件包可能已被廢棄,
或者只能在其他發(fā)布源中找到
E: 軟件包 gcc-4.7 還沒有可供安裝的候選者
這樣的錯誤的話浩销,
解決方法: 在你的軟件源中添加源:
sudo gedit /etc/apt/source.list
添加:deb http://cz.archive.ubuntu.com/ubuntu lucid main
保存退出贯涎,再執(zhí)行一遍gcc-4.7安裝語句就可以安裝了,參考自sudo apt-get install E: 軟件包 * 還沒有可供安裝的候選者慢洋,
2塘雳、接下來添加gcc的配置管理,再選擇默認(rèn)的gcc版本:
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
sudo update-alternatives –config gcc
第一行后面的50表示優(yōu)先級普筹,數(shù)字越大败明,則對應(yīng)版本在第二行輸入后出來的結(jié)果中排位越靠前。輸入第三行之后太防,出來幾個選項妻顶,就會發(fā)現(xiàn)我們現(xiàn)在默認(rèn)使用的就是gcc-4.7了。
以上工作都完成后蜒车,gcc降級工作應(yīng)該就結(jié)束了讳嘱,準(zhǔn)備工作也已完成,此時輸入gcc –-version酿愧,出來的結(jié)果是4.7.3沥潭。
3、最后我們下載 ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz這個版本就ok了寓娩,完全符合要求
三叛氨、NCL安裝
這里基本按照前文給出的NCL官網(wǎng)指導(dǎo)來做。
1棘伴、終端中輸入:
mkdir /usr/local/ncl-6.3.0
表示在/usr/local/目錄下新建一個名為ncl-6.3.0的文件夾寞埠。ncl壓縮包(這里指ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz)拷貝入該文件夾中。注意焊夸,usr文件夾為只讀仁连,因此在圖形界面上不好操作,需要在終端中進行阱穗,例如將壓縮包從home文件夾(我放在了home中饭冬,如果在其他文件夾要修改路徑)中移動到/usr/local/ncl-6.1.2文件夾中,可輸入:
mv /home/ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz /usr/local/ncl-6.3.0
接著輸入:
cd /usr/local/ncl-6.3.0
表示進入該文件夾揪阶。解壓剛剪切到該目錄中的壓縮包:
tar -zxvf ncl_ncarg-6.3.0.Linux_Debian7.8_x86_64_nodap_gcc472.tar.gz
接下來昌抠,是官網(wǎng)聲稱“Must”的一步:設(shè)置環(huán)境變量。輸入“cd”回到根目錄鲁僚,再輸入“l(fā)s -a”炊苫,查看給出的隱藏文件列表中以“.”開頭的文件裁厅,并按如下分類酌情處理:
From tcsh/csh (the file might be “.cshrc” or “.tcshrc”):
setenv NCARG_ROOT /usr/local/ncl-6.1.2
setenv PATH $NCARG_ROOT/bin:$PATH
From bash or ksh (the file might be “.bash_profile” or “.bashrc” or “.bash_profile”):
export NCARG_ROOT=/usr/local/ncl-6.1.2
export PATH=$NCARG_ROOT/bin:$PATH
From sh (the file might be “.bash_profile” or “.bashrc” or “.bash_profile”):
NCARG_ROOT=/usr/local/ncl-6.1.2
PATH=$NCARG_ROOT/bin:$PATH
export NCARG_ROOT
export PATH
筆者在列表中找到了“.bashrc”,因此適用第二種情況侨艾。注意执虹,官網(wǎng)沒有講清楚的是,在終端輸入這兩句命令是沒用的唠梨,重啟后再用NCL會提示“Command not found”袋励。我們要把這兩句寫入.bashrc文件中。因此我們要做的是輸入:
gedit ~/.bashrc
即在gedit(也可以使用vi)編輯器下將這兩句命令当叭,也就是
export NCARG_ROOT=/usr/local/ncl-6.1.2
export PATH=$NCARG_ROOT/bin:$PATH
加入到.bashrc文件中茬故,在文件末尾加入。
接下來要使環(huán)境變量生效蚁鳖,還需要在ubuntu終端執(zhí)行:
source .bashrc
此時NCL安裝完畢均牢,大功即將告成。官方提供了一個檢驗NCL是否安裝正確的方法才睹,即輸入:
ng4ex gsun01n -clean
但這時仍可能報錯,提示缺少csh甘邀,還要再安裝csh(仍要聯(lián)網(wǎng)):
sudo apt-get install csh
完成琅攘!再輸入ng4ex命令,畫出圖形松邪,如下圖坞琴,點擊鼠標(biāo)的話幾個圖形陸續(xù)演示,說明安裝成功逗抑。
注:因為Ncl版本不同剧辐,本人在最后遇到ncl: error while loading shared libraries: libgfortran.so.3: cannot open shared object file: No such file or directory錯誤,該錯誤的意思是缺少libgfortran3的安裝.
只要在最后輸入
sudo apt-get install libgfortran3
即可邮府。