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 프로필에 대한 파일을 확인해야 합니다. (이 작업을 수행하려면 텍스트 편집기 없이 약간의 작성이 필요합니다.)
cd /usr/portage/profiles/targets/desktop/kde
nano -w make.defaults
nano -w parent
- 지금 당장 보아야 합니다
/usr/portage/profiles/targets/desktop/
. nano -w make.defaults
메모지를 사용하여 2단계의 USE 플래그를 복사한 다음 parent
3단계에서 디스플레이를 켭니다 ..
. 이는 한 디렉토리 위로 이동한다는 의미입니다. 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
각 동기화 후에 플래그가 추가되었는지 확인해야 합니다. 일반적으로 구성 파일은 자주 업데이트되지 않습니다.