제 생각에는사용자 정의 소스 설치에서자식저장소이지만내 패키지 관리자 사용(포티지에 나타납니다).
배경
EFI를 사용하여 젠투를 설치했습니다.사카키의 튜토리얼, 그래서 내가 나타났습니다 dev-vcs/git
.
내가 원하는 패키지는 설치용입니다.Canonical에서 찍은 사진(배경에서 읽은 내용은 다음과 같습니다.기술 예술) 해당 지침은 다음과 같습니다.
루트 다이어그램
설치하다스냅샷 제한.ebuild그리고snapd.ebuild
'# snapd 시스템 서비스 활성화:
sudo systemctl enable --now snapd.service
시도한 단계가 작동하지 않음
1번 시도
/etc/portage/repos.conf/
먼저, 전제 조건인 git .ebuilds를 저장소로 추가하고 이를 내 디렉토리(두 개의 별도 항목) 에 넣어 보았습니다 . 포스팅하겠습니다하나예를 들어:
[zyga-snap-confine]
# Snapd build dependency #1
# Maintainer: obscured
location = /usr/local/portage/zyga-snap-confine
sync-type = git
sync-uri = https://github.com/zyga/snap-confine-gentoo.git
priority = 60
auto-sync = yes
저장소를 동기화한 다음 .을 통해 원하는 패키지를 찾으려고 emaint sync --repo zyga-snap-confine
했습니다 . emerge --search
eix
불운.
누락된 레이아웃, master = gentoo 항목에 대한 오류가 발생합니다... 메타데이터가 누락되었다는 것을 알고 있지만 큰 기대를 갖고 있습니다.
2번 시도
드디어 참고자료를 찾았습니다무엇ebuild와 관련이 있습니다. 공식적으로젠투 위키및 여기의 다른 게시물(소스에서 Git, Curl 및 Expat 설치) 그리고 여기 (Funtoo/Gentoo에서 소프트웨어를 패키징하는 방법은 무엇입니까?), 나는 다음과 같이 결정합니다.
root@Gentoo ~ # cd /opt
root@Gentoo opt # git clone https://github.com/zyga/snap-confine-gentoo.git
root@Gentoo opt # cd snap-confine-gentoo
root@Gentoo snap-confine-gentoo # ebuild snap-confine-1.0.32.ebuild manifest clean merge
그러나 오류가 반환되었습니다.
Appending / to PORTDIR_OVERLAY...
!!! Repository 'x-' is missing masters attribute in '/metadata/layout.conf'
!!! Set 'masters = gentoo' in this file for future compatibility
ebuild: /opt/snap-confine-gentoo/snap-confine-1.0.32.ebuild: does not seem to have a valid PORTDIR structure
선호하는 솔루션
저는 상대적으로 Gentoo를 처음 접했고 Linux를 스스로 가르치고 있으며 Gentoo 포럼에서 저장소 유지 관리에 대한 튜토리얼을 찾을 수 없습니다.개발자 가이드, 그러나 많은 지식을 가정합니다). 이상적인 대답은 cli 메서드( git clone
... 및 ./configure
?를 사용한다고 가정)와 패키지 관리자 버전을 제공하는 것입니다.
누락된 메타데이터와 레이아웃 파일을 추가하기 위해 자체 git 저장소를 만들어야 하는 경우에도 이 방법으로 snapd 설치를 관리하는 것을 선호합니다.
답변1
위 @likewhoa의 의견에 따르면 ebuild의 구조를 조정해야 합니다. 제작자는 git 저장소를 생성할 때 최신 포티지 구조를 고려하지 않았습니다.
명령줄의 경우
(포티지 디렉토리 구조가 없는 ebuild)/usr/local/portage/
마음속으로 결심 했어요캡처 한도카테고리에 속함sys-apps
Bash 루트 프롬프트에서:
cd /usr/local/portage
git clone https://github.com/zyga/snap-confine-gentoo.git
cd snap-confine-gentoo
mkdir -pv sys-apps/snap-confine
# the Manifest file will be recreated later
rm -v Manifest
mv -v snap-confine-1.0.32.ebuild sys-apps/snap-confine/
# to avoid errors, you need your masters = gentoo reference
mkdir -v metadata
echo 'masters = gentoo' > metadata/layout.conf
cd sys-apps/snap-confine
ebuild snap-confine-1.0.32.ebuild manifest clean merge
.ebuild가 올바른 종속성을 올바르게 형성하지 못한 것으로 밝혀졌지만, 이 단계는 다음을 기반으로 하는 좋은 튜토리얼을 제공한다고 생각합니다.
- https://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds
- https://devmanual.gentoo.org/quickstart/
포티지 관리용
다른 Gentoo 저장소를 기반으로 개발자가 다음을 포함하는 패키지를 만들 것을 권장합니다.캡처 한도그리고스냅 사진ebuild는 패키지 카테고리 sys-apps
와 app-emulation
.
그런 다음 우리는메타데이터/layout.confmasters = gentoo
포티지 호환성 불만을 피하기 위해 포함된 파일입니다 . 개발자 가이드에서는 또한구성 파일/repo_name식별된 저장소 이름이 있는 파일입니다. 각 패키지의 폴더에메타데이터.xml파일을 생성한 다음 실행하여 repoman manifest
생성합니다.나타나다문서.
마지막으로 사용자는 /etc/portage/repos.conf/
다음 지침에 따라 항목을 생성해야 합니다.sakaki-tools github 저장소