カスケードの使用

カスケードの使用

Gentoo Linux HardenedシステムにKDEをインストールしています。公式のGentoo Wikiでは、KDEデスクトッププロファイルを適用してを発行してからemerge -NDu --with-bdeps=y @worldパッケージkdebase-metaをインストールすることをお勧めします。しかし、私は強化されたプロファイルを使用しており、一度に1つのプロファイルしか選択できません。

これまで、Portage設定ファイル(/etc/portage/make.conf、/etc/portage/package.useなど)にKDEプロファイルのグローバルおよびパッケージ固有のUSEフラグを手動で正常に適用しました。 Gentoo開発チームが設定ファイルを変更するにつれて、このハッキングが長期的に維持するのが難しくなる可能性があることを心配しました。 Portageの更新を受信するたびに、USEフラグとファイル構成が変更された場合に備えて、再適用してdesktop構成する必要があります。desktop/kde

Gentoo Linuxで同時に複数のPortageプロファイルを有効にする別の方法はありますか?

答え1

カスケードの使用

プロフィールが許可します。従属、useflagsを手動で設定する必要はありません。

すべてのプロファイルは、複数のサブプロファイルで構成されるカスケード/スタック可能プロファイルです。

同じページには、この質問に答える必要性をカバーする章もあります。

結合された構成ファイル

Gentooリポジトリに正確な要件を満たすプロファイルがない場合は、複数のプロファイルをカスタムプロファイルにまとめることができます。たとえば、拡張構成ファイルを default/linux/amd64/17.0/desktop/plasma/systemd や default/linux/amd64/17.0/hardened などのデスクトップシステム構成ファイルと組み合わせます。すでにカスタムリポジトリを設定していることが予想されます。

Wikiページでは、リポジトリを設定し、最終的に設定ファイルを生成する方法への追加リンクが表示されます。

どのように

以下は、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最初のフィールドはアーチ、2番目のプロファイル名、3番目のフィールド安定または実験的:

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

4. Portageに新しいリポジトリについて知らせます。

/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

メンテナンス容易

設定するのは少し面倒ですが、メンテナンスは簡単です。構成ファイルの使用フラグと設定は、常に基本ツリーと同期されます。設定ファイルのバージョンを更新する必要がある場合でも、大きな問題はありません。たとえば、Gentooツリーに新しい設定ファイルのバージョンがある場合:

~# 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は一度に1つのプロファイル設定のみを許可します。私のものからわかるように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フラグをコピーし、手順3parentでディスプレイをオンにします..。これは、1つのディレクトリの上に移動することを意味します。ステップ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

これら2つのファイルに記載されているパッケージを/etc/portage/package.use


同期中はファイルを/etc/portage上書きせず、USEフラグは達成しようとしている/etc/portage/make.conf動作を模倣します。よりマニュアルのPortageファイルセクションより多くの情報を知りたいです。デフォルトでは、/etc/portagePortageは選択した設定ファイルを読み取る前に設定を使用するため、Portageの上書きが強化された設定ファイルに追加されます。構成ファイルのUSEフラグは同期するたびに更新される可能性があるため、これが問題であることがわかっているため、package.use各同期後にフラグが追加されていることを確認する必要があります。通常、構成ファイルは頻繁に更新されません。

関連情報