deb 패키지와 tar ball의 차이점은 무엇입니까? 각각의 장단점은 무엇입니까?


9

나는 타르 볼에 대해 모른다. 대부분의 패키지는 tar 형식으로 제공되지만 Ubuntu 패키지는 데비안 패키지입니다.

deb 패키지와 tar ball의 차이점은 무엇입니까?

각각의 장단점은 무엇입니까?

답변:


7

타르 볼은 일반적으로 컴파일해야하는 소스 코드입니다. deb는 사전 컴파일 된 프로그램으로 이미 Ubuntu / Debian 용으로 빌드 및 구성되어 있습니다.

사용 가능한 경우 deb를 사용하는 것이 더 쉽고 패키지 관리자와 통합되므로 쉽게 제거 할 수 있습니다.

Debs는 필요한 모든 종속성을 설치합니다. 소스에서 설치하면 "종속성 지옥"이라는 애정이 생길 수 있습니다. 대부분의 오픈 소스 프로그램은 작동하는 다른 여러 프로그램 / 라이브러리에 의존합니다. 소스에서 설치하는 경우에는 설치하지 않으며 대신 종속성이 충족되지 않는다고 불평합니다. 그런 다음 해당 종속성을 설치하려고 시도한 다음 다른 종속성을 요구하는 기타 등등을 요구합니다.

소스에서 설치하면 파일이 약간 다르게 배치되어 파일을 예기치 않은 위치에 놓을 수도 있습니다.

프로그램을 설치해야 할 때 다음 순서로 옵션을 시도합니다.

  1. 소프트웨어 센터를보십시오. Software Center가 모든 것을 포함한 것이 아니며 최신 버전으로 업데이트되지는 않았지만 이것은 가장 쉬운 방법입니다.

  2. 이를 제공하는 저장소를 찾으십시오. 리포지토리를 추가하면 프로그램이 소프트웨어 센터에 표시되고시기 적절한 업그레이드 등이 수신됩니다.

  3. .deb 패키지를 찾으십시오.

  4. 소스 (타르 볼)에서 설치하십시오.


6

타르 볼은 지퍼와 같은 또 다른 압축 형태입니다. 압축 형식과 기술은 다르지만 기본적으로 파일 및 폴더 그룹의 컨테이너입니다.

일반적으로 소스 코드와 그에 필요한 파일은 타르볼 형태로 소프트웨어를 작성한 사람 / 그룹이 인터넷에서 사용할 수있게됩니다. 따라서 다운로드, 압축 해제, 소프트웨어 컴파일 및 설치가 가능합니다.

그러나 deb 패키지의 역할은 표준을 유지하여이 설치 프로세스를 쉽게 수행하는 것입니다. 인터넷에서 사용할 수있는 소프트웨어는 데비안 패키지 관리자가 해당 .deb 패키지로 만들어 데비안 리포지토리에 넣습니다.

여기에 이미지 설명을 입력하십시오

데비안 패키지 관리자의 블로그에서 읽을 수 있습니다 : http://www.j4v4m4n.in/2012/05/01/debian-utsavam-at-mes-kuttippuram-kerala-2/

장단점은 .deb 패키지는 apt 및 aptitude와 같은 패키지 관리자가 관리합니다. 따라서 소프트웨어를 설치할 때마다 시스템에서 해당 소프트웨어를 실행하는 데 필요한 종속성이 있는지 자동으로 파악하여 설치합니다.

그러나 타르 볼 설치를 사용하는 경우 해당 소프트웨어가 어떤 소프트웨어에 의존하는지, 그리고 설치할 소프트웨어의 종속성이 이미 설치되어 있는지 수동으로 확인해야 할 때마다 확인해야합니다.

그러나 apt는이 모든 것을 당신을 위해합니다.

또한 소스에서 설치 (타르 볼에서 설치)에는 소프트웨어마다 다른 방법이 있습니다. configure-make-make 설치라는 GNU 철학이 있으며 소프트웨어 작성 방법에 따라 다른 방법이 있습니다.

그러나이를 deb로 변환하면 이러한 모든 차이점이 완전히 제거되고 사용자가 소프트웨어를보다 쉽게 ​​설치하고 사용할 수 있습니다.

한가지 더 언제 소스에서 설치해야합니까? 타르볼에서 왔나요? 기본적으로 두 가지 상황이 있습니다.

  1. 데비안 패키징 팀이 아직 소프트웨어를 패키징하지 않은 경우.
  2. 프로젝트에 기여하고 싶다면 즉, 소스 코드를 변경하고 컴파일하여 변경 사항을 테스트 할 수 있습니다.

데비안 패키징에 대해 더 알고 싶다면 여기에서 읽을 수 있습니다 : http://www.debian.org/doc/manuals/maint-guide/

도움이 되었기를 바랍니다.


1

데비안 (그리고 우분투) 패키지는 바이너리 모음과 설치 관련 지침입니다. 이는 패키지 자체가 설치 방법 및 위치를 알고 패키지가 의존하는 패키지 목록도 알고 있음을 의미합니다.

(확장자를 가진 파일 소스 타르볼 .tar.gz또는 .tar.bz2- 짝수 또는 .TGZ 또는 .tbz2은 ) 단순히 함께 포장 된 파일 및 디렉토리의 집합 인 tar하나와 유틸리티도 압축 gzip또는 bzip2. 소스 코드를 빌드하려면 다음을 수행하십시오.

  1. tar xvfz file.tar.gz또는 tar xvfj file.tar.bz2빈 디렉토리에 파일을 압축 해제하십시오.
  2. 패키지를 구성하십시오 (패키지 ./configure는 컴파일을 시작하기 전에 모든 것이 정상인지 확인하기 위해 시스템을 테스트합니다)
  3. 와 컴파일을 시작 make
  4. 원하는 경우 make install응용 프로그램을 "기본"위치 (일반적으로 / usr / {s} bin 또는 / usr / local / {s} bin에 설치하지만 응용 프로그램 및 배포판에 따라 다름)에 설치합니다.

소스 타르볼과 관련하여 데비안 / 우분투 패키지의 주요 장점은 패키지가 "자체 포함"되고 바이너리가 추적된다는 것입니다. 즉, 포장 풀기 프로세스는 응용 프로그램 당 하나의 패키지 만 보는 사용자에게 투명합니다. 사용자는 주어진 응용 프로그램이 어떤 파일을 설치했으며 어디에 설치했는지 기억할 필요가 없으므로 응용 프로그램의 설치 / 제거는 하나의 명령 프로세스가됩니다.

바이너리 패키지와 관련하여 소스 타르볼의 주요 장점은 첫 번째 경우 소스 코드가 대상 시스템에서 직접 컴파일 된 후 그에 따라 최적화 될 수 있다는 것입니다. 또한 최고의 패키지 시스템조차도 특정 경우 (예 : 소프트웨어 패키지가 너무 새롭거나 너무 오래된 경우)에 침입 할 수 있으며 일반적으로 공식 패키지는 너무 오래된 서버에 의해 제거됩니다. 이 경우 모든 의존성을 만족시키기 위해 인터넷에서 원하는 응용 프로그램과 특정 버전의 특정 라이브러리를 수동으로 검색해야합니다.


1
작은 점. "configure, make, make install"단계는 GNU automake 빌드 철학을 사용하는 소프트웨어를위한 것입니다. 다양한 방법으로 소스 (타르 볼)에서 빌드 할 수있는 소프트웨어가 있습니다. 따라서 "소스를 빌드하려면 구성, 구성, 설치"를하는 것이 올바르지 않을 수 있습니다. "소스에서 설치하려면 소스 내에서 README 또는 INSTALL 파일을 읽고 여기에 언급 된 단계를 따르십시오. 참조 : sosaysharis.wordpress.com/2011/11/28/…
harisibrahimkv

예, 방금 대다수의 소스 타르볼이 채택했기 때문에 이런 종류의 방법에 대해 이야기했습니다.
Avio

논쟁은 없습니다. :)
harisibrahimkv

1

꽤 좋은 답변이 이미 게시되어 있음을 알 수 있습니다. 그러나 해결해야 할 몇 가지 사항이 있습니다.

소스에서 컴파일 할 때 "종속성 지옥 (dependency hell)"과는 달리 tarball / 모든 소스에서 컴파일 할 때 이러한 종속성을 자동으로 설치하는 방식으로 Ubuntu를 실제로 구성 할 수 있습니다.

이 작업을 수행하는 방법을 여기에서 읽으십시오.

http://www.howtogeek.com/106526/how-to-resolve-dependencies-while-compiling-software-on-ubuntu/

또한 의존성 문제를 제쳐두면 tarballs의 좋은 점은 소스에서 설치하는 경우 설치 위치와 같은 많은 설치 관련 항목을 매우 쉽게 구성 할 수 있다는 것입니다.

또한 "데비안 패키지"라는 단어는 이러한 맥락에서 혼란을 줄 수 있습니다. 데비안 패키지는 다음과 같이 두 가지 유형으로 제공됩니다.

http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html

물론 deb 파일에 대해서만 이야기하는 경우 일반적으로 위의 답변과 같은 컴파일 된 소프트웨어입니다.

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