2014年6月4日

MPICH3.1安裝

  • 已成功安裝在Ubuntu 14.04, Gentoo與Mint 16上,大部份機器使用icc/icpc與iort,部份機器使用gcc/gfortran。
  • 所有軟體均安裝在/opt/mpich資料夾下。
安裝步驟:
  1. 下載mpich3.tar.gz至/tmp目錄下並解壓縮
  2. cd /tmp/mpich-3.1/
    ./configure --prefix=/opt/mpich 
  3. make -j4 2
  4. sudo make install (要注意sudo的environment會重設的問題)

設定PATH: 
  • sudo vim /etc/bash.bashrc
  • sudo export PATH="$PATH:/opt/mpich/bin"
  • 確認PATH設定成功:mpicc

設定LDCONFIG:
  • sudo touch /etc/ld.so.conf.d/mpich.conf
  • sudo echo "/opt/mpichbin" >> /etc/ld.so.conf.d/mpich.conf
  • sudo ldconfig
  • 確認ldconfig設定成功:ldconfig -p|grep mpich



sudo的PATH重置問題

sudo在執行的時候預設會重置PATH環境變數
而不是使用root的PATH環境變數.

例.以root帳號開啟終端機(需先修改PATH讓他跟預設不同)
$env
PATH=/root/cbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

$sudo env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

看出差別了嗎?
root帳號有我自己加進去的/root/cbin
而用sudo去執行就沒有,因為他會重置成/etc/login.defs裡面的設定

方法1:在.bashrc設定alias,在sudo時帶入PATH環境變數(僅套用至目前帳號) 
$nano ~/.bashrc
加入以下這行
alias sudo='sudo env PATH=$PATH'

方法2:直接修改login.defs(影響全系統)
$nano /etc/login.defs

在這兩行修改成自己想要的
ENV_SUPATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/games

方法3:關閉重置環境變數的設定(影響全系統) 
$visudo
打開sudo設定檔,加入或修改以下這行
Defaults    !env_reset


方法4:設定保留PATH環境變數的設定(影響全系統) 
$visudo
打開sudo設定檔,加入或修改以下這行
Defaults    env_keep = "PATH"