답변:
시스템 디렉토리에 로컬 설치를하지 마십시오. 예를 들어 /usr
, 시스템 디렉토리 는 패키지 관리 시스템이 사용하도록 예약되어 있습니다. 정의에 따르면, 그렇게하면 make install
로컬에 설치 sudo make install
한다는 의미 이고, 그렇게해야하는 경우 쓰는 곳 어디에서나 권한이 없음을 의미합니다.
따라서으로 권한 오류가 발생하는 make install
경우 시스템 디렉토리에 설치하려고하는지 확인하고 /usr/local
대신 설치 하거나 유사한 것을 시도하십시오 . /usr/local
로컬 설치용으로 예약되어 있습니다. 에 쓸 수있는 권한을 부여해야 할 수도 /usr/local
있지만 일반적으로 쉽게 수행 할 수 있습니다. 데비안에서는 staff
그룹에 자신을 추가하면 됩니다. 더 좋은 방법은 바이너리 패키지를 찾거나 만들고 대신 설치하는 것입니다. 이렇게하면 설치된 패키지를 쉽게 추적하고 패키지 관리의 다른 이점을 얻을 수 있습니다.
/usr/local
FHS에 따라 패키지 관리 시스템은에 설치되지 않습니다 . 개요 는 데비안 정책 매뉴얼-파일 시스템 계층의 섹션 9.1을 참조하십시오 .
명령에 대한 기본적인 설명은 다음과 같습니다.
sudo 명령은 명령을 실행하므로 루트로 전달하므로 make 명령에 슈퍼 사용자 권한이 있습니다. 이는 makefile이 악성이거나이를 호출 할 수있는 스크립트가 악성 인 경우 시스템을 손상시킬 수 있음을 의미합니다.
즉, 소프트웨어를 신뢰할 수 없으면 설치하지 마십시오. 소프트웨어를 신뢰한다면 루트로 실행해도 아무런 문제가 없습니다.
노트 :
sudo make install
su; make install
대부분의 경우 와 동일 합니다.
위에서 답변 한 sudo make install
것처럼, 사용자에게 읽기 전용 인 디렉토리에 파일을 설치할 수 있습니다.
내가 예상 할 수있는 문제는 나중에 프로그램을 제거하거나 업그레이드 할 수 있다는 것입니다. 여전히 소스 코드 디렉토리 트리가있는 경우 a make uninstall
가 프로그램을 제거하지만 다른 많은 일반 사용자와 마찬가지로 소스 코드 디렉토리 트리를 삭제 한 경우 운이 좋지 않습니다. 패키지 관리 시스템을 사용하여 프로그램을 설치하지 않았으므로 프로그램을 제거하지 못할 수도 있습니다.
이러한 프로그램을 설치하는 가장 좋은 방법은 홈 디렉토리에 설치하는 것입니다. 에 옵션 --prefix=/home/<user>/<some>/<directory>
을 전달하십시오 ./configure
. 이렇게하면 쓰기 권한 make install
이 sudo make install
있기 때문에 대신 사용할 수 /home/<user>/<some>/<directory>
있습니다. 또한 제거는 간단합니다.rm -rf /home/<user>/<some>/<directory>