[問題] 重複source於是找不到ifort的原因請教

看板Linux作者 (降太)時間10月前 (2023/06/07 11:49), 編輯推噓3(307)
留言10則, 3人參與, 10月前最新討論串1/1
目前使用rocky linux,gcc,gfotran及ifort皆已安裝,如需版號協助判斷我再補上 昨天以sudo取得權限後安裝intel fortran(目前有免費版,可以快去,不然哪天又 關上這個大門了),並且在各帳號測試都能使用(以"ifort-v 指令測試") 目前於.bashrc文件設定 source /opt/intel/oneapi/setvars.sh 以利登入時有ifort可以用 :: initializing oneAPI environment ... -bash: BASH_VERSION = 4.4.20(1)-release args: Using "$@" for setvars.sh arguments: :: clck -- latest :: compiler -- latest :: debugger -- latest :: dev-utilities -- latest :: inspector -- latest :: itac -- latest :: mpi -- latest :: tbb -- latest :: oneAPI environment initialized :: [***@rockylinusx ~]$ ifort -v ifort version 2021.9.0 然後今天遇到如果使用者再度source ~/.bashrc 的話 [pub@rockylinusx ~]$ source ~/.bashrc :: WARNING: setvars.sh has already been run. Skipping re-execution. To force a re-execution of setvars.sh, use the '--force' option. Using '--force' can result in excessive use of your environment variables. .....(以下為flag說明,先省略) [xxx@rockylinusx ~]$ ifort -v bash: ifort: 找不到指令... 這時如設定flags並單獨source setvars.sh [xxx@rockylinusx ~]$ SETVARS_ARGS="--force" [xxx@rockylinusx ~]$ export SETVARS_ARGS [xxx@rockylinusx ~]$ source /opt/intel/oneapi/setvars.sh :: initializing oneAPI environment ... -bash: BASH_VERSION = 4.4.20(1)-release args: Using "SETVARS_ARGS" for setvars.sh arguments: --force :: clck -- latest :: compiler -- latest :: debugger -- latest :: dev-utilities -- latest :: inspector -- latest :: itac -- latest :: mpi -- latest :: tbb -- latest :: oneAPI environment initialized :: [***@rockylinusx ~]$ ifort -v ifort version 2021.9.0 ifort又可以正常使用了,請問有人知道這是什麼原因導致的嗎 是否表示我在.bashrc的設定不能只單純寫個 "source /opt/intel/oneapi/setvars.sh" 必須要加入其他指令來避免? 或者是單純就是增加--force,讓每次/.bashrc都強制 重新載入呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.40.145 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1686109779.A.C8D.html

06/07 19:23, 10月前 , 1F
看一下你自己貼上來的訊息, WARNING 那段.
06/07 19:23, 1F

06/08 14:11, 10月前 , 2F
感謝你的回覆,我好奇為什麼既然已經載入了(畢竟我寫在
06/08 14:11, 2F

06/08 14:11, 10月前 , 3F
.bashrc),那為什麼再source一次就會妨礙使用呢?是因
06/08 14:11, 3F

06/08 14:11, 10月前 , 4F
為這個動作會改變我的環境變數嗎?(因為ifort直接變成
06/08 14:11, 4F

06/08 14:11, 10月前 , 5F
找不到),那為什麼其他的指令的使用似乎不受這個影響
06/08 14:11, 5F

06/08 14:11, 10月前 , 6F
?是不是setvars sh裡面設定的關係呢?
06/08 14:11, 6F

06/08 16:58, 10月前 , 7F
setvar.sh是明文,可以自己讀讀看它的條件判斷
06/08 16:58, 7F

06/08 16:59, 10月前 , 8F
然後自己實驗看看重複source時echo $PATH的差異
06/08 16:59, 8F

06/08 23:25, 10月前 , 9F
剛才安裝 intel/oneapi-hpckit 實測沒問題,
06/08 23:25, 9F

06/08 23:26, 10月前 , 10F
可能原 PO 的 .bashrc 在哪裏把 setvars.sh 的處理弄壞了...
06/08 23:26, 10F
文章代碼(AID): #1aV_vJoD (Linux)