바이너리 꾸러미 안내서

마지막 업데이트: 2022년 4월 8일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
hello-debhelper (2.1.1-1) dapper; 긴급함 = 낮음 * 초기 배포 - Captain Packager 목, 2006 년 4 월 6 일 10:07:19 -0700

우분투 포장 가이드

꾸러미 (packager)로서 이전 섹션에서했던 것처럼 처음부터 꾸러미를 만드는 일은 거의 없을 것입니다. 상상할 수 있듯이 rules 파일의 많은 작업과 정보는 패키지와 공통입니다. 패키징을보다 쉽고 효율적으로 수행하려면 debhelper 를 사용하여 이러한 작업을 수행 할 수 있습니다. Debhelper는 패키지 빌드 프로세스를 자동화하는 Perl 스크립트 세트 ( dh_ 접두사)입니다. 이 스크립트를 사용하면 데비안 패키지를 만드는 것이 아주 간단 해집니다.

이 예제에서는 GNU Hello 패키지를 다시 빌드 하겠지만 이번에는 우분투 hello-debhelper 패키지 비교할 것입니다. 다시 작업 할 디렉토리를 만듭니다.

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir 우분투 cd 우분투

그런 다음 우분투 소스 패키지를 얻으십시오.

앞의 예제와 마찬가지로, 우리가해야 할 첫 번째 일은 원래 (업스트림) 타르볼을 푸는 것입니다.

이전 예제에서와 같이 상류 타르볼을 hello_2.1.1.orig.tar.gz 에 복사하는 대신 dh_make 가 작업을 수행하도록 할 것입니다. 소스 폴더의 이름을 바꾸려면

- 형식으로되어 있어야하며 여기서 packagename은 소문자 여야합니다. 이 경우, 타르볼을 푸는 것만으로 올바르게 명명 된 소스 디렉토리가 생기므로 다음 디렉토리로 이동할 수 있습니다 :

소스의 초기 "데비안 화"를 만들기 위해 dh_make 를 사용할 것입니다.

dh_make는 일련의 질문을합니다.

유지 관리자 이름 : Captain Packager 전자 메일 주소 : [email protected] 날짜 : 2006 년 4 월 6 일 10:07:19 -0700 패키지 이름 : hello 버전 : 2.1.1 라이센스 : 비어 있음 패키지 유형 : 단일 확인 : Enter

dh_make -e를 한 번만 실행하십시오. 처음 실행 한 후에 다시 실행하면 제대로 작동하지 않습니다. 변경하거나 실수를하려면 원본 디렉토리를 제거하고 업스트림 타볼을 새로 압축 해제하십시오. 그런 다음 원본 디렉터리로 마이그레이션하고 다시 시도 할 수 있습니다.

dh_make -e를 실행하면 다음 두 가지 작업을 수행합니다.

  • 상위 디렉토리에 hello_2.1.1.orig.tar.gz 파일을 작성하고,
  • debian / 과 필요한 많은 템플릿 파일 (.ex)에 필요한 기본 파일을 만듭니다.

Hello 프로그램은 그다지 복잡하지는 않습니다. "Packaging From Scratch"섹션에서 보았 듯이 패키징에는 기본 파일을 훨씬 넘는 패키지가 필요하지 않습니다. 따라서 .ex 파일을 제거합시다.

안녕하세요 .

README.Debian (프로그램의 README가 아닌 특정 데비안 문제에 대한 README 파일), dir ( dh_installdirs 가 필요한 디렉토리를 만드는 데 사용), docs (프로그램 설명서를 설치하기 위해 dh_installdocs 에서 사용) 또는 info ( dh_installinfo 에서 정보를 설치하는 데 사용) 파일) 파일을 debian 디렉토리에 복사 합니다. 이러한 파일에 대한 자세한 내용은 "dh_make 예제 파일"을 참조하십시오.

이 시점에서 debian 디렉토리에 changelog , compat , control , copyrightrules 파일 만 있어야합니다. "Packaging From Scratch"섹션에서 새로운 파일은 compat 입니다.이 파일은 debhelper 버전 (이 경우 4)이 포함 된 파일입니다.

이 패키지의 이름이 hello가 아닌 hello-debhelper 라는 것을 반영하기 위해이 경우 changelog를 약간 조정해야합니다.

hello-debhelper (2.1.1-1) dapper; 긴급함 = 낮음 * 초기 배포 - Captain Packager

목, 2006 년 4 월 6 일 10:07:19 -0700

debhelper 를 사용하면, 우리가 제어 할 필요가있는 것은 hello- hellohello로 대체하고 이름을 debhelper (> = 4.0.0) 를 소스 패키지의 Build-Depends 필드에 추가하는 것입니다. hello-debhelper 용 우분투 패키지는 다음과 같습니다 :

우분투 hello-debhelper 패키지의 저작권 파일과 postinstprerm 스크립트는 "Packaging From Scratch"섹션 이후로 변경되지 않았으므로 복사 할 수 있습니다. rules 파일을 검사하여 검사 할 수도 있습니다.

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright. cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules.

마지막으로 살펴 봐야 할 파일은 규칙입니다 . 여기서 debhelper 스크립트의 힘을 볼 수 있습니다. debhelper 버전의 규칙 은 다소 작습니다 ( "rules"섹션의 버전에서 72 행과 반대되는 54 행).

debhelper 버전은 다음과 같습니다.

CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 clean : dh_testdir dh_clean rm -f 빌드 - $ distclean install : 빌드 dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (패키지) / usr \ mandir = $ (CURDIR) / debian / $ (패키지) / usr / share / info \ install build : / usr / share / man / infodir = $ (CURDIR) / debian / (CC) "CFLAGS ="$ (CFLAGS) "

touch build binary-indep : install #이 패키지에 의해 생성 된 # 파일은 아키텍처 독립적 인 파일이 아닙니다. 어떤 것이 있다면 여기에 # 할 것입니다. binary-arch : install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs 바이너리 꾸러미 안내서 -a 변경 로그 dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary : binary-indep binary- arch .PHONY : 바이너리 바이너리 - 아치 바이너리 - 독립 clean checkroot

올바른 디렉토리 ( dh_testdir )에 있는지 테스트하고, 루트 권한 ( dh_testroot )을 사용하여 패키지를 빌드하고, 문서 ( dh_installdocsdh_installchangelogs ) 설치 및 빌드 후 정리 ( dh_clean )가 자동으로 처리되는 것과 같은 작업 . hello 보다 훨씬 복잡한 많은 패키지는 debhelper 스크립트가 대부분의 작업을 처리하기 때문에 더 큰 규칙 파일을 가지고 있지 않습니다. debhelper 스크립트의 전체 목록은 " debhelper 스크립트 목록"섹션을 참조하십시오. 그것들은 각각의 페이지에 잘 설명되어 있습니다. 위의 rules 파일에서 사용 된 각 도우미 스크립트에 대한 맨 페이지 (잘 쓰여 있고 길지는 않습니다)를 읽는 것이 좋습니다.

바이너리 꾸러미 안내서

This page is a translated version of the page Binary package guide and the translation is 93% complete.

일상의 ebuild 지원 요소 말고도, 포티지에서는 바이너리 꾸러미 빌드 및 설치를 지원합니다. 이 안내서에서는 바이너리 꾸러미를 만들고, 설치하는 방법, 그리고 바이너리 꾸러미 서버를 설정하는 방법을 설명합니다.

Contents

일부 시스템 관리자가 젠투에서 바이너리 패키지 설치를 좋아하는 이유는 몇가지가 있습니다.

  1. 무엇보다도, 관리자가 유사한 시스템간의 최신 상태를 유지하는 시간을 아낄 수 있게해줍니다. 모든 소스코드를 컴파일 한다는 건 상당한 시간 소모를 야기합니다. 일부가 오래된 하드웨어이긴 하겠지만, 하나의 시스템에서 모든 소스코드를 컴파일 하고 다른 시스템에서는 바이너리 꾸러미를 재사용할 수 있을 경우 수많은 유사한 시스템을 관리하는 일이 굉장히 쉬워질 수 있습니다.
  2. 두번째 이유는 안전한 업데이트 수행입니다. 임무가 중요한 시스템에서는 가능한한 사용 가능한 상태를 유지하는 것이 중요합니다. 이 작업은 모든 업데이트를 우선 처리하는 스테이지 서버에서 처리할 수 있으며, 스테이지 서버 상태가 괜찮아지면 중요한 시스템에 적용할 수 있습니다. 다른 접근 방식으로는, 동일 시스템 내에서의 chroot 환경의 업데이트로 처리하고 실제 시스템에 만든 바이너리를 사용하는 방법이 있습니다.
  3. 세번째 이유는 백업으로서의 의미가 있기 때문입니다. 종종 바이너리 꾸러미가 망가진 시스템(예: 컴파일러 망가짐)을 복구하는 유일한 수단이 될 수 있습니다. 바이너리 꾸러미 서버든, 로컬 머신 어디든 미리 컴파일해둔 바이너리 꾸러미를 둔다면 툴체인이 망가졌을 때 굉장한 도움이 될 수 있습니다.
  4. 마지막으로, 이 방식은 상당히 오래된 시스템의 업데이트를 지원합니다. 매우 오래된 시스템의 업데이트 작업은 바이너리 꾸러미를 사용하여 매우 쉽게 처리할 수 있습니다. 설치하고 업데이트 할 때 빌드 시간에 의지할 필요가 없는 바이너리 꾸러미 설치가 오래된 시스템에 종종 도움이 되기도 합니다. 바이너리 꾸러미는 미리 컴파일했기 때문에 빌드 과정의 실패 경우를 피할 수 있습니다.

이 안내서에서는, 다음 내용에 집중했습니다:

  • 바이너리 꾸러미를 만드는 방법.
  • 바이너리 꾸러미를 클라이언트에 배포하는 방법.
  • 바이너리 꾸러미 활용법.
  • 바이너리 꾸러미 관리법.

바이너리 꾸러미를 다루는 몇가지 고급주제를 더 다루는 것으로 마칠 때가 왔습니다.

바이너리 꾸러미 만들기

바이너리 꾸러미를 만드는 세가지 주요 방법은 다음과 같습니다:

  1. 일반 설치 과정 후, quickpkg 사용하기
  2. --buildpkg (-b) 옵션으로 emerge 처리 과정에 명시하기
  3. 포티지 기능에 buildpkg 값을 넣어 자동으로 처리하기

이 모든 세가지 방식은 PKGDIR 변수에서 가리치는 디렉터리에 바이너리 꾸러미를 만듭니다(기본값은 /usr/portage/packages ).

quickpkg 사용하기

quickpkg 프로그램은 하나 이상의 의존 요소(또는 꾸러미 집합)를 취하며, 일치하는 모든 설치한 꾸러미에 대한 바이너리 꾸러미를 만듭니다.

예를 들어, 설치한 모든 GCC 버전에 대해 바이너리 꾸러미를 만든다면:

시스템에 이미 설치한 꾸러미의 바이너리 꾸러미를 만들려면 * 글롭을 사용하십시오:

이 방식을 활용하는데 있어 위험성을 내포하고 있습니다. 설정 파일에서 문제가 될 수 있는 설치 파일에 의존합니다. 관리자는 종종 프로그램을 설치한 후 설정 파일을 편집합니다. 이 방법은 중요한 (비밀) 데이터를 꾸러미에 포함할 수 있기 때문에 quickpkg 는 기본적으로 CONFIG_PROTECT 방식을 통해 보호한 설정 파일은 포함하지 않습니다. 마찬가지로 설정 파일을 강제로 포함하려면, --include-config 또는 --include-unmodified-config 옵션을 사용하십시오.

--buildpkg 이머지 옵션 사용하기

emerge 로 프로그램을 설치할 때, --buildpkg (-b) 를 사용하여 포티지에게 바이너리 꾸러미를 만들도록 요청할 수 있습니다:

바이너리 꾸러미를 만들기 하고 라이브 시스템에 소프트웨어를 설치하지 않도록 요청할 수 있습니다. 이렇게 하려면 --buildpkgonly (-B) 옵션을 활용하시면 됩니다:

그러나 후자 방식은 앞서 설치한 빌드 시간 의존성이 필요합니다.

포티지 기능 buildpkg 적용

포티지에서 꾸러미를 언제 설치하든지 바이너리 꾸러미를 자동으로 만드는 일반적인 방법은 다음과 같이 /etc/portage/make.conf buildpkg 를 사용하는 방식입니다:

이 기능을 활성화하면, 항상 포티지에서는 프로그램을 설치할 때마다 바이너리 꾸러미도 함께 만듭니다.

일부 꾸러미 생성 제외

몇가지 꾸러미 또는 카테고리는 바이너리 꾸러미를 만들지 않게 할 수 있습니다. 이머지를 바이너리 꾸러미 안내서 수행할 때 --buildpkg-exclude 옵션을 전달하면 됩니다:

이 방법은 존재하는 바이너리 패키지를 취하는데 조금 또는 어떠한 이득조차도 없이 꾸러미를 취득하는데 활용할 수 있습니다. 리눅스 커널 소스 꾸러미 또는 업스트림 바이너리 꾸러미가 예가 될 수 있습니다(www-client/firefox-bin과 같이 -bin으로 끝나는 꾸러미).

바이너리 꾸러미 호스트 설정

포티지는 바이너리 꾸러미를 다운로드할 바이너리 꾸러미 안내서 다양한 프로토콜, FTP, FTPS, HTTP, HTTPS, SSH를 지원합니다. 이 특징은 바이너리 꾸러미 호스트 구현에 대한 다양한 가능성의 여지를 남겨놓았습니다.

그러나 포티지에서는 바이너리 꾸러미 배포에 있어 특별한 방식을 제공하는 것은 아닙니다. 원하는 설정에 따라 추가 프로그램을 설치할 필요가 있습니다.

웹기반 바이너리 꾸러미 호스트

바이너리 꾸러미를 배포하는 일반적인 접근 방식은 웹기반 바이너리 꾸러미 호스트를 만드는 것입니다.

(lighttpdwww-servers/lighttpd와 같은) 웹 서버를 사용하시고, /etc/portage/make.conf 의 PKGDIR 위치 값을 설정하여 읽기 권한을 부여하십시오.

다음, 클라이언트에서 이 설정값에 맞춰 PORTAGE_BINHOST 값을 설정하십시오:

SSH 바이너리 꾸러미 호스트

바이너리 꾸러미를 인증 방식으로 제공하려면 SSH 사용을 고려할 수 있습니다.

SSH를 사용할 때, 원격 바이너리 꾸러미 호스트로 연결할 경우 리눅스 사용자의 SSH 키를(설치 과정처럼 뒤에서 무슨 일로 처리해야 할 경우 암호 없이) 사용할 수 있습니다.

이 과정을 수행하려면, 포티지 사용자의 SSH 키를 서버에서 허용했는지 확인해야 합니다:

PORTAGE_BINHOST 변수 값은 다음과 같이 바꿀 수 있습니다:

참고
포티지에서 꾸러미를 클라이언트에 전달할 때 포트와 사용자 이름을 무시하므로 ~/.ssh/config를 사용하지 마십시오. 대신 PORTAGE_BINHOST 변수에 모든 옵션을 올바르게 설정하십시오.

NFS 내보내기

내부 네트워크에서 바이너리 꾸러미를 사용한다면, NFS를 통해 꾸러미를 바로 내보내고 클라이언트에서 마운트하는 일련의 과정이 쉽습니다.

/etc/exports 파일은 다음과 같이 바꿀 수 있습니다:

이 과정이 끝나면 클라이언트에서는 해당 위치를 마운트할 수 있습니다. /etc/fstab 예제 항목은 다음과 같습니다:

바이너리 꾸러미 사용하기

다른 시스템에서 바이너리 꾸러미를 쓸만하게 하려면 몇가지 요구조건을 만족해야 합니다:

  • 클라이언트와 서버 아키텍처 및 CHOST 설정이 일치해야 합니다.
  • 바이너리 꾸러미를 빌드하는데 사용했던 CFLAGS 와 CXXFLAGS 값이 다른 클라이언트와 호환되어야합니다.
  • 프로세서별 기능에 해당하는 USE 플래그(MMX, SSE 같은 경우)는 조심스럽게 선택해야 합니다. 모든 클라이언트에서 해당 USE 플래그를 지원해야합니다.

그 다음, 포티지에서는 클라이언트에서 바라는 USE 플래그와 바이너리 꾸러미에서 사용하는 USE 플래그가 동일한지 점검합니다. 포티지에서는 실행할 emerge 명령에 전달한 옵션에 따라 바이너리 꾸러미를 무시하(며 소스코드 기반 빌드를 활용)하거나 실패로 돌리기도 합니다(바이너리 꾸러미 설치 참고).

클라이언트쪽에서는, 사용할 바이너리 꾸러미에 대한 약간의 설정을 바꾸기만 하면 됩니다.

바이너리 꾸러미 설치

바이너리 꾸러미를 사용하도록 포티지에 안내하려 emerge 명령에 전달할 수 있는 몇가지 옵션이 있습니다.

옵션 설명
---usepkg
(-k)
로컬에 packages 디렉터리가 존재하는 경우 바이너리 꾸러미 사용을 시도합니다. NFS 또는 SSHFS로 마운트한 바이너리 꾸러미 호스트를 사용할 경우 쓸모있습니다. 바이너리 꾸러미를 찾지 못하면 일반(소스코드 기반) 설치 방식으로 진행합니다.
--usepkgonly
(-K)
--usepkg (-k) 옵션과 유사하지만 바이너리 꾸러미를 찾지 못하면 실패로 되돌립니다.
--getbinpkg
(-g)
원격 바이너리 꾸러미 호스트에서 바이너리 꾸러미를 다운로드합니다. 바이너리 꾸러미를 찾지 못하면 일반(소스코드 기반) 설치 방식으로 진행합니다.
--getbinpkgonly
(-G)
--getbinpkg (-g) 옵션과 유사하지만 바이너리 꾸러미를 다운로드할 수 없으면 실패로 되돌립니다. 이 옵션은 미리 빌드한 바이너리 꾸러미를 사용할 때 쓸모있습니다.

바이너리 꾸러미 설치를 자동으로 활용한다면, EMERGE_DEFAULT_OPTS 변수에 적당한 옵션 값을 추가할 수 있습니다:

EMERGE_DEFAULT_OPTS 변수 값을 업데이트할 필요 없이 --getbinpkg (-g) 옵션과 같은 기능을 자동으로 수행하는 getbinpkg 포티지 기능이 있습니다.

바이너리 꾸러미 호스트에서 꾸러미 가져오기

바이너리 꾸러미 호스트를 사용할 때, 클라이언트에서는 PORTAGE_BINHOST 변수 값을 설정해야 합니다. 그렇지 않으면 바이너리 꾸러미가 어디에 저장되어 있는지 모릅니다(그리고 어떻게 가져오는 지도 모릅니다).

PORTAGE_BINHOST 변수는 공백 구분 URI 값을 사용합니다. 이를 통해 관리자가 다양한 바이너리 꾸러미 서버를 동시에 활용할 수 있습니다. URI는 항상 반드시 Packages 파일이 위치한 디렉터리를 지시해야합니다.

참고
다중 바이너리 꾸러미 서버 지원은 약간 덜 완벽합니다. 동일한 꾸러미 버전에 대해 다양한 서버에서 바이너리 꾸러미를 제공한다면, 처음 서버만을 고려합니다. 각각의 서버에서의 USE 변수 설정과 바이너리 꾸러미 처리 후 시스템 설정에 일치할 USE 변수 설정이 다르다면 문제가 될 수 있습니다.

수정한 바이너리 꾸러미 재설치

emerge 에 전달할 --rebuilt-binaries 옵션은 설치한 꾸러미에서 다시 빌드한 모든 바이너리를 다시 설치합니다. 이 옵션은 바이너리 꾸러미 서버에서 revdep-rebuild 또는 python-updater 와 같은 도구를 다시 빌드할 때 써먹을만합니다.

관련 옵션은 --rebuilt-binaries-timestamp 입니다. 이 옵션은 바이너리 꾸러미를 타임스탬프를 부여받기 이전에 빌드했을 경우 이머지가 바이너리 꾸러미를 재설치를 고려하지 않도록 합니다. 이 옵션은 바이너리 꾸러미 서버를 처음부터 다시 빌드했지만 --rebuilt-binaries 옵션을 다른 경우에 활용했을 경우 유용합니다.

추가 클라이언트 설정

getbinpkg 기능 다음에, 포티지에서는 binpkg-logs 기능을 감지합니다. 이 기능은 바이너리 꾸러미의 성공적인 설치 여부에 대한 기록을 유지해야 할 경우에 대비해 기록을 통제합니다. PORT_LOGDIR 변수 값을 설정하고 기본적으로 활성화 했을 경우에만 해당됩니다.

몇가지 꾸러미 모음 또는 항목 분류에서 바이너리 꾸러미를 제외하는 유사한 방법으로, 클라이언트에서 꾸러미 모음 또는 항목 분류와 같은 바이너리 꾸러미 설치를 제외하도록 설정할 수 있습니다.

설정을 완료하려면, --usepkg-exclude 옵션을 사용하십시오:

To enable such additional settings for each emerge command, add the options to the EMERGE_DEFAULT_OPTS variable in the make.conf file:

바이너리 꾸러미 관리

바이너리 꾸러미를 내보내고 배포하는 작업은 실제로 바이너리 꾸러미 목록을 유지하지 않을 경우 불필요한 저장소 낭비를 초래할 수 있습니다.

오래된 바이너리 꾸러미 제거

app-portage/gentoolkit 꾸러미에서는 eclean 프로그램을 제공합니다. 이 프로그램에서는 포티지 관련 변수 파일을 관리할 수 있게 하는데, 다운로드한 소스코드 파일 뿐만 아니라 바이너리 꾸러미에 대해서도 관리합니다.

다음 명령은 ebuild에 관계없는 모든 각각의 바이너리 꾸러미를 제거합니다:

자세한 내용은 Eclean 게시물을 읽어보십시오.

활용할 수 있는 또 다른 도구로는 app-portage/portage-utils의 qpkg 가 있습니다. 그러나 이 도구는, 설정할 수 있는 범위가 약간 좁습니다.

(바이너리 꾸러미를 저장한 서버에서 사용하는 개념 차원에서)사용하지 않는 바이너리 꾸러미를 지우려면:

꾸러미 파일 관리

꾸러미 디렉터리 내부에 Packages 라는 파일이 있습니다. 이 파일은 꾸러미 디렉터리의 모든 바이너리 꾸러미 메타데이터 캐시로 동작합니다. 포티지가 바이너리 꾸러미를 디렉터리에 추가할 때마다 파일을 업데이트합니다. 이와 비슷하게 eclean 에서 바이너리 꾸러미를 제거할 때 Packages 파일을 업데이트합니다.

어떤 이유로 인해 바이너리 꾸러미를 단순하게 삭제했거나 꾸러미 디렉터리로 복사했다든지, Packages 파일이 깨졌다거나 삭제됐다면, 다시 만들어야 합니다. 이 작업은 emaint 명령으로 처리할 수 있습니다:

고급 주제

꾸러미 디렉터리 스냅샷 만들기

상당수의 클라이언트 시스템에 바이너리 꾸러미를 배포하려 할 때, 꾸러미 디렉터리 스냅샷을 만드는 것이 좋습니다. 그렇게 하면 클라이언트 시스템에서는 꾸러미 디렉터리를 바로 사용하지 않지만 스냅샷의 바이너리 꾸러미를 사용합니다.

/usr/lib64/portage/bin/binhost-snapshot 또는 /usr/lib64/portage/python3.3/binhost-snapshot 도구를 활용하면 스냅샷을 만들 수 있습니다. 네 개의 매개변수를 취합니다:

  1. 원본 디렉터리(꾸러미 디렉터리 경로)
  2. 대상 디렉터리(존재하면 안됨)
  3. URI
  4. 바이너리 꾸러미 서버 디렉터리

꾸러미 디렉터리의 파일은 대상 디렉터리로 복사합니다. 그 다음 주어진 URI의 바이너리 꾸러미 서버 디렉터리(네번째 매개변수)에 Packages 파일을 만듭니다.

클라이언트 시스템에서 바이너리 꾸러미 서버 디렉터리를 가리키려면 URI를 사용해야 합니다. 해당 위치에서 binhost-snapshot 에 주어진 URI로 재참조합니다. 이 URI에는 대상 디렉터리 참조가 들어있습니다.

바이너리 꾸러미 형식 이해

포티지가 만든 바이너리 꾸러미의 파일 이름은 .tbz2 로 끝납니다. 이 파일은 두부분으로 나눕니다:

  1. 시스템에 설치할 파일이 있는 .tar.bz2 아카이브
  2. 꾸러미 메타데이터, ebuild, 환경 파일이 있는 xpak 아카이브

파일 형식의 설명을 보려면 man xpak 를 참고하십시오.

app-portage/portage-utils 에 tbz2 와 xpak 형식의 파일을 나누거나 만들 수 있는 몇가지 바이너리 꾸러미 안내서 도구가 있습니다.

다음 명령은 tbz2 를 .tar.bz2 파일과 .xpak 파일로 나눕니다:

qxpak 을 활용하여 .xpak 파일을 검사할 수 있습니다.

다음 명령은 이 꾸러미에 대한 USE 플래그를 활성화 하는 USE 파일의 압축을 풉니다:

PKGDIR 배치

현재 사용하는 버전 2 형식은 다음 배치를 따릅니다:

Packages 파일은 첫 바이너리 꾸러미 디렉터리 배치(버전 1)에 비해 주된 개선이 이루어진 부분(이며 버전 2를 사용하는 바이너리 꾸러미 디렉터리를 확인하는 포티지기능의 시발점입니다). 버전 1에서는 모든 바이너리 꾸러미를 단일 디렉터리( All/ 이라고 함)에서 제공했으며, 항목 분류 디렉터리에는 All/ 디렉터리에 있는 바이너리 꾸러미의 심볼릭 링크만 지니고 있었습니다.

quickunpkg로 꾸러미 해제하기

Zoobab이 .tbz2 파일을 빨리 풀어내는 간단한 quickunpkg 명령줄 도구를 작성했습니다.

  • This page was last edited on 5 June 2019, at 16:50.

© 2001–2022 Gentoo Authors
Gentoo is a trademark of the Gentoo Foundation, Inc. The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-4.0 license. The Gentoo Name and Logo Usage Guidelines apply.

바이너리 꾸러미 안내서

이 부분에서는 이 안내서의 다른 부분에 설명되어 있는 ncurses 기반 메뉴 방식 설치 프로그램을 사용하지 않고, 기존 유닉스 혹은 리눅스 시스템을 이용해 Debian GNU/Linux 배포판을 바이너리 꾸러미 안내서 설치하는 방법을 설명합니다. 이 “ 크로스 설치 ” HOWTO는 Red Hat, Mandrake, SUSE에서 Debian GNU/Linux 배포판으로 바꾸려는 사용자들에게 필요한 부분입니다. 여기서는 유닉스 계열의 명령어를 입력하는 방법이나 파일 시스템을 돌아다니는 데 익숙해져 있다고 가정합니다. 여기서 $ 표시는 사용자의 기존 시스템에서 입력하는 명령어이고, # 표시는 데비안 chroot에서 입력하는 명령어를 말합니다.

새로 설치한 데비안 시스템을 필요에 맞게 설정하기만 하면, 기존 사용자 데이터를 (있다면) 옮겨와서 계속 사용할 수 있습니다. 즉 “ 다운타임이 없는 ” Debian GNU/Linux 설치입니다. 또 이 방법은 여러가지 부팅 미디어나 설치 미디어들이 동작하지 않는 하드웨어에 설치하는 쉬운 방법이기도 합니다.

C.4.1. 시작하기

기존 유닉스용 파티션 도구를 이용해 하드 드라이브를 필요한 대로 다시 파티션하십시오. 최소한 파일 시스템 한 개를 스왑으로 만드십시오. 콘솔만 설치하는 경우는 최소 150MB의 공간이 필요하고 X를 설치한다면 최소 300MB가 필요합니다.

파티션에 파일 시스템을 만드려면 다음과 같이 하십시오. 예를 들어 /dev/hda6 파티션에 ext3 파일 시스템을 만드는 경우라면 (여기 예제에서 루트 파티션입니다):

ext2 파일 시스템을 만드는 경우라면 -j 옵션을 빼십시오.

스왑을 초기화하고 활성화하십시오 (파티션을 사용하려는 데비안 스왑 파티션으로 바꾸십시오):

한 파티션을 /mnt/debinst 에 (루트 ( / ) 파일시스템을 설치할 위치) 마운트하십시오. 마운트 위치 이름은 마음대로 정한 것이고, 아래에서 계속 사용합니다.

파일시스템의 (예를 들어 /usr) 일부를 별도의 파티션에 마운트하려면, 다음 단계로 넘어가기 전에 그 디렉토리를 수동으로 만들어서 마운트해야 합니다.

C.4.2. debootstrap 설치

데비안 설치 프로그램이 사용하는 도구로, 데비안 베이스 시스템을 설치하는 공식적인 방법은 debootstrap 입니다. debootstrapwgetar 을 사용하지만, 그 밖에는 /bin/sh 만 있으면 동작합니다. 기존 시스템에 wgetar 이 없으면 설치하십시오. 그리고 debootstrap 을 내려 받고 설치하십시오.

RPM 기반 시스템이라면, alien으로 .deb 파일을 .rpm 파일로 변환하거나 http://people.debian.org/~blade/install/debootstrap에 있는 RPM 버전을 내려 받으십시오.

아니면, 다음 방법을 이용해 수동으로 설치할 수도 있습니다. 먼저 .deb 파일을 풀 작업용 폴더를 만드십시오:

바이너리 파일은 데비안 아카이브에 있습니다. (아키텍쳐에 맞는 파일을 선택하도록 하십시오) 꾸러미 풀에서 debootstrap .deb 파일을 내려받으시고, 꾸러미를 작업용 폴더에 복사하고, 바이너리 파일을 풀어 내십시오. 이 바이너리를 설치하려면 루트 권한이 필요할 것입니다.

debootstrap 을 실행하려면 glibc 의 최소한의 버전은 (현재 GLIBC_2.3) 있어야 합니다. debootstrap 자체는 쉘 스크립트이지만, 이 스크립트에서 glibc가 있어야 하는 여러 가지 유틸리티를 실행합니다.

C.4.3. debootstrap 실행

debootstrap 을 실행하면 필요한 파일들을 아카이브에서 직접 내려받습니다. 아래의 명령어 예제에서 http.us.debian.org/debian 을 아무 데비안 아카이브 미러로 바꿀 수 있습니다. 네트워크에서 가까이 있는 미러로 하는 게 좋습니다. 미러 목록은 http://www.debian.org/misc/README.mirror에 있습니다.

sarge Debian GNU/Linux CD를 /cdrom 에 마운트했다면 http URL 대신에 file URL을 쓸 수 있습니다: file:/cdrom/debian/

debootstrap 명령에서 ARCH 를 다음 중의 하나로 바꾸십시오: alpha , arm , hppa , i386 , ia64 , m68k , mips , mipsel , powerpc , s390 , sparc .

딜러의 햇빛 가리개

Dealer's Visor.png

Dealer's Visor은 헤비의 모자입니다. 2010 11월 22일 전까지 Poker Night at the Inventory를 예약 주문하면 얻을 수 있었습니다. 아쿠아 마린색의 썬캡입니다. 이 모자는 2010년 11월 22일전에 Poker Night at the Inventory을 예약구매한 유저들에게 증정되었습니다.

페인트칠 모형

일색
격하게 떡칠된 옅은 색 색상 번호: 216-190-216 유별나게 칙칙한 팅크색 나이 지긋한 콧수염빛 회색
색다른 색조의 결핍 애프터 에이트 레디건 코내거 갈색 낡고 둔박한 빛깔
근육남의 갈색 피부 Mann Co. 주황색 오스트레일륨 황금 젠틀만의 업무용 바지 색
그을린 연어색 엄청 진한 핑크색 자주색에 완전 충실한 색 고결한 모자 장수의 보라색
벼룻돌 비슷한 색 제페니아의 탐욕 국방색 또렷한 녹색
라임과도 같은 패배의 쓴 맛 Mann의 박하색
팀 색상
물에 젖은 실험복 (레드) 물에 젖은 실험복 (블루) 발라클라바는 영원히 (레드) 발라클라바는 영원히 (블루)
단체 정신 (레드) 단체 정신 (블루) 기술자의 멜빵바지 (레드) 기술자의 멜빵바지 (블루)
협동의 가치 (레드) 협동의 가치 (블루) 위풍당당한 분위기 (레드) 위풍당당한 분위기 (블루)
크림 정신 (레드) 크림 정신 (블루) 페인트 미적용

딜러의 햇빛 가리개의 옛 버전

딜러의 햇빛 가리개와 철의 장막을 든 헤비가 있는 홍보 이미지

Poker Night at the Inventory에서의 딜러의 햇빛 가리개의 모습

업데이트 기록

  • 딜러의 햇빛 가리개가 게임에 추가되었습니다.
  • 모자의 미리 보기 텍스처가 향상되었습니다.
  • 이 썬캡 양식은 보통 포커 테이블 위에 매달려 있는 밝은 빛으로부터 딜러의 눈을 보호하기 위한 것입니다.
  • 만약 플레이어가 Poker Night at the Inventory 플레이 중 붉은색 테이블을 선택한다면, 헤비는 포커 게임 중에 이 모자를 쓰고 있을 것입니다.

외부 링크

Blapature Co. 기여자 · Blapature Co. Backer · Blapature Co. Supporter · Blapature Co. Benefactor · BlapBash Backer 2019 · BlapBash Supporter 2019 · BlapBash Benefactor 2019 · BlapBash Backer 2021 · BlapBash Supporter 2021 · BlapBash Benefactor 2021

Hyperledger 패브릭 설치 안내서

이 가이드에서는 Linux 컴퓨터와 Windows 컴퓨터에 Hyperledger Fabric v1.4를 설치합니다.

Hyperledger Fabric 설치를 배우기 시작했을 때 정말 고통 스러웠고 Windows를 사용하면 매우 나 빠졌습니다.

이 기사의 목적은 Windows 또는 Linux 사용 여부에 상관없이 모든 지시 사항을 한 곳에서 배치하여 Hyperledger 패브릭 네트워크를 바이너리 꾸러미 안내서 설정하는 것입니다.

내가하지 않기 때문에, macOS 지시자를 포함하여 macOS 독자를 위해 사과한다.

선행 조건 Linux 설치 Windows 설치

선수 과목

cURL – Docker의 최신 버전 – 버전 17.06.2-ce 이상 Docker Compose – 버전 1.14.0 이상 Golang – 버전 1.11.x. Nodejs – 버전 8.x [다른 버전은 아직 지원되지 않음] NPM – 버전 5.x. Python 2.7

이 전제 조건의 버전은 fabric v1.4 문서를 기반으로합니다.

리눅스 설치

Linux 설치는 Windows에 비해 매우 간단합니다. 몇 가지 명령과 패브릭 준비.

이 기사에서는 AWS 용 Linux 16.04 VM을 구성했습니다. 모든 지시 사항은 터미널에서 실행됩니다. Hyperledger 설명서에서 시스템 요구 사항 정보를 찾지 못했습니다. 시스템 요구 사항에 대한 참조가있는 경우 리뷰를 게시하십시오.

1 단계 : 새로운 sudo 사용자 만들기

Hyperledger 패브릭을 루트 사용자로 설치하는 것은 좋지 않습니다. 터미널을 엽니 다.

Sudo adduser 패브릭

Sudo 그룹에 사용자 "fabric"추가

Sudo usermod -aG sudo newuser

오류가 발생하면 사용자는 sudo 그룹에 추가되지 않습니다. 자세한 내용은이 링크를 클릭하십시오.

Linux에 컬이 설치되어 있는지 확인하십시오. 볼륨 노래 – 번역

아래 지침을 따르지 않은 경우 :

수도 apt-get 업데이트
꾸러미 설치가 쉽다.
Curl -version 3 단계 : Docker와 Docker Compose

공식 Docker 저장소에서 Docker의 최신 버전을 설치하십시오.

Curl -fsSL https://download.docker.com/linux/ubuntu/gpg sudo apt-key add –

Docker 저장소를 APT 소스에 추가하십시오.

Sudo add-apt-repository "deb [arch = amd64] https://download.docker.com/linux/ubuntu $ [lsb_release -cs] stable"

패키지 데이터베이스 업데이트

Sudo apt-get-docker-ce 설치하기

docker 명령을 사용하려면 루트 권한이 필요합니다. 모든 도커 명령에 sudo를 사용하지 말고 사용자를 도커 그룹에 추가하십시오

Sudo usermod -aG 도커 원단

exit 명령을 사용하여 로그 아웃하고 다시 로그인하십시오. id -nG 명령을 사용하여 그룹의 사용자가 그룹에 속하는지 확인하십시오.

도커를 확인하고 도커를 작성합니다.

도커 – 버전
도커 – 작성 – 버전

Docker Hub에서 hello-world 이미지를 가져 와서 컨테이너를 실행합니다.

도커가 hello-world를 실행합니다.

이 메시지가 나타나면 성공적으로 설치되었음을 의미합니다.

자세한 내용은이 링크를 클릭하십시오.

Curl -O https://storage.googleapis.com/golang/go1.11.linux-amd64.tar.gz

Tar xvf go1.11.linux-amd64.tar.gz

GOPATH 내보내기 = $ HOME / go
내보내기 PATH = $ 경로 : $ GOPATH / bin

자세한 설치 정보를 보려면 GOPATH에 대한 링크를 클릭하십시오.이 링크를 클릭하십시오.바이너리 꾸러미 안내서

4 단계 : Nodejs 및 npm

curl을 사용하여 설치 스크립트 다운로드

Curl -SL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh

sudo에서 스크립트를 실행하십시오.

Sudo bash nodesource_setup.sh

Sudo apt-get nodejs 설치

nodej를 사용하여 npm을 설치할 수도 있습니다. 버전 확인

5 단계 : Python 2.7

기본적으로 우분투 16.04는 Python 3.5 바이너리 설치로 파이썬 3.5.1과 함께 제공됩니다.

sudo apt-get python 설치하기

모든 필수 구성 요소가 설치되었습니다. 이제 Hyperledger Fabric v1.4를 설치해 보겠습니다.

6 단계 : 샘플, 바이너리 및 Docker 이미지 설치

구조 샘플을 다운로드 할 디렉토리를 결정하십시오. 터미널에서 디렉토리를 열고 다음 명령을 실행하십시오.

Curl -SLSL http://bit.ly/2ysbOFE | bash -s

최신 제품 버전을 다운로드합니다.

ex의 특정 버전이 필요한 경우 V1.4.1을 실행하려면 아래 명령을 실행하십시오.

Curl -SLSL http://bit.ly/2ysbOFE | bash -s-curl -sSL http://bit.ly/2ysbOFE | bash -s-1.4.1 1.4.1 0.4.15

이것은 시간이 걸리고 완료되면 새로운 디렉토리 "fabric-samples"을 볼 수 있습니다.

예제는 Hyperledger Fabric으로 시작하여 "fabric-samples"에 포함되어 있습니다. 직물 샘플에는 많은 좋은 예가 있습니다.

7 단계 : 패브릭 네트워크 테스트

패브릭 환경을 성공적으로 설정 한 후 테스트 해 봅시다. 이를 테스트하기 위해 패브릭 샘플에서 첫 번째 네트워크 샘플을 사용합니다.

패브릭 샘플을 열고 첫 번째 네트워크로 이동하십시오.

Cd 패브릭 – 샘플 / 첫 번째 네트워크

이를 테스트하려면 byfn.sh를 실행하십시오. org1 및 org2라는 두 조직을 사용하여 네트워크를 처음 설정하는 테스트 스크립트로 각각 2 명의 피어 및 1 명의 발주자가 있습니다.

성공적으로 실행되면 다음 메시지가 표시됩니다.

그렇게하면 패브릭 네트워크가 성공적으로 설정됩니다.

이제 첫 번째 네트워크 테스트를 완료하고 네트워크를 정리했습니다.

축하합니다. Linux 머신에서 Hyperledger 패브릭 설치를 완료했습니다.

Windows 설치

Windows 설치의 경우 Windows 설치가 쉽지 않기 때문에 몇 가지 장애를 대비해야합니다.

우리는 Windows를 설치하기 시작했습니다.

Fabric v1.4 설치를 위해 Windows 10 Pro를 사용하고 있습니다.

cURL이 PC에 설치되어 있는지 확인하십시오.

오류가 발생하지 않으면 cURL이 이미 PC에 설치되어 있고 다음 단계로 진행할 수 있음을 의미합니다. 다른 사람들은 아래 단계를 따르십시오.

cURL을 설치하려면이 링크에서 Windows 32/64 비트에서 패키지를 다운로드하십시오. 패키지의 압축을 풀고 bin 폴더에서 curl.exe를 실행하십시오. 환경 변수에 컬을 추가하십시오. cmd를 열고 curl -help를 확인하십시오.

오류가 발생하지 않으면 curl을 성공적으로 설치했습니다.

문제를 해결하려면이 링크를 클릭하십시오.

2 단계 : Docker와 Docker

도커를 설치하기 전에 PC에서 가상화가 활성화되어 있는지 확인하십시오. 이를 확인하려면 OpenTask Manager >> 성능 탭 >> CPU를 엽니 다.

가상화

BIOS 설정에서 가상화를 켤 수 있습니다. BIOS 설정을 입력하는 방법은 PCMKR에 바이너리 꾸러미 안내서 따라 다릅니다. 자세한 내용은이 링크를 확인하십시오.

가상화가 활성화되면 docker를 계속 다운로드 할 수 있습니다.

Docker를 설치하기 전에 사용중인 Windows를 확인하십시오. Windows 용 Docker에는 두 가지 버전이 있습니다.

도커 도구 상자 – Windows 8, Windows 10 Home

도커 데스크탑 – Windows 10 Pro, Enterprise – 64 비트

먼저 DockerHub에 도커 데스크탑을 다운로드 할 계정이 있어야합니다. 등록 번호가없는 경우 등록하십시오.

이 링크에서 docker를 다운로드하십시오.

참고 : 시작시 설정 유지는 기본적으로 아무 것도 변경하지 않습니다.

cmd 창을 열고 docker -version 및 docker-compose -version을 실행합니다.

도커 – 버전
도커 버전 18.09.2, 빌드 6247962 도커 – 작성 – 버전
도커 – 버전 1.23.2 작성, 빌드 1110ad01

Docker Hub에서 hello-world 이미지를 가져 와서 컨테이너를 실행합니다.

도커가 hello-world를 실행합니다.

이 메시지가 나타나면 Docker가 컴퓨터에 성공적으로 설치되었습니다.

Docker에 대한 자세한 내용은 공식 문서를 확인하십시오.

Golang 패키지를 공식 웹 사이트에서 다운로드하십시오.

설치가 완료되면 명령 프롬프트를 열고 실행하십시오.

버전 출력으로 이동
버전 go1.11.5 windows / amd64로 이동하십시오. 4 단계 : Nodejs 및 npm

이 링크에서 노드 v8.x를 다운로드하여 설치하십시오.

올바르게 설치되었는지 확인하십시오.

노드 -v
V8.16.0 npm -v
6.4.1 5 단계 : Python 2.7

공식 웹 사이트에서 python 2.7을 다운로드하십시오.

파이썬을 시스템 Path 변수에 추가 할 때. 이렇게하면 전체 경로없이 명령 프롬프트에 "python"을 입력 할 수 있습니다.

python.exe를 로컬 하드 포크 드라이브에 설치할 경로에 추가합니다.

독사의 길

파이썬 설치가 올바른지 확인하십시오.

파이썬 버전
Python 2.7.16

Hyperledger 패브릭 필수 구성 요소가 설치되었습니다. 이제 Windows 종속성을 추가로 설치할 차례입니다.

6 단계 : windows-build-tools 및 grpc 설치

npm을 사용하여 전 세계적으로 windows-build-tools를 설치하십시오.

명령 프롬프트를 열고 다음 명령을 실행하십시오.

Npm 설치 -global windows-build-tools

약간의 시간이 걸리는 데는 약 15 분 이상이 소요됩니다. 완료되면 다음 메시지가 표시됩니다.

이 작업이 완료되면 다음 명령을 사용하여 NPM GRPC 모듈도 설치해야합니다.

Npm 설치 – 글로벌 grpc

7 단계 : bash 명령을 실행하기 위해 git을 설치하십시오.

bash 명령을 실행하려면 git을 설치해야합니다.

힘내는 Unix 스타일의 명령 행 환경에서 실행되도록 설계된 명령 행 유틸리티 세트입니다. – 아틀라스 사람

Git Bash는 Git 명령 줄 환경을위한 에뮬레이션 계층을 제공하는 Microsoft Windows 환경 용 응용 프로그램입니다. – 아틀라스 사람

이 링크에서 git을 다운로드하십시오.

잠시 동안, 우리는 전제 조건을 완료했으며, 이제 Hyperledger Fabric의 마지막 단계를 설치합니다.

8 단계 : 샘플, 바이너리 및 Docker 이미지 설치

구조 샘플을 다운로드 할 디렉토리로 이동하십시오.

일단 디렉토리에서 git bash를 열면. 마우스 오른쪽 버튼을 클릭하고 Git Bash Here를 선택하십시오.

힘내라.

샘플, 바이너리 및 고정 이미지를 설치하려면 다음 명령을 실행하십시오.

Curl -SLSL http://bit.ly/2ysbOFE | bash -s

최신 제품 버전을 다운로드합니다.

ex의 특정 버전이 필요한 경우 V1.4.1을 실행하려면 아래 명령을 실행하십시오.

Curl -SLSL http://bit.ly/2ysbOFE | bash -s-curl -sSL http://bit.ly/2ysbOFE | 바이너리 꾸러미 안내서 bash -s-1.4.1 1.4.1 0.4.15

이것은 시간이 걸리고 완료되면 새로운 디렉토리 "fabric-samples"을 볼 수 있습니다.

예제는 Hyperledger Fabric으로 시작하여 "fabric-samples"에 포함되어 있습니다. 직물 샘플에는 많은 좋은 예가 있습니다.

7 단계 : 패브릭 네트워크 테스트

패브릭 환경의 설정을 성공적으로 완료 했으므로 테스트해야합니다. 패브릭 샘플에서 첫 번째 네트워크 샘플을 사용합니다.

패브릭 샘플을 열고 첫 번째 네트워크로 이동하십시오.

Cd 패브릭 – 샘플 / 첫 번째 네트워크

이를 테스트하려면 byfn.sh를 실행하십시오. org1 및 org2라는 두 조직을 사용하여 네트워크를 처음 설정하는 테스트 스크립트로 각각 2 명의 피어 및 1 명의 발주자가 있습니다.


0 개 댓글

답장을 남겨주세요