ソースコードからのインストールに潜む悩み
Fedoraをメイン機として2年ほど愛用していますが、パッケージ更新の速さには非常に満足しています。しかし、すべてが理想通りとはいきません。GitHubでlazygitやlsdのような素晴らしいツールを見つけても、Fedoraの公式リポジトリでは最新版がまだ届いていなかったり、そもそも存在しなかったりすることがあります。
通常、ソースコードをダウンロードしてmake installを実行するのが一般的です。この方法は手軽ですが、クリーンにアンインストールできない、dnf updateによる自動更新が効かない、PCを新調した際にまた一からやり直しになるといった、非常に面倒な課題が残ります。手動で管理する代わりに、Coprを使えばプロフェッショナルかつ遥かに楽な方法で標準化できます。
Coprとは何か? なぜ開発者の「武器」になるのか?
Copr (Community Projects) は、Fedoraコミュニティ向けの自動パッケージビルドシステムです。Ubuntuユーザーなら、より洗練された「PPA」のようなものだと考えてください。このシステムを使えば、自分専用のリポジトリを作成し、ソースコードをアップロードするだけで、x86_64からaarch64まで、あらゆるアーキテクチャ向けの.rpmファイルを自動的に生成してくれます。
場当たり的なインストールではなく、ソフトウェアをCoprに登録しましょう。そうすれば、どのFedoraマシンでも、たった2行のコマンドでインストールが完了します:
sudo dnf copr enable user/project
sudo dnf install package-name
システムを汚すことなく、すべてが整理されます。さらに、CoprはGitHubからのWebhookをサポートしています。コードをgit pushするだけで、システムが即座に新しいビルドを開始します。
開始前の準備
「自分専用の倉庫」を作り始める前に、以下の2つの基本的な準備を済ませましょう:
- Fedoraアカウント (FAS) の作成: accounts.fedoraproject.orgで登録します。これはFedoraの全サービスを利用するためのマスターキーです。
- APIトークンの設定: Coprにログインし、API Tokenセクションを探します。その内容を
~/.config/coprファイルにコピーしてください。これでターミナルからCoprサーバーに「命令」できるようになります。
操作を効率化するために、コマンドラインツールのインストールも忘れずに行いましょう:
sudo dnf install copr-cli
実践:最初のパッケージを公開する
ここでは、GitHubにあるmy-fast-toolという小さなツールをパッケージ化すると仮定します。手順は以下の通りです:
ステップ1:Web UIでプロジェクトを作成
Coprの画面でNew Projectをクリックし、重要な情報を入力します:
- Project Name: リポジトリ名(例:
dev-utilities)。 - Description: 後で見返したときに内容がわかるような簡単な説明。
- Chroots: ターゲットとするFedoraのバージョンを選択します(最新の
fedora-40-x86_64や、先取りしてfedora-rawhideを選んでおくと良いでしょう)。
ステップ2:ターミナルの接続設定
準備段階でAPI設定ファイルを保存したら、ファイルが正しく配置されているか確認してください(未作成の場合は作成します):
mkdir -p ~/.config
nano ~/.config/copr
これで、あなたのPCからFedoraサーバーにパッケージ化リクエストを送る権限が正式に付与されました。
ステップ3:ソースコードを送信して「調理」開始
一般的な方法は2つあります。初心者の場合はSRPM(Source RPM)を使用するのが良いでしょう。GitHubから直接ビルドしたい場合は、Settings > Webhooksタブで設定します。
自分のPCから.specファイルを使って手動でビルドするには、以下のコマンドを実行します:
# ローカルでSRPMファイルを作成(rpm-buildが必要)
rpmbuild -bs your-app.spec
# ファイルをCoprに送信してサーバー側で処理させる
copr-cli build dev-utilities /path/to/your-app.src.rpm
基本的なパッケージであれば、通常3〜5分ほどで完了します。ブラウザでビルドログを眺めながらコーヒーでも飲んで待ちましょう。エラーが発生した場合は、ログを確認すればどのBuildRequiresライブラリが不足しているかがわかります。
成果を楽しむ
ステータスが鮮やかなグリーンのSucceededに変われば、リポジトリの準備は完了です。マシンにインストールするには、以下を実行するだけです:
sudo dnf copr enable username/dev-utilities
sudo dnf install your-app-name
最大のメリットは、今後Copr上でアップデートがあるたびに、定期的なdnf updateコマンドで自動的に最新版が適用されることです。以前のように手動でファイルをコピー&ペーストする必要はもうありません!
ビルドエラーを回避するための「鉄則」
パッケージ化は時に頭を悩ませる作業です。以下の3つの注意点を守ることで、無駄な苦労を減らせます:
- BuildRequiresを忘れない: Coprは完全にクリーンな環境(chroot)でコードをビルドします。自分のPCにインストール済みのライブラリはそこには存在しません。
.specファイルに漏れなく記述してください。 - Mockでテストする: サーバーにアップロードする前に、ローカル環境で
mockを実行しましょう。mockで成功すれば、Copr上でも99%スムーズにビルドできます。 - 著作権ルールを遵守する: 海賊版ソフトやFedoraのポリシーに違反するものをアップロードしてはいけません。管理者は予告なしにリポジトリを削除します。
おわりに
Coprを使いこなせるようになると、Fedoraマシンの管理がスマートになるだけでなく、スキルとしても大きなプラスになります。同僚にリスクのあるcurl | bashコマンドを教える代わりに、自信を持って自分のCoprリポジトリのリンクを送りましょう。Fedoraでの快適なパッケージ化ライフを楽しんでください!

