コマンドが$ PATHに追加されましたが、パスが$ PATHに追加された場所が見つかりませんでした。which
はバイナリのフルパスを表示しますが、および/を見ると.bashrc
結果.bash_profile
は/etc/profile
返されませetc/profile.d
ん。 grepの一致は他の項目に関連付けられています。
このパスが$ PATHに追加された場所をどのように見つけることができますか?
# which mpicc
/opt/openmpi/bin/mpicc
# grep -r openmpi .bash_profile
# grep -r openmpi .bashrc
alias of230='module load openmpi-x86_64; source /export/apps/mechanics/OpenFOAM/OpenFOAM-2.3.0/etc/bashrc WM_NCOMPPROCS=4 foamCompiler=ThirdParty WM_COMPILER=Gcc48 WM_MPLIB=SYSTEMOPENMPI'
# grep -r openmpi /etc/profile
alias of230='module load openmpi-x86_64; source /export/apps/mechanics/OpenFOAM/OpenFOAM-2.3.0/etc/bashrc WM_NCOMPPROCS=4 foamCompiler=ThirdParty WM_COMPILER=Gcc48 WM_MPLIB=SYSTEMOPENMPI'
# grep -r openmpi /etc/profile.d/
/etc/profile.d/rocks-hpc.csh:# Add default module definition for rocks-openmpi.
/etc/profile.d/rocks-hpc.csh:# Load the rocks-openmpi module if ROCKS_USER_MODULE_DEF not defined
/etc/profile.d/rocks-hpc.csh: module -s add rocks-openmpi
/etc/profile.d/rocks-hpc.sh:# load the defaults rocks-openmpi module
/etc/profile.d/rocks-hpc.sh:# Add default module definition for rocks-openmpi.
/etc/profile.d/rocks-hpc.sh: module add rocks-openmpi 2>/dev/null
$ PATHも参照してください。
# echo $PATH
/opt/openmpi/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/bio/ncbi/bin:/opt/bio/mpiblast/bin:/opt/bio/EMBOSS/bin:/opt/bio/clustalw/bin:/opt/bio/tcoffee/bin:/opt/bio/hmmer/bin:/opt/bio/phylip/exe:/opt/bio/mrbayes:/opt/bio/fasta:/opt/bio/glimmer/bin:/opt/bio/glimmer/scripts:/opt/bio/gromacs/bin:/opt/bio/gmap/bin:/opt/bio/tigr/bin:/opt/bio/autodocksuite/bin:/opt/bio/wgs/bin:/opt/eclipse:/opt/ganglia/bin:/opt/ganglia/sbin:/usr/java/latest/bin:/opt/maven/bin:/opt/maui/bin:/opt/torque/bin:/opt/torque/sbin:/opt/pdsh/bin:/opt/rocks/bin:/opt/rocks/sbin:/opt/condor/bin:/opt/condor/sbin:/opt/gridengine/bin/linux-x64:/export/apps/mathematics/matlab2012a/bin:/opt/maui/bin:/export/apps/mathematics/matlab2012a/bin:/export/apps/mathematics/Mathematica/10.3/Executables:/usr/local/chem/g09-64-D01:/home/mahmood/bin:/opt/maui/bin:/opt/torque/bin:/opt/torque/sbin
答え1
あなたが使用しているマシンには、即座にソフトウェアを提供する一種のモジュールシステムがあるようです。「モジュール」システム(SourceForgeがダウンしているため、リンクは現在機能していません。)
私のシステムもモジュールを使用します。
$ type mpicc
-ksh93: whence: mpicc: not found
$ module load openmpi
$ type mpicc
mpicc is a tracked alias for /opt/openmpi/1.7.5gcc4.4/bin/mpicc
にリストされているディレクトリでモジュールを見つけます$LMOD_DEFAULT_MODULEPATH
。これらのディレクトリの1つでファイルが見つかりましたopenmpi/default.lua
。ファイルはLuaスクリプトです。
スクリプトから:
local mpipath= "/opt/openmpi/" .. useVer .. usedComp .. compVer
prepend_path("PATH", pathJoin(mpipath, "bin"))
(スクリプトでは連続した行ではありません)
注:私はこのモジュールを直接使用したことがないので、システムの設定がデフォルトで実行されるモジュールなのか、それとも大幅に変更されたローカルバージョンなのかわかりません。
編集:異なるバージョンまたは高度にカスタマイズされたバージョン。使用するモジュールパッケージMODULESHOME
(デフォルトは/usr/local/Modules/3.2.7
マニュアルによると)。メカニズムは同じです。入力時に表示される$MODULESHOME/modulefiles
設定(またはシェル初期化スクリプトがこれを行う場合)を設定するモジュールがどこかにあります。PATH
module load openmpi
答え2
/etc/environment.conf の内容を確認できます。
このファイルはシステム全体の環境変数設定専用です。スクリプトファイルではありませんが、1行に1つの割り当て式で構成されています。
答え3
どのコマンドが追加されたのか教えてくれなかったので、質問した内容をよく理解していません。とにかく、私は一般的な容疑者を検索するために次の機能を使用します。
grep_bash(){
grep -H "$@" ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases \
/etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2>/dev/null
}
つまり、そのアイテムを探している場合は、openmpi
次を実行します。
grep -H "openmpi" ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases \
/etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2>/dev/null
ファイルのいずれかに設定すると、そのファイルが見つかりません。源泉上記のいずれかを通過してください。ソースファイルのリストを取得するには、次のようにします。
grep -EH "\. |source " ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* \
/etc/environment 2>/dev/null
これにより、初期化ファイルが提供されたファイルのリストが返されます。その後、その中の文字列も検索する必要があります。