Debianで外部リポジトリを追加するならextrepoがおすすめ

nogajun
nogajun

最近、LTSPというLinuxのファットクライアントシステムをさわっています。

以前のLTSPはシンクライアントのシステムでしたが、LTSP 5から全面的に書き直されて、すごくリッチな配信システムに変わりました。

そのLTSPで配信するクライアントイメージを作るとなぜかデカイ。配信する都合上、イメージが大きいと読み込みに時間がかかって最初の立ち上がりが遅いし、授業に支障があるからイメージをスリム化しなきゃ…と調べるとFlatpakのライブラリが数GB単位で占めてる。

どれぐらいの大きさかといえば、配信イメージ8GBのうち半分がFlatpakのライブラリというありさま。

Flatpakアプリは、コンテナで隔離された環境で動かすためライブラリを抱え込む必要があります。そのライブラリが1つならいいけれどバージョン違うと複数抱え込む必要があって、それであっという間にライブラリが膨れ上がって半分までになっていた。ということでした。


原因が分かったので、いくつかdebパッケージに移行させようと思案していたところ、extrepoというツールを知りました。

これは何かというと外部リポジトリで配布しているパッケージのデータベースとapt-line設定ツールです。

Google ChromeやVisual Studio Codeはプロプライエタリなので配布元からdebパッケージをダウンロードしてインストールする必要がありますが、extrepoは外部リポジトリのapt-lineを設定してくれるので、aptコマンドだけでインストールできます。

インストールは、下のようにすればOK。

sudo apt install extrepo

次にextrepoは、配布制限ありのcontribとプロプライエタリのnon-freeのapt-lineが無効化されています。エディタで設定ファイル/etc/extrepo/config.yamlを開いて- contrib- non-freeの行頭にあるコメント#を外します。

---
url: https://extrepo-team.pages.debian.net/extrepo-data
dist: debian
version: trixie
# To enable repositories that host software with non-DFSG-free licenses,
# uncomment "contrib" and/or "non-free" in the list below.
enabled_policies:
- main
- contrib  # ←ここのように行頭のコメントを外す
- non-free  # ←ここのように行頭のコメントを外す

準備ができたので、あとは下のように入力すればVisual Studio Codeをインストールできます。

sudo extrepo enable vscode
sudo apt update
sudo apt install code

ブラウザを開いてdebパッケージを取りに行く「お使い」をしなくてもいいのでめっちゃ楽!

extrepoは一通りの有名な外部配布パッケージをサポートしているので、ChromeやFirefox(Mozilla)、Docker CE、VirtualBoxもサクっと入ります。

どんなリポジトリが追加できるかについては、何もつけずにextrepo searchを実行するか、/usr/share/extrepo/offline-data/debian/(コードネーム)以下に秘密鍵のリストがあるので、それを見るとわかります。おそらく、よほどのことがなければextrepoだけで間に合うと思います。

1つ注意としては、ChromeとVisual Studio Codeをインストールするとパッケージが追加するGPGキーが被ってエラーになります。ですので、インストール後にextrepo disable google_chromeのように無効にする必要があります(バグ報告しなきゃね)。

外部ソフトを使う場合、事情がなければFlatpakのほうがおすすめですが、Google ChromeやVIsual Studio Codeのようにシステムで動かないと都合が悪いソフトを使う場合にはdebパッケージを使うしかないので、そういったときにはextrepoをご活用ください。