Ubuntu 버전에 따라 make 명령에 sudo -s를 사용해야 함

Ubuntu 버전에 따라 make 명령에 sudo -s를 사용해야 함

네트워크 인터페이스 드라이버를 컴파일하기 위한 Makefile이 있습니다. Ubuntu 9.04 설치에서 Makefile을 호출할 때 'make'만 호출하면 됩니다. 그러나 Ubuntu 10.04 설치에서 Makefile을 호출할 때는 'sudo -s make'를 호출해야 합니다.

Ubuntu 9.04에서는 'sudo -s make'를 호출하면 컴파일이 실패합니다. 그리고 Ubuntu 10.04에서는 'make'를 호출하면 컴파일도 실패합니다.

'sudo -s' 비트를 실행하거나 실행하지 않음으로써 두 버전의 Ubuntu에서 컴파일을 수행할 수 있지만 실행 중인 Ubuntu 버전에 관계없이 Makefile을 성공적으로 호출하는 단일 .sh 스크립트를 갖고 싶습니다. 에. 10.04와 비교하여 9.04에서 sudo -s가 처리되는 방식에 차이점이 있습니까? 만약 그렇다면 make를 호출할 때 두 버전이 하나의 단일 .sh 스크립트로 제공되도록 하는 가장 좋은 솔루션은 무엇입니까?

답변1

make명령은 소스 코드를 컴파일해야 합니다. 이는 관리 권한이 필요하지 않은 작업입니다. 시스템 전체 설치에는 루트 권한이 필요합니다. 이는 귀하의 경우 makefile이 올바르지 않음을 의미합니다. 무엇을 하는지는 모르겠지만 루트 권한이 필요하기 때문에 그렇게 해서는 안 됩니다.

다음 시나리오를 고려하십시오. 사용자가 소프트웨어를 설치하려고 합니다. 그/그녀는 웃는다

./configure --prefix=/home/joe/bin/usr && make && make install

명령 make에는 루트 액세스가 필요하지 않아야 합니다. 이렇게 하면 방지할 수 있습니다.어느사용자가 프로그램을 설치하고 있습니다. 일반적으로 루트가 아닌 사용자가 사용할 필요가 없는 네트워크 드라이버라고 말씀하셨지만 어쨌든 빌드를 수정해야 합니다.

관련 정보