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

nogajun
nogajun

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

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

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

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

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


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

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

たとえばGoogle ChromeやVisual Studio Codeはプロプライエタリだから、配布元からdebパッケージをダウンロードしなければいけないけど、extrepoを使うと公式のapt-lineを設定してくれるので、debパッケージをダウンロードせずともインストールできます。

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

sudo apt install extrepo

次にプロプライエタリのパッケージはnon-freeなので、エディタで/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

めっちゃ楽! extrepoは有名な外部配布パッケージを一通りサポートしているのでChromeやFirefox、Docker CE、VirtualBoxもサクっと入る!

ChromeをインストールするとGPGキーが被ってエラーになってしまうので、インストール後にextrepo disable google_chromeとして無効にする必要はあったりする(バグ報告しなきゃね)けど、インストールのために「お使い」をしなくてもいいので便利です。

特に事情がなければFlatpakを使うほうがおすすめですが、ネイティブdebパッケージでインストールしたいんじゃー!という方がいらっしゃればextrepoをご活用ください。