Linux 시스템에 소프트웨어를 설치하려면 다양한 도구(예: , , yum
등 apt-get
)를 사용하여 저장소에서 패키지를 가져오거나 다운로드한 패키지를 설치할 수 있습니다.rpm
dpkg
또는 .tar.gz2
(일반적으로) 소스 코드 아카이브를 다운로드하고 다음을 사용하여 수동으로 컴파일 할 수 있습니다.
./configure
make
make install
또는 유사합니다. 제 질문은 언제 소스에서 컴파일하고 설치해야 합니까?입니다.
답변1
일반적으로 배포판에서 제공하는 패키지를 사용하고 관련 패키지 관리자(예: dpkg/apt-get
Debian 기반 시스템)를 사용하는 것이 좋습니다. 배포판의 임무는 충돌이 발생하지 않도록 소프트웨어를 패키지하고 구성하는 것입니다.
때로는 배포판에 원하는 소프트웨어가 없거나 다음과 같은 다른 이유가 있는 경우도 있습니다.
- 최신 버전이 필요합니다.
- 특별한 구성을 원하거나 패치 등을 포함하고 싶습니다.
- 더 높은 성능이 필요하므로 특히 하드웨어(프로세서...)에 맞게 소프트웨어를 최적화하고 싶습니다.
소프트웨어를 직접 컴파일하고 싶기 때문입니다(특히 모든 종속성을 알지 못하는 경우 매우 어려울 수 있음).
그러면 다음과 같은 다양한 옵션이 있습니다.
- 소스, 일반적으로 tarball(=
*.tar.gz
파일) 또는 업스트림 소스 저장소(예: github)에서 다시 빌드합니다. - 사전 빌드된 해당 패키지를 다운로드/설치합니다(직접 또는 비공식 저장소 사용).
- 배포판의 기존 패키지 소스를 사용하고 수동으로 업데이트한 후 설치할 수 있는 새 패키지를 만듭니다.
소프트웨어 설치에 패키지 관리자를 사용하지 않는 경우 패키지 관리자가 사용하는 위치가 아닌 다른 위치에 소프트웨어를 설치하는 것이 좋습니다. 지정된 접두사는 입니다 /usr/local/
. 홈 폴더의 새 하위 디렉터리 /opt
나 홈 폴더 내의 위치에 설치하도록 선택할 수도 있습니다.
답변2
내가 말하려는 것은 필요한 경우에만 소스에서 컴파일하라는 것입니다. 시스템을 관리할 때 어떤 대가를 치르더라도 패키지 관리자의 관리 기능을 잃지 않도록 해야 합니다.
일반적으로 소스 패키지를 가져와서 빌드하거나 소스에서 다시 빌드하지만 배포판 패키지 관리자의 패키지 개발자를 위해 제공된 도구를 사용하여 이 작업을 수행합니다.
예
일반적으로 Redhat 기반 배포판의 소스 RPM을 다운로드한 다음 해당 패키지의 최신 tarball로 수정한 후 다음과 같이 다시 빌드합니다.
$ rpmbuild --rebuild some.package.src.rpm
다시 빌드한 후 사용하거나 yum
설치 하겠습니다 rpm
.
인용하다
답변3
배포판 패키지가 요구 사항에 맞지 않으면 소스에서 컴파일하고 설치해야 합니다. 예를 들어, 패키지에 컴파일되지 않은 옵션을 추가해야 하거나 특정 라이브러리에 연결하기 위해 경로를 변경해야 하는 경우입니다. 또는 아직 패키지되지 않은 최신 버전이 필요한 경우.
답변4
짧은 대답: 필요할 때.
긴 답변: 대부분의 배포자는 가장 일반적으로 사용되는 소프트웨어의 사전 컴파일된 패키지를 리포지토리에 제공합니다. 첫째, 컴파일은 초보자에게 매우 고통스러울 수 있습니다. 둘째, 배포자는 모든 시스템이 동일한 바이너리를 가지고 있다고 가정할 수 있으므로 배포가 더욱 안정적입니다. 이러한 사전 컴파일된 패키지는 저장소에 릴리스되기 전에 게시자 및 버전에 따라 매우 어려운 테스트 단계를 거칩니다. 따라서 직접 컴파일하기 전에 배포판의 소프트웨어 소스를 사용하는 것이 좋습니다. 다른 방법이 없거나 소프트웨어 저장소에서 패키지를 사용할 수 없고 다른 소프트웨어에서 동일한 패키지를 제공하지 않는 경우 수동으로 컴파일할 수 있습니다.