내가 만들고 싶은 것은 /usr
프레젠테이션 /my/usr
이나 호스트 에 대한 심볼릭 링크 역할을 할 flatpak 런타임입니다 /usr
. 이런 방식으로 기존 컨테이너와 호스트 런타임은 flatpak만큼 잘 관리되지 않는 애플리케이션에 사용될 수 있거나, 의존하는 flatpak 런타임이 너무 커서 필요하지 않을 수 있습니다(예: 동일한 라이브러리의 두 복사본).1
런타임 빌드는 "권장되지" 않기 때문에 문서가 거의 없으며 특정 환경(fedora, apertis)용으로 빌드된 도구만 있습니다. 그렇다면 관련 문서는 어디서 찾을 수 있나요? 비슷한 프로젝트가 이미 존재하나요?
추신: 이러한 경우 flatpak을 사용하는 것은 이식성과 관련이 없지만 여기서 샌드박스는 큰 이점입니다.
답변1
이것은 당신이 찾고 있는 대답이 아닐 수도 있지만, 제가 찾은 유일한 가이드는 Arch용 기본 런타임을 만드는 것입니다.
https://wiki.archlinux.org/title/Flatpak
섹션 4부터:
사용자 정의 기본 런타임 만들기
pacman을 사용하여 사용자 정의 Arch 기반 기본 런타임 및 Flatpak용 기본 SDK를 생성할 수 있습니다. 그런 다음 이를 사용하여 애플리케이션을 빌드하고 패키징할 수 있습니다. 이는 기본값 org.freedesktop.BasePlatform
과 org.freedesktop.BaseSdk
런타임을 사용하는 것에 대한 개인적인 대안입니다.
flatpak 외에도 fakeroot도 설치해야 하며, 팩맨 후크를 지원하려면 fakechroot도 설치해야 합니다.
먼저 런타임과 애플리케이션을 빌드하기 위한 디렉터리를 만드는 것부터 시작합니다.
$ mkdir마이플랫팩빌드디르 $ CD마이플랫팩빌드디르
그런 다음 런타임 기본 플랫폼을 구축하기 위한 디렉터리를 준비할 수 있습니다. 파일 하위 디렉터리에는 /usr
나중에 샌드박스에 있는 디렉터리가 포함됩니다. 따라서 /usr/share
일반적인 경로를 통해 Arch의 기본값 등에 계속 액세스할 수 있도록 심볼릭 링크를 만들어야 합니다 .
$ mkdir -p내 런타임/파일/var/lib/pacman $터치내 런타임/파일/.ref $ ln -s /usr/usr/share내 런타임/파일 공유 $ ln -s /usr/usr/include내 런타임/파일/포함 $ ln -s /usr/usr/local내 런타임/파일/로컬
호스트 운영 체제 글꼴을 Arch 런타임에서 사용할 수 있도록 만드세요:
$ mkdir -p내 런타임/파일/usr/공유/글꼴 $ ln -s /실행/호스트/글꼴내 런타임/files/usr/share/fonts/platpakhostfonts
pacman.conf
패키지를 설치하기 전에 런타임에 맞게 패키지를 조정 해야 하며 아마도 조정하고 싶을 것입니다 . /etc/pacman.conf
빌드 디렉터리에 복사 하고 다음과 같이 변경합니다.
CheckSpace
디스크 공간을 확인하기 위해 루트 파일 시스템을 조회할 때 pacman이 오류에 대해 불평하지 않도록 이 옵션을 제거하십시오 .- 불필요한 사용자 정의 저장소와 호스트 시스템에만 필요한 설정을 제거하십시오
IgnorePkg
.IgnoreGroup
NoUpgrade
NoExtract
이제 런타임 패키지를 설치하십시오.
$ fakechroot fakeroot 팩맨 -Syu --root내 런타임/파일 --dbpath내 런타임/files/var/lib/pacman --config pacman.conf 기본 사항 $ mvpacman.conf내 런타임/파일/etc/pacman.conf
설정로케일편집용 myruntime/files/etc/locale.gen
. 그런 다음 런타임 로캘을 다시 생성합니다.
$ fakechroot chroot내 런타임/filelocale-gen
기본 SDK는 기본 런타임에서 생성될 수 있으며 pacman을 실행하는 데 필요한 빌드 패키지와 애플리케이션을 추가합니다.
$cp-r내 런타임개발 키트 $ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config mysdk/files/etc/pacman.conf 기본 개발 fakeroot fakechroot --needed
런타임 및 SDK에 대한 메타데이터를 삽입합니다.
내 런타임/메타데이터[Runtime]
name=org.mydomain.BasePlatform
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26
mysdk/메타데이터
[Runtime]
name=org.mydomain.BaseSdk
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26
현재 디렉터리의 로컬 저장소에 기본 런타임과 SDK를 추가합니다. "My Arch Base Runtime" 및 "My Arch Base SDK"와 같은 적절한 커밋 메시지를 제공해야 할 수도 있습니다.
$ ostree init --mode archive-z2 --repo=. $EDITOR="nano -w"ostree 커밋 -b 런타임/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=내 런타임 $EDITOR="nano -w"ostree 커밋 -b 런타임/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=mysdk $ ostree 요약 -u
런타임과 SDK를 설치합니다.
$ flatpak 원격 추가 --user --no-gpg-verify myarchos 파일://$(pwd) $ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26 $ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26