解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

【Portage】リポジトリの追加のしかた

Gentooのメインリポジトリ(「Portageツリー」)だけでも既にたくさんのパッケージがありますが、 Gentooでも、ほかのディストリビューションと同様に、リポジトリ(「オーバーレイ」)の追加が可能です。 リポジトリを追加することで、さらに多くのソフトウェアをインストールすることが可能になります。 また、「Portageツリー」にパッケージ自体は入っていても最新のバージョンには未追随ということもあります。そのため、リポジトリの追加によって、最新のバージョンのインストールが可能になることもあります。

Portageツリー」だとか「オーバーレイ」だとかいう語彙がわかりづらいと思います。それはGentooでは、以前は「リポジトリ」という概念が未確立でした。メインのリポジトリが「Portage tree」と呼ばれていて、その Portageツリーに対して「上乗せする」という意味で「overlay」という語が用いられてきました。そのため未だに、語彙が混在して錯綜しているのです。

ともかく、これらオーバーレイには、Gentooオフィシャルのものもあれば、Ubuntuにおける「PPA」のようなユーザオーバーレイ(ユーザリポジトリ)もあります。 これらリポジトリのリストは https://overlays.gentoo.org/ にありますが、このリストに載っているのは記載が申請されたものだけですので、載っていないリポジトリもたくさんあります。

Gentoo側で把握されていないリポジトリの多くは、ユーザが個人的に作成したものでしょう。 各ユーザは、インストールしたいものがあれば自力で ebuild ファイルを書けばよいわけですから。

/etc/portage/repos.conf で設定する

さて、公式のリポジトリを追加するにしても、誰かのリポジトリを追加するにしても、自作のリポジトリを作成するにしても、パッケージマネージャに対してリポジトリを追加しなければなりません。

従来は、リポジトリ(オーバーレイ)の追加は /etc/portage/make.conf を編集して行われてきましたが、それをさらに簡易化するためのツールとして layman というものも一般的に使われてきました。 https://wiki.gentoo.org/wiki/Layman

しかし今はむしろ、 layman を使わない方がわかりやすいと思います。 なぜならばそれは、Portageへのリポジトリの登録が、旧来の /etc/portage/make.conf 内で設定する方法のほかに、 /etc/portage/repos.conf で設定する方法が導入されたからです https://wiki.gentoo.org/wiki//etc/portage/repos.confrepos.confに書き込む方が、ほかのディストリビューションと似ていてオーソドックスだと思います。

具体的な書き方は https://wiki.gentoo.org/wiki//etc/portage/repos.conf に例が載っています。

/etc/portage/repos.conf はファイルでも良いですし、ディレクトリにしてその中にファイルを置いていくのでもかまいません。

まず、メインリポジトリPortageツリー)の名称("gentoo")を指定します。

[DEFAULT]
main-repo = gentoo

そのメインリポジトリの設定

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes

ですが、 rsyncではなくgitも使えます。(この場合は、既存のPortageツリーを削除して改めて git clone することになります。)

[gentoo]
location = /usr/portage
sync-type = git
sync-uri = https://github.com/gentoo-mirror/gentoo.git
auto-sync = yes

そして、オーバーレイ(リポジトリ)の追加ですが、上記Wiki記事にある例でいえば

[brother-overlay]
location = /usr/local/overlay/brother-overlay
sync-type = git
sync-uri = git://github.com/stefan-langenmaier/brother-overlay.git
auto-sync = yes

というのが載っていますね。 リポジトリのデータの置き場(location)は任意です。

手元にある自作リポジトリを登録する例もWikiの記事には載っていますが、そちらは登録方法以前にまず、リポジトリの自作の方法が先ですよね。 ですのでその説明は、今回は割愛します。

ちなみに、日本語版の Portage のマニュアルは古いままで更新されていません。 /etc/portage/repos.conf の説明も入っていませんので、英語版を読んでください。 LC_ALL=C man 5 portage http://dev.gentoo.org/~zmedico/portage/doc/man/portage.5.html


この投稿は Gentoo Advent Calendar 2015 - Qiita 16日めの記事です。

ところで、 Free Software Foundation が毎年恒例のファンド増強キャンペーンを実施中です https://www.fsf.org/appeal/GNU/Linuxのうち、GCCGLIBCEmacs、Nano、CoreutilsGRUB などなど、GNUコンポーネント製作の支援の資金源でもあります。 GNU/Linuxユーザならば寄付を真剣に考えるべきでしょう(特に GNU/Linux で収入を得ている人)。