Linux 사용자가 애플리케이션을 설치하기 위해 소스 코드를 컴파일해야 하는 이유를 이해할 수 없습니다. Windows 플랫폼처럼 모든 것이 바이너리 패키지로 준비될 수 없는 이유는 무엇입니까?
물론 제가 컴파일과 실행에 대해 불평하고 있다고 오해하지 마시기 바랍니다. 저는 실제로 그것을 매우 좋아하고 명령줄을 연습하고 프로그래밍 프로세스에 대한 이해를 심화시키는 데 많은 도움이 됩니다. 하지만 내 친구와 가족은 그렇게 생각하지 않습니다. 글쎄요, 그들의 요점은 그들이 프로그래머가 아니라는 것입니다. 실제로 Ubuntu 및 해당 시리즈와 같이 애플리케이션을 쉽게 설치할 수 있는 일부 배포판이 있습니다. 하지만 인터넷의 모든 응용프로그램이 이를 수행할 수 있는 것은 아닙니다. 심지어 Ubuntu나 Mint에서도 마찬가지입니다.
그렇다면 애플리케이션을 설치하기 위해 소스 코드를 컴파일해야 하는 이유는 무엇입니까? ("바이너리 패키지를 사용하지 않고 소스 코드를 컴파일하면 어떤 이점이 있나요?"에 대한 추가 답변을 얻을 수 있다면 좋을 것 같습니다.)
답변1
누가 필요하다고 하던데요? 글쎄요, 주로 Linux From Scratch와 Gentoo를 필요로 하는 여러 배포판이 있다는 것을 말씀드리겠습니다.
그러나 98%의 경우 배포 저장소 및 패키지 관리자를 통해 또는 타사 저장소(예: Java의 webupd8te 팀 등)를 통해 원하는 것을 얻을 수 있습니다.
이점을 위해 특정 아키텍처(즉, i686 대 i486 명령어)를 컴파일하고 대상으로 지정하거나 특정 옵션을 포함하거나 제거할 수 있습니다. 또는 귀하의 버전에서 특별한 기능을 수행하기를 원할 수도 있으므로 소스 코드를 가져와서 몇 가지 사항을 변경하고 컴파일하고 설치하면 됩니다.
답변2
@ivanivan이 답변했듯이, 소스에서 컴파일해야 하는 배포판은 거의 없습니다(Gentoo는 이 작업을 자동으로 수행합니다). 전통적으로 소스 코드를 선호하는 주된 이유는 Unix 시스템 간의 Unix 스타일과 아키텍처의 큰 차이 때문입니다. V vs. BSD, 또는 MIPS vs. Intel 예를 들어), 처음부터 컴파일해야 하는 가장 큰 이유는 설치하려는 프로그램이 저장소에 포함되어 있지 않거나 뭔가를 수정하거나 특정 항목을 추가하는 패치가 있는 경우입니다. 특징.
특정 패키지는 프로그램이 저장소에 없더라도 대부분의 배포판에서 자주 다운로드되어 설치될 수 있습니다 .deb
..rpm
이것은 Java의 예입니다.그런 다음 배포판은 종속성을 추적하고 필요한 경우 업데이트하는 어려운 작업을 수행합니다. Linux와 Windows에서 이러한 패키지를 설치하는 것의 주요 차이점은 설치 프로그램이 일반적으로 Linux의 패키지와 분리되어 있고 기능적으로 독립적이라는 것입니다. Windows(Windows 설치 시스템을 사용하더라도 MSI 설치 프로그램은 Windows 설치 프로그램을 직접 사용합니다.)