그래서 /opt 폴더에 gnuradio 프로그램을 설치하려고 합니다. 설치하려면 sudo로 명령을 실행해야 합니다. 설치할 때 다음 오류가 발생합니다./bin/sh: qmake: command not found
내가 입력하면 which qmake
다음과 같은 결과가 나타납니다./usr/lib64/qt4/bin/qmake
그러나 실행하면 다음과 같은 sudo which qmake
결과를 얻습니다.which: no qmake in (/sbin:/bin:/usr/sbin:/usr/bin)
다양한 수정 사항을 살펴봤지만 제가 겪고 있는 동일한 문제를 해결하지 못하는 것 같습니다. 내 문제에 대해 찾을 수 있는 가장 가까운 가이드는 다음과 같습니다.여기.
참고로 저는 RHEL7을 사용하고 있습니다.
답변1
이는 sudo가 sudo에 의해 secure_path
정의 /etc/sudoers
되거나 $PATH
설정된 범위 내에서만 실행되기 때문입니다. 예를 들어, 내 시스템에서는
$ sudo env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
$ sudo cat /etc/sudoers | grep secure_path
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
따라서 몇 가지 해결 방법이 있습니다.
/usr/lib64/qt4/bin/qmake
다음과 같이 IE 중 하나에 대한 링크를 생성하십시오secure_path
.sudo ln -s /usr/lib64/qt4/bin/qmake /usr/bin/qmake
또는
/usr/lib64/qt4/bin
다음을 추가하세요/etc/sudoers
.Defaults secure_path="sbin:/bin:/usr/sbin:/usr/bin:/usr/lib64/qt4/bin"
위 줄에서 다른 텍스트는 변경하지 않고 그대로 두고
/usr/lib64/qt4/bin
예제와 같이 끝에 경로만 추가합니다.
답변2
분명한 이유로, 해당 명령을 실행하는 권한 있는 쉘은 귀하의 PATH
권한을 상속하지 않습니다 . 예를 들어 에 대한 전체 경로를 sudo
제공 하거나 자체 설정 및 를 사용하여 호출하는 스크립트 에 호출을 넣어 이를 완화 할 수 있습니다 .qmake
sudo $(which qmake)
qmake
PATH
sudo /path/to/my/qmake-script.sh