이 질문과 다른 답변은 GNU Build System (일명 Autotools)을 사용하는 프로젝트가 어떻게 배포 되는지에 대한 오해에서 비롯됩니다 . 실제로 OP가 언급 한 Erlang XMPP 라이브러리 의 경우 개발자가 오해를하는 것으로 보입니다.
올바른 방법으로 소프트웨어 얻기
GNU Autotools로 릴리스 된 프로젝트를 컴파일하고 설치하기 만하면 소스 제어 시스템에서 체크 아웃해서는 안됩니다 . 대신 개발자가 제공 한 패키지 소스 릴리스 를 다운로드해야합니다 . 이들은 보통 프로젝트 웹 사이트에 배포 된 타르볼 형태를 취합니다. GitHub, Savannah 또는 이와 유사한 호스팅 서비스에서 전적으로 호스팅되는 프로젝트의 경우 이러한 타르볼은 일반적으로 "다운로드"또는 "릴리스"라는 링크 뒤에 있습니다. 패키지 포장을 풀고 표준 ./configure && make && sudo make install
주문의 변형을 말하십시오 . 그게 다야; GNU Autotools를 호출 할 필요가 없으며 시스템에 GNU Autotools를 설치하지 않아도됩니다.
사용자가 Autotools 패키지 프로젝트를 컴파일하기 위해 GNU Autotools가 필요하지 않은 이유는 개발자가 이미 다양한 Autotools 프로그램을 사용하여 소프트웨어를 빌드하는 데 사용할 수있는 "배포 tarball"을 생성했기 때문입니다 유닉스 계열 시스템. 배포판 tarball에는 configure
빌드 환경을 스캔하고 종속성을 확인하며 Makefile
시스템에 맞게 사용자 정의를 구성하는 이식성이 뛰어난 스크립트가 포함되어 있습니다.
언제 Autotools가 필요합니까?
GNU Autotools를 직접 설치하고 호출해야하는 유일한 이유는 Autotools로 빌드 된 프로젝트에서 개발 작업 을 수행하려는 경우 입니다. 그럼에도 불구하고 프로젝트의 종속성을 변경하지 않으면 Autotools가 필요하지 않을 것입니다. 이 경우, 당신은 정말로, 원래의 소스를 확인하는 데 필요한 Autotools가 특정 입력 파일 (적절한 변화 할 것이다 configure.ac
, Makefile.am
등), 새로운 생성하는 그들에 Autotools가 실행 configure
파일을. 수정 된 패키지를 독립적으로 게시하려면 Autotools에서 생성 한 Makefile을 사용하여 새 배포 tarball을 생성 한 다음 해당 tarball을 온라인 어딘가에 게시하십시오.
문제는 일부 개발자가 소스 리포지토리를 공개적으로 사용할 수 있지만 배포 tarball을 게시하지 않거나 게시 된 위치를 찾기가 어렵다는 것입니다. 예를 들어, 대신 GitHub의 자료로 자신의 분포 타르볼을 게시 의 얼랑 XMPP 라이브러리의 GitHub의 자료는 원시 소스 저장소의 타르볼입니다. 이것은 GNU Autotools 없이는 프로젝트를 컴파일하는 것을 불가능하게하여 Autotools를 사용하는 전체 목적을 우선적으로 상실합니다.
TL; DR 요약
GNU Autotools는 개발자가 사용자를위한 이식 가능한 소스 코드 패키지를 만들기 위해 사용하는 것입니다. 사용자 는 소스 제어 시스템의 원본 코드가 아닌 이러한 소스 패키지에서 다운로드하여 컴파일해야합니다. 개발자가 이러한 소스 패키지를 제공하지 않으면 Autotools를 올바르게 사용하지 않는 것이므로 방법에 오류가 나타날 때까지 젖은 송어 로 가볍게 두 드려야 합니다.