소스에서 컴파일하거나 .deb 패키지에서 설치하는 것이 더 낫습니까?


18

때로는 인터넷에서 소프트웨어를 다운로드 할 때 데비안 / 우분투와 타르볼을 컴파일 할 수있는 .deb 패키지가 있다는 것을 알게되었습니다. 처음에는 간단하게 설치하기 쉽도록 패키지를 사용했으며 심지어 컴파일을 시도조차하지 않았습니다. 그것의 소리조차도 조금 무서웠습니다. 그러나 요즘에는 옵션이있을 때 때때로 딜레마에 빠지게됩니다. .deb 패키지와 비교하여 소스에서 컴파일하는 데 인기가 있습니까? 나는 여기에서 찾을 수 있기를 바랍니다. 감사합니다.

답변:


24

소스에서 컴파일 할 때 얻을 수있는 장점은 스톡 표준 우분투 패키지에서 누락되거나 비활성화 된 특정 플래그 / 옵션으로 패키지를 컴파일 할 수 있다는 것입니다. 또한 동일한 프로그램의 여러 버전을 쉽게 설치할 수 있습니다. 또한 우분투 저장소에서 이미 제거되었거나 아직 존재하지 않는 패키지의 정확한 버전을 선택할 수 있습니다 (예 : 이전 버전을 실행하기 위해 / opt / 디렉토리에 여러 버전의 Python 2.4.x가 있습니다. 소프트웨어).

소스에서 컴파일 할 때의 단점은 .deb를 빌드 한 다음 설치하지 않는 한 일반적인 "./configure; make; sudo make install"절차를 통해 Ubuntu의 패키지 관리자가 변경 사항을 완전히 인식하지 못한다는 것입니다. '수동으로 컴파일 한 소프트웨어에 대한 업데이트는받지 않습니다. 패키지 관리자가 별도의 위치에 패키지를 설치하지 않으면 나중에 패키지 관리자가 패키지를 재정의 / 중단 할 수 있습니다.

한마디로 : 항상 표준 Ubuntu 리포지토리에서 설치를 고려하고 다음으로 .deb 설치를 고려하십시오. 왜 그렇게해야 하는지를 정확히 알고 있다면 소스에서만 컴파일하십시오.


또한 컴파일 할 때 패키지 성능이 다를 수있는 내용을 읽었으며 현재 커널과의 호환성이 향상되었습니다. 개인적으로 벤치마킹하지 않았습니다.
Fedir RYKHTIK

@Fedir : 커널이 이것과 관련이 있는지 잘 모르겠습니다. 예를 들어 프로세서 배포판입니다. 예를 들어, 많은 배포판에는 Pentium 용 프로그램을 수동으로 컴파일하는 동안 최대 호환성을 위해 80386 명령 세트로 컴파일 된 패키지가 포함되어 있습니다. 보다 효율적인 지침을 사용하십시오. 이러한 이유로 호스트 시스템의 소스에서 컴파일 된 Gentoo와 같은 전체 배포판이 있습니다. 그러나 그 차이는 일반적으로 최소화되며 매우 구체적인 응용 프로그램에서만 볼 수 있습니다.
Sergey

1
make install 대신 checkinstall을 사용하면 언급 된 많은 단점이 완화됩니다. 참조 help.ubuntu.com/community/CompilingEasyHowTo
ndemou

1
@EliahKagan, nitpicking에 대해 죄송하지만 virtualenv는 훌륭하지만 다른 라이브러리가 설치된 여러 Python 환경 을 유지 관리하는 것이 좋습니다. 특정 버전 의 Python 을 원한다면 특정 설정으로 컴파일 할 수도 있습니다. 실제 바이너리는 .deb에서 시작하거나 처음부터 컴파일해야합니다.
Sergey

@Sergey 당신이 맞아요. (그리고 나는 당신이 nitpickiing으로 말한 것을 보지 못합니다. 내 잘못되고 오해의 소지가있는 것에 대해 사과해야 할 것이 있다면!) 패키지 관리자 conda는 자동으로 가상 환경을 만들고 다른 Python 설치를 설치합니다 . 프로젝트 별 버전 생성 및 유지 관리 그러나 virtualenv 자체는이 작업을 수행하지 않습니다.
Eliah Kagan

1

나는 어제 이것에 대해 논쟁하고 있었다. 나는 깨지기 쉬운 것을 만들지 않는 것이 매우 중요하다고 생각합니다. 최신 문서와 좋은 문서와 같은 것은 없으며 특히 깨지기 쉬운 시스템으로 작업 할 때 화재와 싸울 시간이 없을 것입니다. 문서, 그리고 모든 것이 견고한 곳에서는 문서가 그렇게 많이 필요하지 않습니다. 따라서 소스에서 컴파일하거나 다른 솔루션을 찾거나 다른 소프트웨어를 사용하거나 아키텍처를 변경하지 말고 업데이트 후에 깨질 수있는 것을 사용해서는 안됩니다. 그리고 그렇습니다. 커널 버전과는 아무런 관련이 없으며 컴퓨터 아키텍처와 관련이 있으며 요즘에는 소스 코드에서 컴파일 할 때 큰 차이가 거의 없습니다. 아무 것도 얻지 못할 것입니다.


0

deb를 설치하는 것이 훨씬 쉽습니다. 가능하다면 repo 또는 ppa에서 파일을 찾아 업데이트를 제공하는 것이 가장 좋습니다.

AFAIK 먼저 변경하지 않는 한 직접 컴파일하면 큰 이점이 없습니다. 소프트웨어를 그대로 원한다면 .deb를 설치하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.