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

最近、LTSPというLinuxのファットクライアントシステムをさわっています。
以前のLTSPはシンクライアントのシステムでしたが、LTSP 5から全面的に書き直されて、すごくリッチな配信システムに変わりました。
そのLTSPで配信するクライアントイメージを作るとなぜかデカイ。配信する都合上、イメージが大きいと読み込みに時間がかかって最初の立ち上がりが遅いし、そうなると授業にに支障があるからイメージをスリム化しなきゃ…と調べるとFlatpakのライブラリが数G単位で占めてる。
どれぐらいの大きさかといえば、配信イメージ8GBのうち半分がFlatpakのライブラリというありさま。
そうなる原因は、Flatpakアプリはコンテナで隔離された環境で動かすためライブラリを抱え込む必要があって、そのライブラリが1つならいいけれどバージョン違いで複数抱え込むとあっという間に膨れ上がって半分までになっていた、ということでした。
原因が分かったので、いくつかdebパッケージに移行させようと思案していたところ、extrepo
というツールを知りました。
- Only just found out about ExtRepo. I feel like this doesn't get mentioned anywhere. : r/debian: https://www.reddit.com/r/debian/comments/169j7w4/only_just_found_out_about_extrepo_i_feel_like/
これは何かというと外部リポジトリで配布しているパッケージのデータベースと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
をご活用ください。