본문 바로가기

IT's Life/Linux

리눅스 패키지 (소스 패키지와 바이너리 패키지)

Linux 에는 많은 소프트웨어 패키지가 있으며, 거의 모든 소프트웨어 패키지가 GPL 라이센스가있는 무료 및 공개 소스 (무료 공개 소스 코드)입니다. 즉, 소프트웨어의 소스 코드를 수정할 수 있으면 원하는대로 수정할 수 있습니다.


리눅스 소스 패키지

실제로 소스 패키지는 프로그래머가 특정 형식과 구문으로 작성한 여러 소스 코드 프로그램입니다. 

우리 모두는 컴퓨터 이진 언어로 번역 진 언어, 설치 소스 패키지는 "번역기"가 필요합니다 "ABCD"를이다 기계 언어를 인식 알고있다 "번역기"의 이름은 종종라고 컴파일러 .

"컴파일"은 소스 코드에서 컴퓨터 (또는 가상 머신)에 의해 직접 실행되는 객체 코드로의 변환 프로세스를 의미합니다. 컴파일러의 기능은 소스 코드를 컴퓨터가 인식하고 실행할 수 있도록 이진 코드로 변환하는 것입니다. 자세한 정보는 C 컴파일러 .


소스 패키지는 무료이며 오픈 소스이지만 사용자가 무엇을해야할지 프로그래밍하지 않습니까? 여러 소스 코드 프로그램이 작동하지 않으면 어떻게됩니까? 소스 패키지를 쉽게 설치할 수 있습니까? 이들은 소스 패키지 설치 방법으로 대답 할 수없는 모든 문제입니다. 

또한 소스 패키지를 설치하려면 소스 코드를 이진 코드로 컴파일해야하므로 설치 시간이 더 깁니다. 예를 들어, 모든 사람이 Windows에 QQ를 설치해야합니다 .QQ 기능이 많고 비교적 큰 프로그램 (약 70MB)이 있지만 소스 패키지 형태로 릴리스되지 않으므로 컴파일 후에 만 ​​릴리스됩니다. 성공적으로 설치하는 데 몇 분 (간단한 구성으로)이 소요됩니다. 그러나 소스 패키지 설치를 통해 Linux에 MySQL 데이터베이스 를 설치하는 경우 소프트웨어 패키지가 약 23MB에 불과하더라도 약 30 분이 소요됩니다 (하드웨어 구성에 따라 약간 다름). 

그에 비해 소스 패키지를 컴파일하는 데 시간이 많이 걸리고, 대부분의 사용자는 프로그래밍 언어에 익숙하지 않으며, 설치 과정에서 프로그램이 오류를보고하지 않아야한다고기도 할 수 있습니다. 그렇지 않으면 초보자가 해결하기가 어렵습니다. 

소스 패키지 설치시 이러한 문제점을 해결하기 위해 Linux 패키지 설치는 2 진 패키지를 사용하여 설치되었습니다.


리눅스 바이너리 패키지

바이너리 패키지는 소스 패키지가 성공적으로 컴파일 된 후에 생성 된 패키지입니다. 이진 패키지는 릴리스 전에 컴파일 작업을 이미 완료 했으므로 사용자는 소프트웨어를 Windows에 설치된 소프트웨어와 비교하여 더 빨리 설치하므로 설치 과정에서 오류가 발생할 가능성이 크게 줄어 듭니다. 

이진 패키지는 Linux의 기본 소프트웨어 설치 패키지이므로 이진 패키지는 기본 설치 패키지라고도합니다. 현재 두 가지 주요 주류 바이너리 패키지 관리 시스템이 있습니다.

  • RPM 패키지 관리 시스템 : 강력하고 설치, 업그레이드, 쿼리 및 제거가 매우 간단하고 편리하므로 많은 Linux 배포에서이 메커니즘을 Fedora, CentOS, SuSE 등과 같은 기본적으로 소프트웨어 설치 관리 방법으로 사용합니다.
  • DPKG 패키지 관리 시스템 : 데비안 리눅스가 DPKG 패키지를 통해 개발 한 패키지 관리 메커니즘은 데비안과 우분투에서 주로 패키지 관리에 사용될 수 있습니다.

RPM 패키지 관리 시스템과 DPKG 관리 시스템의 원리와 형태는 유사하며 무시할 수 있습니다. 이 튜토리얼에서는 CentOS 6.x 버전을 사용하므로이 섹션에서는 RPM 바이너리 패키지에 중점을 둡니다.


소스 패키지 VS RPM 바이너리 패키지

소스 패키지에는 일반적으로 여러 파일이 포함되어 있으며 릴리스를 용이하게하기 위해 소스 패키지가 일반적으로 패키지 및 압축되어 있습니다. Linux에서 가장 일반적으로 사용되는 패키지 압축 형식은 "tar.gz"이므로 소스 패키지를 Tarball이라고도합니다.

Tarball은 Linux 시스템 용 패키징 도구로, 소스 패키지를 패키징 및 압축 할 수 있으며, 결과로 압축 된 압축 파일을 Tarball 파일이라고합니다.

소스 패키지는 소프트웨어의 공식 웹 사이트에서 다운로드해야하며 일반적으로 다음 내용이 포함되어 있습니다.

  • 소스 코드 파일
  • 구성 및 탐지 절차 (예 : 구성 또는 구성 등)
  • 소프트웨어 설치 지침 및 소프트웨어 지침 (예 : INSTALL 또는 README)

일반적으로 소스 패키지와 함께 소프트웨어를 설치하면 다음과 같은 이점이 있습니다.

  • 오픈 소스. 전원이 충분하면 소스 코드를 수정할 수 있습니다.
  • 원하는 기능을 자유롭게 선택할 수 있습니다.
  • 소프트웨어가 컴파일 및 설치되기 때문에 자신의 시스템에보다 적합하고 더 안정적이고 효율적입니다.
  • 쉽게 제거 할 수 있습니다.

그러나 동시에 소스 패키지를 사용하여 소프트웨어를 설치하는 데 몇 가지 단점이 있습니다.

  • 맞춤법 오류가 발생하기 쉬운 대형 소프트웨어 모음 (예 : LAMP 환경)을 설치할 때 많은 설치 프로세스 단계가 있습니다.
  • 컴파일 시간이 길기 때문에 설치 시간이 이진 설치보다 깁니다.
  • 소프트웨어가 컴파일되어 설치되기 때문에 설치 과정에서 오류가보고되면 초보자가 문제를 해결하기가 어렵습니다.

소스 패키지와 비교하여 이진 패키지는 소프트웨어 출시 시점에 컴파일 된 패키지이므로 설치 속도는 소스 패키지 (Windows의 소프트웨어 설치 속도와 비교)보다 훨씬 빠릅니다. 또한 소프트웨어의 소스 코드를 볼 수없는 번역이 수행 되었기 때문입니다. 

RMP 패키지를 사용하여 소프트웨어를 설치하면 두 가지 장점이 있습니다.

  1. 패키지 관리 시스템은 간단하며 몇 가지 명령만으로 패키지 설치, 업그레이드, 쿼리 및 제거를 구현할 수 있습니다.
  2. 설치 속도는 소스 패키지 설치보다 훨씬 빠릅니다.

동시에 RMP 패키지를 사용하여 소프트웨어를 설치하면 다음과 같은 단점이 있습니다.

  • 컴파일 후에는 소스 코드를 볼 수 없습니다.
  • 기능 선택은 소스 패키지만큼 유연하지 않습니다.
  • 의존성. 때로는 패키지 a를 설치할 때 b와 c를 먼저 설치해야하고 b를 설치할 때 d와 e를 먼저 설치해야 할 수도 있습니다. d와 e를 먼저 설치 한 다음 b와 c를 설치하고 마지막으로 a를 설치해야합니다. 예를 들어, 아름다운 등기구를 구입하여 거실에 설치하려고했지만 등기구를 설치하기 전에 거실을 덮고 천장을 페인트해야합니다. 설치 소프트웨어 및 장식 등은 특정 순서가 필요하지만 때로는 종속성이 매우 강할 수 있습니다.


선택하는 방법

소스 패키지를 RMP 바이너리 패키지와 비교하면 Linux에 소프트웨어를 설치할 때 어떤 소프트웨어 패키지를 사용해야합니까? 

두 패키지를 더 잘 구별하기 위해 여기에 예가 있습니다. 우리가 가구 세트를 만들고 싶다고 가정하고 소스 패키지는 모든 가구가 손으로 직접 손으로 만든 것처럼 (수동 편집), 원하는 판, 페인트, 색상 및 스타일은 당신에게 달려 있습니다 (기능 사용자 정의, 수정 가능) 소스 코드). 당신이 그것에 대해 생각할 때, 당신은 시원하게 느끼고, 검은 마음을 가진 제조업체의 영향을받을 필요가 없으며 품질 문제에 대해 걱정할 필요가 없습니다 (소프트웨어는 자신의 시스템에보다 적합하고 효율적이며 안정적입니다). 그러나 소비 한 시간이 가구 세트를 구입하는 시간 (폐기 된 폐기물 시간)을 크게 초과하고 실제로 목공 작업을 할 수있는 능력이 있습니까 (소스 코드를 잘 알아야 함)? 가구를 사용자 정의하고 직접 조립하도록 요청하더라도 부품이 일치하지 않으면 (오류를 해결하기 어려운 경우) 어떻게해야합니까? 


바이너리 패키지는 어떻습니까? 또한 우리는 가구 세트가 필요합니다. 몰을 방문하여 세트를 구입하십시오 (설치가 간단합니다). 가구는 기성품입니다. 자체 문제로 인해 크기가없고 배치 할 수없는 경우 (매우 적은 오류)가 아닌 한 일치하지 않는 부품이 없습니다. 그러나 우리는이 가구에 사용되는 재료, 페인트의 자격 여부 및 가구 스타일을 마음대로 선택할 수 없습니다 (소프트웨어는 기본적으로 기능을 사용자 정의 할 수 없음). 

위의 소스 패키지와 바이너리 패키지에 대한 설명을 통해 모든 사람이 두 가지의 차이점과 특성을 명확하게 이해하고 있다고 생각합니다.