2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事はK4e Linux Distros Advent Calendar 2025の十八日目の記事です。

概要

「俺が考えた最強のLinux」を作るための高性能ビルド環境

  • 系統: 独立系
  • パッケージマネージャ: Portage
  • リリースタイプ: ローリングリリース
  • 想定用途: 最小構成サーバの構築、Linux開発の検証、カスタムLinuxの構築など

Gentoo Linuxとは

Gentoo Linuxはソースコードからソフトウェアをビルドすることを前提として設計されたLinuxディストリビューションです。事前に完成形が決まっているわけではなく、ユーザ自身が構成を作成していきます。現在筆者が一番注目を置いて遊んでいるLinuxディストリビューションです。

Gentoo Linuxの中心となるシステムにPortageというパッケージ管理システムがあります。emergeコマンドを用いてパッケージをインストールするのですが、その際、ビルド済みのバイナリではなく、ソースコードとそのビルドの設計書を持ってきて、手元でビルドを行います。

Portage最大の特徴であり、GentooをGentooたらしめている仕組みとしてUSEフラグがあります。システム全体、また、パッケージごとにUSEフラグというものを設定することで、パッケージごとの機能を細かく設定してビルドができます。

例えばUSE="wayland"とすると対応しているパッケージをWayland関連機能を有効にした状態でビルドすることができます。また、USE="-wifi"とすると対応しているパッケージをwifi機能を無効にした状態でビルドすることができます。このようにUSEフラグを用いることで、簡単に自分の好きなシステムをビルドから構築、管理をすることができます。

このような特徴からGentoo Linuxは「メタディストリビューション」という呼ばれ方をすることがあります。Linuxディストリビューションを作るためのLinuxディストリビューション、といったイメージかと思います。そのため、Linuxディストリビューションというよりは高性能なLinuxシステムビルド環境として認識をするのが正しいと思います。

Gentoo Linuxのユースケース

Gentooはその自由度から無限のユースケースが考えられるのですが、特に強みを生かせそうなものを取り上げます。

HPC・高性能計算

CUDAやOpenMP、MPIのようなパッケージのCPUの世代ごとに最適化したビルドをOSの中枢で管理、実行することができます。また、HPCはオフライン環境で動作させることが多く、頻繁な更新が必要ありません。Gentoo Linuxの特徴を最大限利用できる用途なのではないでしょうか。

HPC向けビルドについてのwikiページがあります。情報は古いですが、大まかな概要は参考になると思います。

サーバ用途

不要な機能を最大限削減した最小構成でのサーバを作成することができます。公開サーバを構築する際は、頻繁に発生するセキュリティ対応に対応するため、ビルド用のマシンを用意しておき、更新が来次第ビルド、クロスビルド済みのバイナリを送り込む形で更新するのが現実的です。

ソフトウェア検証環境

ソフトウェアの最新の更新を検証する、実験の場としての用途も考えられます。特に最新のカーネル、ドライバをいち早くビルドして確認ができるのはGentooならではの強みです。

Linuxディストリビューション開発

プロファイルやoverlayを用いてUSEフラグ、設定ファイルをまとめて定義し、自分用のLinuxディストリビューションを作成できます。Linuxカーネルが対応している殆どのCPUアーキテクチャに対応しているのでマイナーCPU向けのディストリビューション開発の派生元としても使えそうです。

逆に

  • すぐに動く環境が欲しい人
  • OSの管理が面倒な人
  • チームで統一した環境を配りたい人

にはGentoo Linuxは全く向いていません。

自分で「俺が作る最強のLinux」を構築する際に、Gentooは最高の力を発揮します。

インストール

Gentoo Linuxのインストールは非常に難解であり、ガイドを読みながらであってもLinux初心者では起動するシステムを作成するのは難しいと思います。

初心者向きではないのですが、この記事の内容を元に作成した環境を少し見てみます。

動作環境はProxmox上で作成したKVM(q35+OVMF)です。ビルド並列化のためにCPU、メモリを大量に載せています。

neofetch

neofetchをインストールしてみました。

image.png

KernelがLTSバージョンのcachyosカーネルになっています。手元でLTO最適化ビルドを行いました。有志による非公式オーバーレイがあるため比較的簡単に導入することができます。

ノートパソコン向けのカーネルオプションがデフォルトでは代替オフになっているのでビルド前に確認する必要があります。

日本語入力環境

こちらの方法も上記記事に書いてある通り、fcitxとfcitx5フラグ付きのmozcをインストールすることで導入することができます。

emerge --ask app-i18n/fcitx app-i18n/fcitx-configtool

echo "app-i18n/mozc -ibus fcitx5" >> /etc/portage/package.use/mozc

emerge --ask app-i18n/mozc

image.png

chatgptなどの古い情報では変数の変更を行うように書いてあるものが多いですが、現在KDE PlasmaにおいてはFcitx5 Wayland ランチャーを有効にしてfcitx5を起動するのがおすすめです。変数を変更するとwarningが出ます。

image.png

VSCodeのインストール

エディタとしてVSCodeをインストールしてみます。
この際には

Gentooはパッケージごとにライセンス許諾を明示的に行う必要があります。/etc/portage/package.license/vscodeに許諾するライセンス名を記述します。

sudo mkdir -p /etc/portage/package.license
sudo nano /etc/portage/package.license/vscode

中身

app-editors/vscode microsoft-vscode

これを書いた後に

sudo emerge --ask app-editors/vscode

でインストールができます。

image.png

まとめ

「俺が考えた最強のLinux」を作るための高性能ビルド環境

最近筆者が一番触っているLinuxです。Portageが非常に優秀で、ビルド周りの面倒な部分をUSEフラグによって解消してくれます。

クロスコンパイル環境として活用する記事も書いています。こちらではWSLにGentooをインストールしてWindows上で動作確認を行っています。もし興味がありましたらこちらもご参考ください。

明日はMicrosoft謹製のLinuxであるAzure Linuxを紹介します。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?