Gentooのパッケージマネージャを使用してgitからカスタムソースをインストールする方法は?

Gentooのパッケージマネージャを使用してgitからカスタムソースをインストールする方法は?

私の考えではカスタムソースのインストールからリポジトリだけど私のパッケージマネージャを使う(Portageに表示されます)。

背景

EFIを使用してGentooをインストールしました。サカキのチュートリアルだから私は現れましたdev-vcs/git

私が望むパッケージはインストール用です。Canonicalで撮った写真(背景から読んだ内容は次のとおりです。技術芸術) 対応する指示は次のとおりです。

ルート図

インストールするスナップショットの制限.ebuildそしてsnapd.ebuild

'#snapdシステムサービスを有効にする:

sudo systemctl enable --now snapd.service

試した手順が機能しない

1回試してください

/etc/portage/repos.conf/まず、前提条件であるgit .ebuildsをリポジトリとして追加し、それを私のディレクトリ(2つの別々のエントリ)に入れてみました。投稿します一つたとえば、

[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 --searcheix不運。

欠落しているレイアウト、master = gentooエントリのエラーが発生します...メタデータが欠落していることを知っていますが、大きな期待を持っています。

2回試してください

ついに参考資料が見つかりましたebuildに関連しています。正式にGentoo Wikiそしてここの他の投稿(ソースから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リポジトリを作成するときに最新のPortage構造を考慮していませんでした。

コマンドラインの場合

(Portageディレクトリ構造のない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が正しい依存関係を正しく形成していないことがわかりましたが、このステップは以下に基づいて良いチュートリアルを提供すると思います。

  1. https://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds
  2. https://devmanual.gentoo.org/quickstart/

ポーテージ管理用

他のGentooリポジトリに基づいて、開発者は次のものを含むパッケージを作成することをお勧めします。キャプチャ制限そしてスナップ写真ebuildはパッケージカテゴリsys-appsapp-emulation

それから私たちはメタデータ/layout.confmasters = gentooPortageの互換性に関する苦情を避けるために含まれているファイル。開発者ガイドでは、構成ファイル/repo_name識別されたストレージ名を持つファイル。各パッケージのフォルダにメタデータ.xmlファイルを生成し、実行してrepoman manifest生成します。現れる文書。

最後に、ユーザーは次の/etc/portage/repos.conf/ガイドラインに従って項目を作成する必要があります。sakaki-tools githubリポジトリ

おすすめ記事