소스에서 빌드하면 얻을 수 있는 이점이 있나요? 코드가 하드웨어 아키텍처에 더 잘 맞나요? 전체적으로 최적화가 더 잘 되었나요?
APT/yum과 같은 패키지 관리 시스템을 사용하는 대신 소스에서 빌드하는 것을 선택하는 이유는 무엇입니까? 최적화상의 이점이 있는 경우 패키지 관리 시스템의 이점보다 더 큰 경우는 언제입니까?
답변1
소스에서 빌드하면 바이너리 패키지 관리자 버전을 사용할 때 사용할 수 없는 다음 옵션이 제공됩니다.
소스에서 컴파일하면 다음을 수행할 수 있습니다.
- 프로세서별 최적화 사용
- 최신 버전을 사용하세요
- 컴파일 및 링크 작동 방식 이해(@mattdm의 제안)
- 버그 수정, 개발 작업
- 컴파일 시간 옵션 설정(예: vim에 X 기능 포함)
답변2
나는 최근에 이것을했습니다.
Slackware 11.0 Linux 시스템의 소스에서 openssl-1.0.something을 컴파일했습니다. 성가신 중국어 SSH 비밀번호 추측자를 막기 위해 로그인 실패 시 7초 동안 일시 중지되도록 비밀번호 로그인 문제를 패치하고 싶습니다.
나는 Apache 2.0.something과 함께 제공되는 동일한 Slackware 11.0 시스템에서 Apache httpd 2.2.17을 컴파일했고 다른 시스템의 2.2.x httpd.conf를 사용하고 싶었습니다.
그러고 보니 같은 시스템에 대해 Alpine 2.0(이메일 클라이언트, Pine 후속 버전)도 컴파일했습니다. Slackware 11.0을 선택하는 이유는 무엇입니까? Intel "Brookdale" 그래픽을 사용하는 2003년경 시스템에서 실행되며 이후의 Slackware는 제대로 문서화되지 않은 Intel 그래픽을 지원하지 않습니다.
다른 컴퓨터에서는 github에서 TI ACX111 무선 칩 지원을 가져와 $9 무선 카드를 사용할 수 있는 새 드라이버를 컴파일했습니다.
또한 나는 습관적으로 Linux 커널을 다시 컴파일하여 실행되는 컴퓨터에 맞게 만듭니다.
내가 생각하는 한 그것은 다양한 이유로 사용자 정의, 하드웨어 지원 및 "그냥"입니다.
균일한 인구 집단의 역학에 대해 우리가 알고 있는 내용을 고려하면(http://www.usenix.org/publications/login/2005-12/openpdfs/geer.pdf), 자신의 시스템을 사용하는 모든 사람이 소스 코드에서 시작하지 않는 이유는 무엇입니까? 선택한 컴파일 타임 옵션에 관계없이 컴파일하려면 어떻게 해야 합니까? 이렇게 하면 바이러스와 웜에 대한 저항력이 더 강한 개체군이 생성됩니다.