대부분의 배포판에는 프로그램을 쉽게 설치할 수 있는 패키지 관리자가 있습니다. 소스 코드가 포함된 패키지의 경우 언제든지 직접 컴파일할 수 있습니다. 수동 컴파일 결과와 패키지 설치 결과 사이에 뚜렷한 차이가 있습니까? (동일한 코드베이스를 가정)
답변1
수동 컴파일 결과와 패키지 설치 결과 사이에 뚜렷한 차이가 있습니까? (동일한 코드베이스를 가정)
예를 들어 특정 기능을 비활성화하거나 속도보다는 코드 크기를 최적화하기 위해 생성된 바이너리를 조정하는 데 사용할 수 있는 다양한 컴파일 시간 플래그가 있습니다.
또한 구동 빌드 시스템이 있는 많은 패키지는 configure
수동으로 설치할 때 패키지의 /usr/local
기본값이 /usr
.
루트 다이어그램소스 코드에서 컴파일합니다. 유연성을 희생하지 않고도 패키지 관리자의 편리함을 누릴 수 있습니다(언제든지 ebuild
로컬 오버레이에서 조정할 수 있음).
답변2
...간단한 대답은 프로그램이 이미 컴파일되어 특정 패턴, 메모리, 프로세서, 파일 시스템 등에 따라 "실행 준비"가 되어 있다는 것입니다. 컴파일 외에도 다음을 만들 수 있는 소스 코드가 이미 있습니다. 거스름돈! 당신이 원하는 경우! ", 결과 프로그램은 더 효율적일 것입니다. 정확하게는 그것이 귀하의 컴퓨터에서 제작, 생성 및 컴파일되어 메모리, 비디오, 디스크 등을 매우 잘 알고 있기 때문입니다. 양복을 구입하는 것과 거의 비슷합니다. 같은 사이즈의 옷은 이미 표준화된 사이즈로 매장에서 구입하거나, 재단사에게 가서 치수에 따라 주문하는 것이 더 공정하고 편안합니다.
답변3
소스 코드를 직접 컴파일하여 생성된 바이너리는 패키지에 포함된 바이너리와 크게 다르지 않을 수 있습니다(컴파일러 플래그 및 배포 패치에 따라 다름).
패키지에는 일반적으로 전통적인 구성, 제작, 설치 댄스로는 처리되지 않는 여러 가지 편리한 추가 기능이 함께 제공됩니다.
- 간단한 업그레이드 방법
- 패키지를 제거하는 쉬운 방법. 일부 프로젝트에는 실행 옵션이 포함되어 있지만
make uninstall
전부는 아니며 설치된 모든 소프트웨어의 소스 코드를 유지해야 합니다. - 종속성을 자동으로 설치합니다. 패키지는 패키지 관리자가 설치하는 다른 패키지에 따라 달라집니다. 코드를 컴파일하기 전에 올바른 종속성을 직접 설치해야 합니다.
- SystemD 단위 파일 또는 init.d 스크립트는 패키지에 의해 설치됩니다.
- 기본 디렉터리, 프로필, 사용자 및 그룹이 생성됩니다.