젠투 오버레이를 추가했습니다http://gpo.zugaina.org/. 내 ebuild 중 하나인 recMD5가 내가 추가하지 않았음에도 불구하고 이제 elibc_FreeBSD 플래그를 사용하는 것으로 표시됩니다. 나도 마주쳤다하답팩. 패키지에 use 플래그를 추가하기만 하면 되는 것 같은데, 그 목적이 무엇인지 알고 싶습니다.
나는 또한 오류가 발생합니다
euse -E elibc_FreeBSD
오류: 'elibc_FreeBSD' 플래그 사용이 차단되었으므로 make.conf에 추가하면 안 됩니다.
답변1
약간의 배경 지식
역사적으로 일부 FreeBSD 사용자는 Linux 사용자와 잘 지내지 못했습니다. 수년 동안 그때까지처음부터 리눅스, Gentoo는 그 후손 중 하나이며 사용자는 사용을 선택하지 않는 한 시스템의 실제 소스 코드에 접근할 수 없습니다.FreeBSD 포트 시스템. 이런 이유로 FreeBSD 사용자들은 자신들이 우월하다고 생각했지만 Gentoo와 Portage가 성숙해지면서 아래 그림과 같은 전투를 위한 무대가 마련되었습니다(알고 있듯이 G는 거꾸로 되어 있습니다).
Portage 에서 사용하는 구성과 매우 유사하게 ebuild
, 포트같은 규칙을 가지고 있어. 이것이 가장 큰 의존성 검사이기 때문에 종속성 검사를 연결했습니다. 당신이 보면제5장 제5절, 포트 관리는 귀찮은 일부터 골치 아픈 일까지 무엇이든 고려될 수 있음을 알 수 있습니다. 따라서 아래에서 설명하는 플래그와 프로젝트는 포트 메커니즘을 포티지로 대체하여 이 문제를 완화하려고 시도합니다. 바라보다플래그 작동 방식더 알아보기.
젠투를 메타 배포판이라고 부르는 이유
읽어주세요글렙: 22, ~의 일부G엔토엘이눅스두번째향상시키다인프로젝트, 사양 섹션에는 다음과 같이 명시되어 있습니다.
키워드 스니펫
각 키워드에는 ARCH, USERLAND, LIBC 및 KERNEL 매개변수를 명시적으로 또는 암시적으로 지정해야 합니다.
아치
x86, amd64, 코발트, mips64, arm, hppa, ia64, ppc64, sparc핵심
리눅스, selinux, openbsd, freebsd, netbsd, macosx사용자 영역
그누, BSDLIBC
glibc, openbsd, freebsd, netbsd, macosx(위의 예는 완전하지 않습니다. 예를 들어 Hurd는 Hurd에 대해 아는 바가 거의 없기 때문에 포함되지 않았습니다.)
완전히 지정된 키워드는 "ARCH-KERNEL-USERLAND-LIBC"와 같으므로, 예를 들어 "ppc-fbsd-gnu-glibc"는 FreeBSD 커널과 GNU 사용자 공간을 실행하는 ppc 아키텍처에 해당하는 젠투 시스템 glibc를 나타냅니다. 시스템 C 라이브러리.
elibc
Environment_LIBC의 약자로 다음을 가리킨다.LIBC키워드 스니펫. LIBC이는 C 표준 라이브러리를 Linux에서 구현한 것입니다. 표준 라이브러리는 위에 언급된 모든 키워드에 의존하기 때문에 시스템 전체 기반과 변수 상속(젠투의 패키지 기반)을 통해 설정됩니다( /etc/portage/make.profile
에 대한 심볼릭 링크는 /usr/portage/profiles
설정에 사용됩니다 eselect profiles
).
ecyoung@bedroom-gentoo ~ $ sudo emerge -av glibc
Password:
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-libs/glibc-2.20-r2:2.2::gentoo USE="gd (multilib) -debug (-hardened) -nscd -profile (-selinux) -suid -systemtap -vanilla" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Would you like to merge these packages? [Yes/No]
위의 제품을 생산하려면LIBC, 내 프로필에는 다음이 포함되거나 상속됩니다.
- 아치-AMD64
- 핵심- 리눅스
- 사용자 영역- 그누
- LIBC- glibc
Gentoo를 매우 강력하게 만드는 것은 이 GLEP에 설명된 키워드와 환경 변수 USE 플래그입니다. 이 시스템은 내가 Gentoo를 기본 배포판으로 선택한 주된 이유이며, 여기에 태그된 모든 질문을 읽고/또는 답변하려고 시도하는 이유입니다 /gentoo
.
키워드와 환경 변수가 각 패키지의 USE 플래그와 혼합되면 메타 배포가 생성됩니다. 패키지를 컴파일하는 방법이 무한하지는 않지만 젠투 시스템의 모든 패키지가 어떤 방식으로든 USE 플래그의 영향을 받는다는 점은 보장할 수 있습니다.
플래그 작동 방식
FreeBSD를 설치하려면 다음을 사용해야 합니다.FreeBSD에서 제공하는 매뉴얼FreeBSD를 설치하고 새로 설치할 때 사용하세요.Wiki의 Gentoo FreeBSD 지침. 이렇게 하면 FreeBSD에 다음 기능이 추가됩니다:
젠투/FreeBSD는 FreeBSD를 기반으로 한 젠투 시스템입니다. 다음과 같은 변경 사항이 있는 FreeBSD입니다.
- 포티지는 포트를 대체합니다.
- 기본 시스템은 포티지로 관리됩니다.
- ./contrib 및 ./crypto의 소프트웨어는 Gentoo Linux 버전으로 대체되었습니다.
- rc 시스템은 OpenRC로 대체되었습니다.
- 포티지를 지원하기 위해 Python, wget 및 bash가 기본 시스템에 포함되어 있습니다.
- FreeBSD의 부트로더가 기본 시스템에서 제거되었습니다(감옥에 유용함).
여러분이 우려하는 두 패키지의 관리자는 FreeBSD 시스템에서 패키지를 컴파일하기 위한 옵션을 추가했습니다. FreeBSD 시스템을 사용하지 않는 경우에는 이 변경 사항이 영향을 미치지 않습니다. 포티지에서는 이를 표시하여 플래그가 마스크되어 있음을 알려줍니다.. 아무것도 변경할 필요가 없습니다. FreeBSD와 Linux의 차이점에 대한 간략한 설명(즉, 간략한 설명을 의미함)을 보려면 다음을 참조하세요.HTG 설명: Linux와 BSD의 차이점은 무엇입니까?.