사전 컴파일된 패키지에 대해 'make install'이 'install'로 수행하는 모든 작업을 어떻게 수행합니까?

사전 컴파일된 패키지에 대해 'make install'이 'install'로 수행하는 모든 작업을 어떻게 수행합니까?

make install소스 패키지를 컴파일한 후 이 명령을 성공적으로 실행한 후 새로 설치된 패키지를 인식하게 되면 시스템에 어떤 일이 발생하는지 궁금합니다 .
배포용으로 미리 컴파일된 Linux 패키지를 어딘가에서 검색했고, 압축을 푼 전체 패키지를 설치하는 install대신 사용하고 싶다고 가정하고, 해당 패키지를 사용하여 일반적으로 수행하는 모든 작업을 수행하는지 확인합니다 . 모든 것을 재귀적으로 복사하기 위해 대상을 실행하려고 시도했지만 실패했고 아무 것도 하지 않는 것 같았습니다.cp/usr/localsudo make installsudo install -r -T ./[pre-compiled package] /usr/local/usr/local

답변1

make installinstall지정된 대상에 대해 나열된 명령을 실행합니다 ./Makefile(또한 설치가 의존하는 다른 미해결 대상에 대한 명령도 실행합니다. 예를 들어 설치 대상은 일반적으로 빌드 대상에 따라 다릅니다). @Henrik이 말했듯이 파일 복사, 디렉터리 생성, 소유권 및/또는 권한 설정, 초기 구성 파일 생성 또는 복사 등 무엇이든 될 수 있습니다.

그건 그렇고, 명령 make installinstall완전히 다른 두 가지입니다. 전자는 "install"이라는 Makefile 대상을 실행합니다. 후자는 소프트웨어를 설치할 때 일반적으로 Makefile의 설치 대상에서 사용되는 cp소유자, 그룹, 권한을 설정하고 기타 많은 유용한 작업을 수행할 수 있는 고급 버전입니다.install

어쨌든 make이것은 make install여러분이 하려는 작업(미리 컴파일된 소프트웨어를 설치하는 것)과는 거의 관련이 없습니다.

사전 컴파일된 소프트웨어를 설치하려면 배포 패키지(예: .rpm또는 .deb파일)가 있는 경우 배포 패키지 도구를 사용하여 dpkgDebian/Ubuntu, rpmFedora 등에 설치하십시오. 아직 패키지 사본이 없지만배포용 패키지로 제공되는 경우 apt(debian) 또는 dnf( fedora)를 사용하여 yum패키지를 구하여 설치하세요 .

적절한 배포 패키지(예: 여러 파일이 포함된 tar.gz)가 아니고 해당 소스 코드나 패키지를 찾을 수 없는 사전 컴파일된 소프트웨어의 경우 가장 좋은 방법은 다음과 같은 프로그램을 사용하는 것입니다.GNU 스토우또는 유사합니다.

stow패키지되지 않은 소프트웨어를 설치하기가 매우 쉽고 나중에 고아 파일을 남기지 않고 나중에 제거할 수 있습니다(예: 새 버전으로 업그레이드 준비). 이것은 간단한 untar 또는 cp 역할입니다.~ 할 것이다하다.

관리되지 않는 소프트웨어는 혼란을 야기합니다. 가능하다면 시스템에서 제공하는 패키지 도구를 사용하세요. 그렇지 않은 경우 비슷한 것을 사용하십시오 stow.


어제 이 글을 쓰면서 언급하고 싶었던 또 다른 프로그램은설치 확인, 그러나 나는 지금까지 그 이름을 기억하지 못했습니다. checkinstall다른 방법으로 사용할 소프트웨어의 기능 패키지를 쉽게 만들 수 있습니다( make install예: 독점 소프트웨어). 그러나 소스 코드가 사용 가능한 경우 매우 유용할 수 있습니다.

관련 정보