캐스케이드 사용

캐스케이드 사용

Gentoo Linux Hardened 시스템에 KDE를 설치하고 있습니다. 공식 Gentoo 위키에서는 KDE 데스크탑 프로파일을 적용하고 를 발행한 emerge -NDu --with-bdeps=y @world다음 kdebase-meta패키지를 설치하는 것이 권장되는 방법이라고 명시합니다. 그러나 저는 강화된 프로필을 사용하고 있으며 한 번에 하나의 프로필만 선택할 수 있습니다.

지금까지 나는 포티지 구성 파일(/etc/portage/make.conf, /etc/portage/package.use 등)에 KDE 프로필의 전역 및 패키지별 USE 플래그를 수동으로 성공적으로 적용했습니다. Gentoo 개발 팀이 구성 파일을 수정함에 따라 이 해킹이 장기적으로 유지하기 어려울 수 있다는 점을 걱정했습니다. 포티지 업데이트를 받을 때마다 USE 플래그와 파일 구성이 변경될 경우를 대비하여 다시 적용 desktop하고 구성 해야 합니다 .desktop/kde

젠투 리눅스에서 동시에 여러 포티지 프로필을 활성화할 수 있는 다른 방법이 있습니까?

답변1

캐스케이드 사용

프로필이 허용합니다.종속, useflags를 수동으로 설정할 필요가 없습니다.

모든 프로필은 여러 하위 프로필로 구성된 계단식/스택 가능 프로필입니다.

같은 페이지에는 이 질문에 답할 필요성을 다루는 장도 있습니다.

결합된 구성 파일

젠투 저장소에 정확한 요구 사항을 충족하는 프로필이 없으면 여러 프로필을 사용자 정의 프로필로 결합해 볼 수 있습니다. 예를 들어 강화된 구성 파일을 default/linux/amd64/17.0/desktop/plasma/systemd 및 default/linux/amd64/17.0/hardened와 같은 데스크탑 시스템 구성 파일과 결합합니다. 이미 사용자 정의 저장소를 설정했을 것으로 예상됩니다.

위키 페이지에서는 저장소를 설정하고 궁극적으로 구성 파일을 생성하는 방법에 대한 추가 링크로 연결됩니다.

어떻게

다음은 no-multilib/plasma/systemd제가 구성한 방법에 대한 요약입니다(필요에 따라 조정).

1. 저장소의 디렉터리 구조를 생성합니다.

mkdir -p /usr/portage/local/{metadata,profiles/default/linux/amd64/17.0/no-multilib/plasma/systemd}

2. 부모 정의

/usr/portage/local/profiles/default/linux/amd64/17.0/no-multilib/plasma/systemd/parent다음과 같은 내용을 포함하도록 편집하세요 .

/usr/portage/profiles/default/linux/amd64/17.0/desktop/plasma/systemd
/usr/portage/profiles/default/linux/amd64/17.0/no-multilib

문서에서는 상대 경로를 사용하지만 ../../..음의 재귀() 수준이 약간 혼란스럽다는 점에 유의하세요. /usr/portage시스템 주위를 이동할 계획이 없다면 절대 경로도 마찬가지로 작동합니다 .

낮은 우선순위를 찾았습니다. 따라서 첫 번째 프로필에서 플래그 또는 설정이 설정/설정 해제되고 다음 줄에서 그 반대가 발생하면 다음 줄의 프로필 설정이 적용됩니다. 예를 들어 plasma구성 파일을 사용하면 일부 multi-lib설정을 지정할 수 있습니다. 어디에 설정하면 되나요?도쿠윗줄혈장첫째, 일부 패키지는 여전히 다음과 같이 빌드하려고 시도합니다.도쿠(다양한 흥미로운 빌드 실패 제공) 이 줄의 순서를 조정해야 할 수도 있습니다.

3. 저장소 메타데이터 설정

편집하다 /usr/portage/local/metadata/layout.conf. 자동 동기화는 emerge --sync이 저장소를 동기화하지 말라고 알려줍니다.

masters = gentoo
auto-sync = false

친숙한 이름을 정의합니다. 이는 이 저장소에 있는 모든 항목의 접두사가 됩니다 eselect profile list. /usr/portage/local/profiles/repo_name:

local

프로필을 어디서 찾을 수 있는지 /usr/portage/local/profiles/profiles.desc알려줄 것입니다 . eselect첫 번째 필드는아치, 두 번째 프로필 이름 및 세 번째 필드안정적인또는실험적인:

amd64 default/linux/amd64/17.0/no-multilib/plasma/systemd stable

4. 포티지에 새 저장소에 대해 알리세요

/etc/portage/repos.conf/local.conf다음을 포함하도록 생성 및 편집 :

[local]
location = /usr/portage/local

5. 윤곽선을 설정하고 손가락을 교차시키세요

~# eselect profile list
[...]
[55]  local:default/linux/amd64/17.0/no-multilib/plasma/systemd (stable)
~# eselect profile set 55
~# emerge --update --newuse --deep --ask --verbose @world

유지관리 용이

설정하는 것이 약간 번거롭기는 하지만 유지 관리는 쉽습니다. 구성 파일의 사용 플래그 및 설정은 항상 기본 트리와 동기화됩니다. 가끔 구성 파일 버전을 업데이트해야 하는 경우에도 큰 어려움은 없을 것입니다. 예를 들어, 젠투 트리에 새로운 구성 파일 버전이 있는 경우:

~# cd /usr/portage/local/profiles/default/linux/amd64
~# cp -av 17.0 18.0
~# vi 18.0/no-multilib/plasma/systemd/parent
/usr/portage/profiles/default/linux/amd64/18.0/desktop/plasma/systemd
/usr/portage/profiles/default/linux/amd64/18.0/no-multilib
~# vi /usr/portage/local/profiles/profiles.desc
amd64 default/linux/amd64/18.0/no-multilib/plasma/systemd stable
~# eselect [...]

답변2

질문

아시다시피 Gentoo는 한 번에 하나의 프로필 설정만 허용합니다. 내 것에서 볼 수 있듯이 eselect profile list:

 [1]   default/linux/amd64/13.0
 [2]   default/linux/amd64/13.0/selinux
 [3]   default/linux/amd64/13.0/desktop
 [4]   default/linux/amd64/13.0/desktop/gnome
 [5]   default/linux/amd64/13.0/desktop/gnome/systemd
 [6]   default/linux/amd64/13.0/desktop/kde *
 [7]   default/linux/amd64/13.0/desktop/kde/systemd
 [8]   default/linux/amd64/13.0/desktop/plasma
 [9]   default/linux/amd64/13.0/desktop/plasma/systemd
 [10]  default/linux/amd64/13.0/developer
 [11]  default/linux/amd64/13.0/no-multilib
 [12]  default/linux/amd64/13.0/systemd
 [13]  default/linux/amd64/13.0/x32
 [14]  hardened/linux/amd64
 [15]  hardened/linux/amd64/selinux
 [16]  hardened/linux/amd64/no-multilib
 [17]  hardened/linux/amd64/no-multilib/selinux
 [18]  hardened/linux/amd64/x32
 [19]  hardened/linux/musl/amd64
 [20]  hardened/linux/musl/amd64/x32
 [21]  default/linux/uclibc/amd64
 [22]  hardened/linux/uclibc/amd64

해결책

프로필을 강화됨(내 목록의 14개)으로 설정한 후 이제 KDE 프로필에 대한 파일을 확인해야 합니다. (이 작업을 수행하려면 텍스트 편집기 없이 약간의 작성이 필요합니다.)

  1. cd /usr/portage/profiles/targets/desktop/kde
  2. nano -w make.defaults
  3. nano -w parent
  4. 지금 당장 보아야 합니다 /usr/portage/profiles/targets/desktop/.
  5. nano -w make.defaults

메모지를 사용하여 2단계의 USE 플래그를 복사한 다음 parent3단계에서 디스플레이를 켭니다 ... 이는 한 디렉토리 위로 이동한다는 의미입니다. 5단계의 USE 플래그를 복사합니다. 마지막 단계로 emerge -v app-portage/ufed && ufed. 이제 에 복사된 USE 플래그를 설정할 수 있습니다 /etc/portage/make.conf. 이 과정을 반복해야 할 수도 있습니다.

  • /usr/portage/profiles/desktop/kde/package.use
  • /usr/portage/profiles/desktop/package.use

이 두 파일에 나열된 패키지를 /etc/portage/package.use.


동기화 중에는 의 파일을 /etc/portage덮어쓰지 않으며 의 USE 플래그는 /etc/portage/make.conf달성하려는 동작을 모방합니다. 보다매뉴얼의 포티지 파일 섹션더 많은 정보를 알고 싶습니다. 기본적으로, /etc/portage포티지는 여러분이 선택한 구성 파일을 읽기 전에 여러분의 구성을 사용하기 때문에 여러분의 포티지 재정의가 강화된 구성 파일에 추가됩니다. 구성 파일의 USE 플래그는 동기화할 때마다 업데이트될 수 있으므로 이것이 문제라는 것을 알고 있으므로 package.use각 동기화 후에 플래그가 추가되었는지 확인해야 합니다. 일반적으로 구성 파일은 자주 업데이트되지 않습니다.

관련 정보