Linux向けソフト配布はなぜ面倒? SnapとFlatpakを巡り海外で論争
姉妹サイトの新着
Linux向けにソフトを配布している開発者が、「パッケージング作業がとにかく面倒だ」とブログに書いたところ、海外掲示板Lemmyのc/technologyコミュニティで盛んに議論された。DebianやFedoraなど各ディストリビューション独自の形式に加え、CanonicalのSnap、Flatpak、AppImage、AUR経由の配布など選択肢が乱立している現状に対し、開発者たちがそれぞれの立場から意見をぶつけ合った。とりわけ「SnapとFlatpakどちらが優れているか」という定番の対立と、「いっそ静的バイナリを一本配ればいいのでは」という身も蓋もない指摘が目立った。
Linux向けにソフトをパッケージングするのが本当に嫌になる
出典: getfresh.dev / 元記事はこちら
それをやったらむしろ悪化する。Canonical系のシステムでしか使えなくなるし、Debianですら対象外になる。Snapには今のところFlatpakより優れている技術的な小さな利点もあるにはあるけど、とにかくどこでも動かしたいなら定番はFlatpakだよ
DebianでもSnapはインストールできたと思うけど
すでに色んなリポジトリに対応してるんだから、Snapを追加したところで他が悪くなるわけじゃない
その方法の問題は、リポジトリ環境を自分で維持し続けないといけないことだと思う。要は署名付きファイルを置くWebサーバーみたいなものだからね。一つの問題は解決できても、別の潜在的な問題を山ほど抱え込むことになる
それの何が問題なのか分からない。自分はもう何年もopenSUSEの公開Open Build Serviceを使って、openSUSEとFedora向けにソフトをパッケージ化・公開してる(Debian/Ubuntuは自分用にしか使わないから気にしてないけど、対応自体は可能)
自分の知る限り「言語」自体には問題は無いけど、「エコシステム」の一部はLinuxでのパッケージングをあまり想定して設計されていないように見える、とだけ言っておく
> エコシステムの一部があまり考えられていないように見える
本当にそう。でもこれは20年以上前にメンター役やドキュメント担当を切り捨てた自然な結果だよ。今のコーダーは総じて、サプライチェーンを正しく構築する方法も、その理由も分かっていない
Rustを「これ以上ない神ツール」みたいに崇めて、バグがゼロになるとでも言わんばかりの人たちをからかってるだけだよ
> 彼は自爆装置を手に取って自分を撃った
あれ、Rustって100%安全で最強じゃなかったの?(棒)
そんなことはないよ。ユーザーは自分のパッケージマネージャーのリポジトリ一覧にそのリポジトリを追加するだけで、そこにあるパッケージは通常のパッケージと同じように選べるようになる。作者が新バージョンを公開すれば、全ユーザーのパッケージマネージャー上でアップデートとして表示される
> それだとパッケージマネージャーの意味がなくなる
パッケージマネージャーとサプライチェーンを混同してないか。この二つは常に分離しておくべきだよ、じゃないとsystemdみたいに全部丸ごと捨てないと一部だけ交換・改善することもできない、海綿状にくっついた塊になってしまう。よほどLennartみたいな人でもない限り、それは悪手だ
~~それだとパッケージマネージャーの意味がなくなる~~
公平に言うと、彼はFlatpakが自分のパッケージに向かない理由もちゃんと説明してる。Flatpakのサンドボックスから抜け出す必要があって、それがかなり無理やりなやり方になるからだと。とはいえ、些細なことを大げさに騒いでる感は否めない
> まさにFlatpakが解決しようとしていたのはこれで、パッケージを一度作ればどのシステムでも使える。ただ少し複雑で、もう一段階作業が増えるだけ
Flatpakは正直言って最悪だよ。第二のリポジトリとして存在する時点で信頼できる情報源が分裂するし、システムと依存関係やSBOM情報を共有しない。最悪の場合、依存地獄を招く。良く言っても「規格が乱立してまた一つ増えただけ」(XKCD 927)だ
だよね。まさにFlatpakが解決しようとしていたのはこれで、パッケージを一度作って公開すればどのシステムでも使えるようにする、というものだった。だから少し複雑になって、もう一手間増えるだけなんだよね
まあ近いけど、それぞれリポジトリの作り方が違うから、実際には「同じサイトの別ディレクトリに別々のリポジトリが置いてある」状態に近いかな
全部のパッケージを同じリポジトリの別ディレクトリに置くだけじゃダメなの? 例えばdebian/に.deb、fedora/に.rpm、appimage/にAppImage、みたいに
他サイトの新着
最初は確かに大変そうに聞こえるけど、実際の作業自体は結構シンプルだよ。一度理解してしまえば、リポジトリへのパッケージ公開もビルドパイプラインの一工程になるだけ
それ全部、直感的じゃなくて複雑に聞こえる。それがみんなの一番の不満なんだと思う
だね。いっそ「nix2everyDistro」的なコミュニティプロジェクトを立ち上げて、OSSプロジェクトに片っ端からPRを送り、Nixでビルドして全ディストリ向けに出力できるようにする、というのは案外いいアイデアかもしれない
> 少しいじれば、GitHub Pagesのサイトに置くことすらできると思う
Harbottleがまさにそれをやってる。かなり良く出来てるよ
うん、その通り、混同してた。寝不足で頭が回ってなかった、すまん
この話題の背景と論点
Linux向けソフトの配布形式が乱立しているのは、各ディストリが独自のパッケージ管理システム(apt、dnf、pacmanなど)を持つ歴史的経緯に加え、2014年にCanonicalがSnapを発表し、その後コミュニティ主導でFlatpakやAppImageが登場して「どこでも動く」形式を巡る競争が続いてきたためだ。Snapは配布基盤をCanonicalが握っている点、Flatpakはサンドボックス化がシステムに深く介入するアプリと相性が悪い点が、それぞれ敬遠される理由になっている。レス22にある「systemdのような塊になる」という皮肉は、Linuxコミュニティで長年続く「一つの仕事をうまくやる」思想と「統合基盤」思想の対立を踏まえたもので、今回のスレ固有の話ではない。
※本記事は5ch(Lemmy c/technology)スレッド「I hate packaging my software for Linux」より抜粋・要約して構成しています。






まだコメントはありません。