Arch Linux 由来のプロジェクト

Arch Linux 自体は非常にメジャーな Linux ディストリビューションですが 1、実際に Arch が開発環境として何を生み出してきたのかはあまり知られていないと思います。その要因として、Arch の Arch Way では「あくまでディストリビューションは上流で開発されたソフトウェアをそのままの品質で利用できることに注力するべき」という方針が取られていることがあるでしょう。一般的な他のディストリビューションと違って 2、Arch では標準セットとして付属しているソフトウェアがとても少なく、配布形態が『素の Linux + パッケージマネージャ(pacman)』となっています。Arch Linux を使って素晴らしいソフトウェアを開発したからといって、インストールメディアに同梱されるわけではないわけです。

ディストリビューションにはそれぞれ、その土壌から生まれた (そして他のディストリでも重宝されている) 素晴らしいプロジェクトがあります。例えば、Fedora なら今や全ての Linux の共通 init となった systemd があるし、SuSE には革新的なスナップショット管理ツールの Snapper があります 3。どちらも、生まれる元になったディストリビューションの影響を色濃く受けています。

そこで、この記事では Arch Linux 発祥のプロジェクトを紹介することで、Arch Linux の素質やユーザーベースを知る手がかりとしたいと思います。

Archey 4

Linux のスクリーンショットのスレッドではお馴染み。あのディストリビューションのロゴを表示するスクリプト。元は Arch Linux で開発されている 5。画面上にシステム情報を表示するソフトウェアといえば、Gentoo 界隈で開発された Torsmo (今の Conky) が有名だが、それに対する Arch Linux のカウンターパートとして Archey があるということでいいかと。ちなみに、Arch には AA を表示するプログラムが他にも揃っており、例の牛さんを表示する cowsay や唄うポニーの ponysay がある。

MATE 7

おそらく、Arch Linux 以外でよく使われている一番有名なプロジェクト。ベーシックな機能をほどよくまとめたツールキットである GTK+2 とかなり地味なウィンドウマネージャ Metacity によるクラシカルなデスクトップ環境として人気があった GNOME 2 のフォーク。いわずとしれた GNOME 3 へのバージョンアップによる使い心地の大規模変更によって色々と不満が出たところに 8 颯爽登場した。非常に好感を持って受け入れられたプロジェクトで、多数のディストリビューションで採用された。しかしながら、安定版が出ていないという理由で Arch Linux の公式リポジトリに追加されたのは他のディストリビューションより大幅に遅れて最後列になった 9。Arch Linux 由来らしく、最新の環境への対応に執心していて、デスクトップ環境で Bluetooth を使うための Blueman の Bluez 5 対応を率先したりしている。今集中しているのは GTK+3 への移行 10

AzPainter/AzDrawing 12

日本で開発されているペイントソフト。元々は Windows 用のソフトウェア (Windows 版は現在開発終了)。Painter はイラスト描画向けで、Drawing は線画描画向け。Wine での動作に多少の難がある SAI などのお絵かきソフトの代わりとして Linux でネイティブに使える。作者の当初の開発環境は Ubuntu ベースだったが2014年から Arch Linux に移している 13。SuSE 筆頭の KDE として Krita があり、Fedora 筆頭の GNOME に GIMP があるように、Arch ユーザーが生んだ代表的なペイントソフトとなることを期待 14

profile-sync-daemon 15

tmpfs で Firefox を高速化するスクリプト 16 が元になった、ブラウザを一気に軽くするデーモン。通称 psd。Fedora や Gentoo では公式リポジトリに含まれているが、本家 Arch では AUR に入るに留まり、公式リポジトリ入りは果たしていない。出自は Arch Linux なのだが。systemd の各種デーモンなど 17、新しい機能を取り入れるのが早い Arch で開発しているので、当然、overlayfs を使うなど先進的な機能を揃えている。

pacman 18

最後に真打登場。Arch Linux の屋台骨を支えるパッケージマネージャで、依存関係を解決するなど単なるパッケージマネージャというだけでなく、PKGBUILD から簡単にパッケージを作成して、それを AUR で共有できるというインフラまで含めて pacman の与するところは大きい。DNF や Portage などのパッケージマネージャが Python で書かれているのに対して、pacman は C で書かれている。パッケージマネージャ本体の拡張性や抽象性・全能性は劣るが、それゆえに理解がしやすくて軽快に動作するのが特徴 22。他のプラットフォームへの移植もされていて、GNU Hurd や FreeBSD、Windows の pacman が存在する。どの移植も一定の評価を得ていて 19、FreeBSD の方は ports コレクションに入っており 20、Windows 版の MSYS2 は様々なところで利用されている。Windows で GTK をビルドするときは MSYS2 の使用が推奨されていて、GTK を使っている Firefox を MSYS2 でビルドするという計画もあるらしい。もはや Arch ユーザーにとっては空気みたいな存在だが 21、今でも活発に開発は継続している。次のバージョンの pacman 5.0 では長らく待たされていたフック機能が搭載されるとのことで期待大である 23

その他 24
  • catwm - シンプルなタイル型ウィンドウマネージャ
  • infinality-bundle11 - フォントレンダリングを改善する fontconfig の設定集
  • sway - Wayland 用の i3 のようなウィンドウマネージャ
  • KeePassC - curses ベースの KeePass パスワードマネージャ
  • Alopex - もふもふなタイル型ウィンドウマネージャ
  • PyTyle - 手動タイルマネージャ
  • bmpanel - 軽量なパネル
  • monsterwm - モンスター級のウィンドウマネージャ
  • jumanji - ウェブブラウザ
  • uzbl - Unix 哲学に則ったブラウザ
  • PCManFM-Mod (現 SpaceFM) - マルチパネルのファイルマネージャ
  • subtle - タイル型ウィンドウマネージャ
  • zathura - PDF ビューア
  • luakit - Lua + WebKit = ウェブブラウザ

失念していたプロジェクトを以下に追記 (12/3)

  • Papyros - マテリアルデザインのデスクトップ環境。Arch から派生したオペレーティングシステム 27 用のデスクトップ環境であるが Arch でも使える。非常に期待していたのだが、クラウドファンディング詐欺 26 で一時的に開発停止していた。
  • netctl - ネットワーク設定ツールで netcfg の後継。数少ない Arch で公式に開発されているツール。Arch 以外の環境で使われている事例は知らない。

Arch から離れて別のディストリビューションとして結実した成果物は Arch ベースのディストリビューションを参照。初心者向け、ハッカー向け、DJ 向け、視覚障害者向けなど多数。

脚注

この記事は Arch Linux Advent Calendar 2015 第一日目の記事です。予想以上に記事を書くのに労力 25 を取られたので (ArchWiki を更新できなかったし)、もう書きません。

  1. DistroWatch で現在9位。

  2. もちろん、そうでないディストリビューションも星の数ほどあるし、Arch の ISO は大きすぎる、デブだろという見方もある (i686 と x86_64 の両方に対応するデュアル ISO なのが原因で、i686 はもう誰も使っていないんだから切り捨てていいと思うが 6)。インストールメディアに入っているパッケージは Advent Calendar 9日目の記事で polamjag さんによってまとめられています。

  3. openSuSE は Btrfs をデフォルトにした一番最初のディストリで、Btrfs の積極的な採用は随一。

  4. 最初のアナウンスは2009年12月。

  5. 今は Python 3 による Archey3 に発展的解消。

  6. 今現在の i686 のユーザー数は 10% 未満

  7. 最初のアナウンスは2011年6月。

  8. 筆者もそれまで GNOME 2 を愛用していたが Openbox に変えた。Linus も GNOME 3 には例のごとくキレている。後で戻ったらしいが。ちなみに、Linus は KDE の変更にもキレている。MATE みたいに昔の KDE を取り戻そうというプロジェクトに Trinity があるが、こちらはあまりメジャーではない。

  9. Arch Linux の community リポジトリに入ったのは遅れること2014年1月。公式ブログで発表もされ、見事な凱旋をしてみせた。

  10. こちらは既に Arch のリポジトリに入っているので、他のディストリよりも一早く試せる。一度公式リポジトリに入ってしまえば、矢鱈と対応が早い。同じくツールキットの移行中の LXQt も先駆けて入っていた。ベータ版のソフトウェアをあまりにも早急に公式リポジトリに入れて問題を起こした Steam なんて例もあるが。他にも素早く公式リポジトリに入ったものとして、Let's Encrypt について Advent Calender 4日目の記事で pitan さんによって紹介されています。

  11. Infinality 自体は Arch Linux 由来なのか (?)。

  12. 公式サイト

  13. Arch Linux 由来というには弱いかもしれないが、開発環境を Arch Linux にしてから開発を本格化しており、何より Arch に愛着を感じていただけているようなので (『Arch Linux はインストールがほとんど手動な分、自分の好きな環境に構築できるので、余計なものを入れたくない私にとっては、最適なディストリビューションです』:近況)。

  14. どちらも AUR からインストールできる: azpainter / azdrawing

  15. ArchWiki: Profile-sync-daemon

  16. http://www.verot.net/firefox_tmpfs.htm

  17. systemd-networkd や systemd-boot、systemd-nspawn などのこと。他のディストリビューションであまり利用が進んでいないようなのが残念。

  18. Arch Linux と pacman の歴史は Arch Linux の歴史を参照。Arch Linux の名前の由来が "arch-enemy" から来ているのは周知の事実だが、pacman については定かではない。

  19. GNU Hurd 版の Arch Linux は長らく開発停止していたが最近新しい兆しがある。OS X 向けの Pacman on OS X は消滅してしまった。

  20. 2013年1月に追加

  21. そのため Arch Linux 以外の Unix 環境を使わざるを得なくなったときに非常に苦痛だけど、pacapt ラッパーを使うと pacman コマンドを使うことができて便利。ちなみに Debian GNU~ (略) には pacman というパッケージが存在するが中身はナムコの方なので注意。

  22. yaourt や pacserve、あるいは namcap や powerpill などの便利なツールは必須級という感じもするが、公式のツールキットにガバガバ入れることはない。

  23. フック機能がないために、Etckeeper での pacman の扱いは LOWLEVEL_PACKAGE_MANAGER になってしまっている。

  24. 新しいプロジェクトを始めたら Arch フォーラムの Community Contributions に投稿しよう。pacman の補助ツールとか Arch Linux に直接関係するようなソフトウェアでなくても投稿できます。日本語フォーラムの方にも同じようなサブフォーラムがありますが、そっちに投稿しても特にフォローとかはできない。駄目ということはないけど。

  25. Ghost のセットアップはとても楽だった。

  26. といっても開発者側が詐欺を行ってたわけではなく、何の目的かわからないが、偽のアカウントで寄付をたくさん送っているように見せかけられていたらしい。事件の詳細はブログ記事に投稿されている。

  27. その OS の名前も Papyros。

mikutter

Arch との蜜月な関係を誰でも知っているソフトはここでは扱わない。