RHEL 6.5を比較的新しくインストールし、ソースからGCCC 4.9をインストールしました。 GCC 4.9をインストールした後、次の方法でディストリビューションで提供されている古いGCCバージョンを削除しました。
sudo yum remove gcc
湾岸協力協議会現れる正しくインストールされ、ユーザーとユーザーに表示されますが、コンパイラが必要なコマンドをroot
実行しようとするとsudo
見つかりません。
これがwhileをPATH
指していないようですが、その理由を理解できません。g++
sudo
g++
次の場所にインストールされました:
[john@haley boost_1_55_0]$ which g++
/usr/local/bin/g++
成功すると、ユーザーとしてバージョンを取得しますroot
。
[john@haley boost_1_55_0]$ g++ --version
g++ (GCC) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[john@haley boost_1_55_0]$ sudo su -
root@haley /root # g++ --version
g++ (GCC) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
しかしsudo g++ --version
失敗しました:
john@haley boost_1_55_0]$ sudo g++ --version
[sudo] password for john:
sudo: g++: command not found
[john@haley boost_1_55_0]$
確認PATH
事項sudo
:
[john@haley boost_1_55_0]$ sudo echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/home/john/bin:/usr/local/bin
^^^^^^^^^
g++
...場所が実際にパスにあることを示すようです。
なぜ失敗し、この問題を解決するにはどうすればよいですか?
コメントの質問に答えてください。
はい、次の明示的なパスを使用して実行できますsudo
。
[john@haley boost_1_55_0]$ sudo /usr/local/bin/g++ --version
[sudo] password for john:
g++ (GCC) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[john@haley boost_1_55_0]$
確認してみると、私が何か間違っていたことがわかりましたsudo PATH
。正しい方法で行うと、/usr/local/bin
実際にいいえsudo
私はここにいますPATH
:
[john@haley boost_1_55_0]$ sudo env | grep PATH
13:PATH=/sbin:/bin:/usr/sbin:/usr/bin
[john@haley boost_1_55_0]$
答え1
OPについてのコメントでこのソリューションを見つけましたが、それが私が望むものかどうかはわかりません。しなければならないする。
を含むようにsudo visudo
実行して編集することでこれを行うことができます。secure_path
/usr/local/bin
私のシステムでは、元の行は次のようになります。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
次に変更してください。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
「問題を解決する:
[john@haley boost_1_55_0]$ sudo g++ --version
g++ (GCC) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[john@haley boost_1_55_0]$