見出し画像

Linuxユーザーは必ず「Don't Break Debian」を読むべき

意外とLinuxユーザーでもご存じない方多いかと思います。
Debian Linuxのwikiには、このタイトルの文書が存在します。
実はMX Linuxはこれにできうる限り忠実に従ったシステムであると言われています(海外ニキに教えてもらった)。

実際のリンクがこれ

今回は、コレについて書いていこうと思います。
多くのLinuxユーザーに参考になるかと思います。

そもそも「Don't Break Debian」って何?

実は、これはDebianやその派生のディストリビューション、無論その他のRedHatなどでも(置き換えれば)言える話なのと、初心者がよくやるミスについて書かれています。いわば「べからず集」。

※尚、あくまで私の解釈ですが、Arch系はそもそも公式リポジトリとユーザーリポジトリが分離されており、かつローリングアップデート、そして以下のことでも当てはまらないことがあるので、個人的には今回の文書は(参考にはなるが)完全には当てはまらないものと理解しています。
これについては最後に書きますが、当てはまらないにしろ、Archユーザーも他のLinuxの考え方として読んでおくべきと考えています。
(Arch系のアドバンテージを理解する上でも参考になりますし、ある意味「戒め」になりますのでおすすめです)

詳細は本文の訳を見ていただくとして、今回は要約したものを説明していこうと思います(本文はコレを見た上でぜひ見ていただくことをおすすめします)。
何しろ英語なので、(ブラウザで翻訳すれば読めるのですが)、結構初心者には??なこともあると思いますので・・・

あと、海外などで云われている「背景」などについては、ここに書いてありますのでこちらもご参照いただけると幸いです。

野良ソフトを使うな

「ランダムなウェブサイト」という記述がありますが、まぁこれは明言を避けているだけで、内容的にはほぼgithubや、Sourceforgeなどのソースやバイナリがおいてあるところを指してますね。

本来なら、そのソースは実際のバイナリの大元のはずですし、バイナリも同じはずなのに、何故そう言うのか・・・
表向はセキュリティやマルウェアが含まれる可能性(安全性)を協調してますが・・・
あくまで私の推測ですが・・・

  • そのネタ(ソースやバイナリ)が、Debianやその系列のディストリビューションに合わない可能性がある
    実は、MXだと、MX専用バージョンの物があったりします。
    Input-remapperがそうですね。
    実はGUIも一般的な画面と全然違います。
    同じLinuxといえども、サービスやら何やらの違いで、合わない可能性は否定できない事があります。

  • 依存関係が解決できない可能性がある
    Debian系は、とにかく依存関係が色々難解で、一度インストールしてしまうと、削除できないソフトと依存関係があったりして、アンインストールしようとするとその依存関係も全部削除しようとするので。

そういう点もあって、リスクが有るということをやんわりといいたかったのかなと。
まぁ明確に書いてしまうと政治的に色々問題が起きる話ではありますからね・・・

Debian Stableと他のリリースを混ぜるな

まぁこのあたりはカーネルやインストール時に一緒に入ってくるソフトに関しての話なので、そんなに一般ユーザーには関連は少ないのかなと思っていますが・・・

というのも、Arch系はローリングリリースのため、Stableとか先行(ベータ)リリースとかありませんので。。。。。
。。と思ったんですが、cachyOSのカーネルとArch本家のカーネルは微妙に違うそうで、確かにこれなら後述の状況は起こり得るなぁと。

要するに、Trixie(現行バージョン名)でアップグレードとしてforky(次期バージョン名:テストリリース)や、不安定版リリースのアーカイブを設定した場合、ほぼすべてのパッケージをfolkyにアップグレードしてしまいます。つまり「フランケン」ができちゃうんですね。
そうすると、それがほんのすこしであっても、肝心のメインのカーネルアップグレードがうまく行かない可能性があるわけです。

あと、これはDebian公式が書いてますが・・・
「DebianとMint,Ubuntuを始めとする派生リポジトリは、Debianと互換性がありません」

いやちょっと待て。
じゃあMXについていたSynaptic(Debianのパッケージインストーラー)は一体何だったの?
あれこそ無駄ってことでしょ?紛らわしすぎんか?
※まぁMXには専用のMXパッケージインストーラーもあります、つまり2つパッケージインストーラーが付いてるんですね・・・ややこしすぎ。

・・・・と思ったのは私だけではないはずです。

GPUメーカーのインストールスクリプトは信用するな

これも、それなりのエキスパートユーザーでない限りあんまり気にならない話ではありますが・・・・

上にもある通り、各Linux(Debian的には下位の派生ディストリビューション)に互換性がない、と書いている以上、これもまぁそういう流れになるわな、という話です。
要するにDebian側で供給しているドライバをつかってくださいってこと。
GPUメーカーがどのLinuxをターゲットにしているかわからない以上、上記のことがあるなら当然信用できるはずもないわけです。
っていうか、とすると、わざわざこれのためにドライバ書いてるメーカーの人の立場ェ・・・

新しいものが出たからと言って飛びつくな

基本的に、私の経験として申し上げると、これはどのLinuxでも言える話です。(ただしArch系は元々常に新しいのでこれも当てはまらなかったりするんですが・・・)
あと、Stableであっても、Debian系は新しいのはあんまり勧めないかなと。
実際MXとかMintはDebianのStableベースのはずですが、それでも色々変わってしまったりで問題が多々あったりします。
で、後付でアップデートが出たりするんですよね・・・・

「make install」はできる限り使うな

これ、「野良ソフトを使うな」というのとリンクしてると思うんですが、ソフトによっては

$ Configure && make && make install

でインストールするものがありますが、これを使うとapt-getとかパッケージインストーラーの管轄外になってしまう形でインストールすることになるので、管理ができない状態になります。

私が実はMXやMintを抜けたのは、「人」が酷かったからだ、と書きましたが、これも大きな理由になりますね。(理由は後述します)

ネットのアドバイスは慎重に聞いて判断せよ

これはどのLinuxでも大いに当てはまる話ですが、あるバージョンまでは正しかった話が、バージョンが上がった瞬間使えなくなるというのはよくあります。
アドバイスが、古いバージョンをもとにしている可能性があるわけで、しかも公式のフォーラムでさえ普通にそういうのがあります。
それはDebian自身も理解してるようです。
なのでチュートリアルや説明書をきちんと読んだ上で、いろいろと比較検討して確認する必要がある、後で壊れたシステムを修復するよりはそこに時間をかけることが安心だ、と書いています。

これは私も経験があります。

とにかく説明がトンチンカンで、それは流石に私でも分かる話だったのですが、これがもし私が分かってなかったら・・・と思うとゾッとします。

Linuxを使うには、とにかく常に知識武装をし、”刃を研ぐ” 事をし続けなければいけません。
ネットの情報は、とにかく鵜呑みにしない、他人任せにしないというのが一番です。(これについても後述します)

(ディスク容量を節約したいからと言って)ソフトウェアを盲目的に削除するな

LinuxがWindowsやMacOSと違う大きな点は、ソフトウエア同士にある程度の依存関係があることです。
Windowsの場合は、DLLやランタイムライブラリ、Javaなどの実行環境には依存関係がありますが、ソフトウェア同士の依存関係はほとんど無いはずです。
例えば、Microsoft Officeをアンインストールするのに、PowerShellのアンインストールを一緒にやってしまうことはありません。依存関係が無いからです。
ですがLinuxの場合、あるソフトが一見関係ないように見えるソフト上ァパッケージに依存していたなんてのはよくあります。
ですから、アンインストールするとき、依存関係によって、残したいソフトまでアンインストールしてしまう可能性があります。
ですから、インストールする際に依存関係は理解して置くべきです。

インストール前にパッケージの説明は必ず読め

これもカーネル関連が中心なのと、内容的には前述のものと同じ、まぁ「取説はちゃんと読め」ってのと同じなので、内容は割愛します。

メモを取れ(インストール時の記録は必ず文字記録を残せ)

意外にこれが重要で、結構インストールとかした時の状況ややり方って結構みんなわすれてたりします。
私はここnoteに残していますが(私の発言の意図を理解してもらうためや、わたしがどう間違っているのかチェックしてもらう部分も含まれます)、ノートなどに残しておくことは案外重要だったりします。
これはLinuxに限らず、WindowsでもMacOSでも言える話だったりするんですよね。

Debian安定版で利用できないソフトウエアをインストールする、より安全な方法の案内

より安全なインストール(というかソフトウェアの探し方からインストールのやり方まで書いてあります。

バックポートアーカイブ(ArchでいうところのAURみたいなもの)とか、どうしてもソースからビルドしなきゃいけないときのことが書いてあります。
インストール前に厳重にテストせよ(chroot、コンテナ、仮想マシンを活用せよ)とかもありますが、初心者にはどれもかなり難解です。

その他にも書いてあることがありますが、これ以降は実際のやり方とかが中心でしたので割愛します。

正直、カーネル中心なので初心者にはあまり関係ないのと、割愛した部分は原文を読むほうが、エキスパートユーザーには勉強になると考えています。

これを読んだ個人的な感想と、この文書の根幹にあるもの

個人的には、何度も読み返して、多くのLinuxが抱える問題点の根幹(の一部かもしれない)がここにあると思いました。
正直、Linuxユーザーだけではなく、WindowsやMacOSのユーザーもしっかり読んでほしい(そして自分のつかっているOSのアドバンテージも理解すべき)と考えました。

いやそもそも・・・

「野良ソフトを使うな」とか、「make installはつかうな」とか言う話、なぜわざわざ「野良」を使うのか、というところの考察は私はしてないように感じました。公式リポジトリやバックポートから入手したほうが楽だし安全だってのは誰でも分かる話ですからね。どうしてそれをやってしまうのか、というところを考えるべきではなかろうかと。

正直、「必要なソフトがない」から「野良」で入れるのであって(ネットで調べたら結局そうなってた記事にしても、その記事を書いた人はそれが公式系のリポジトリに見当たらなかったからそうした可能性も大いにあるわけですからね)。
というかそうならないように自分のリポジトリをもっと強化すべきではなかろうかと。
その点Arch系はある程度(自己責任ではありますが)かゆいところに手が届くソフトウエアの量、分布、質ですから、乗り換えてよかったとは思ってます。

WindowsからLinuxに容易に乗り換えるべきではない理由がここにもある。

実は、Windowsのレジストリ以上に、各Linuxはそれぞれのソフトウエアパッケージの依存について、特にDebianやRHEL(Red Hat Enterprise Linux)及びその系列が当てはまりますが、最近はかなり難解なものになってきています。
要するに、「一度インストールしたソフトをアンインストールするのは非常にむずかしい」可能性があるということです。
また、Arch以外の系統は基本リリースバージョンがあり、リリースバージョンごとにサポート期間が存在します。
前述したとおり、カーネルを色々組み替えてしまうとかなりややこしくなり、普通のカーネルアップグレードができず、結局全部入れ直し・・・なんてことになりかねませんし、これはアプリなどでも同様のことが言えるでしょう。
※実際、それ(新しいStableが出たら全部入れ直し)が当たり前だってユーザーも結構いるようです。
特にUbuntuユーザーはそういう方が多いように見えます。
そしてその記事が結構ここnoteをふくむSNS,ブログなどにも結構UPされていたりします。
でも、(私の推測もありますが)Ubuntuの大元であるDebian自身は、これが当たり前ってもってもらうのには違和感を感じているようです。
私も勿論そう感じています。

Windowsの場合は、そこはしっかり考えられていて、依存するものについてはVCランタイムライブラリやJavaランタイムなどにしぼっているので、それぞれのソフトウエアパッケージに依存することは殆どありません。なのでインストールもアンインストールも比較的自由に可能です。
Windows10→11やMacOSだって、ハードウェア的要件はあったものの、それさえ満たせていれば、基本的にインストーラー一発で終わりですからね。

また、他でも書いていますし、上記でも書いていますが、Linuxといえど、ディストリビューションで同じソフトウエアの名前(と機能)にも関わらず、そのディストリビューション専用になっていたりすることも多々あります。その「専用ソフトウエア」の倉庫が、それぞれのディストリビューションのソフトウエアリポジトリなのです(無論汎用も含まれはしますが)。
またデスクトップ環境も様々で、場合によってはそれで動く動かないが決まってしまうソフトウエアも存在します。

実際LinuxとWindows/MacOSでは、使えるソフトに大きな違いがあります。
オフィスソフトについても同様で、かつ状況は流動的です。
安定性についても疑問が残るケースが多々あります。
そんな不安定な状況を、勧めるというのはいかがなものかと考えています。
使えるソフトなども充分試す必要があるでしょう。
なので、少々出費する可能性はあれど、まずは中古などにLinuxをインストールして試してみる、というのが正解だと思っています。
一番安上がりなのはVirtualBoxなどの仮想システム内で作ることですが、Arch系は結構難があるので、これもディストリビューションによりけりです。その点は実機にまさるものはない、というところでしょうか。

Linuxと言いつつ「全く別のシステム」

この文書が書いている通り、Debian自身は「派生リポジトリ」、つまり他のディストリビューションとは互換性はないと明言しています。
この文書は、Debianとその派生ディストリビューションがそれぞれ抱える関係性と闇、ジレンマを表していると私は思っています。

また、DE一つとってもそうで、同じOSでもDEが違えば操作性は勿論、そのDEに依存したソフトも使える使えないは当然あります。
※全部が全部依存しているわけでは有りませんが、GTKだったり、Qtだったり、これも複数有り、(全部が全部でないにしろ)DE依存の部分を使っていたりすると互換性が無いこともあるようです。
なので、GUI系でないほうが信頼性がある、とちょくちょく云われるのはそれがあってのことかも知れません。

誰にでも初心者の時期がかならずある

ネットの情報は、とにかく鵜呑みにしない、他人任せにしないというのが一番です。
ただ、最初は「メンター」というか「良き先輩」が必要なのもまた事実です。これが田舎になればなるほど、周囲にわかる人間がいなければいないほど、やっぱりネットしか頼れないのです。

私が常々「Linuxとは”人”だ」って言ってるのは、知識面は当然のこと、そういう「しっかりした先輩」であるべき、と公式コミュティやユーザーズグループに対しては思っています。そういう私を含め「分かってない人たち」に色々教えたり、一緒に喜びや難しさを分かち合う「仲間」なのですから。

そもそもマスゴミの印象操作がひどすぎる

Googleなんかの「おすすめ」やら見ててもそうですが、最近のLinux関連の記事はひどい記事が結構あったりします。
「Windows離れが加速」とか書いておいて、中身よく読んだら「ちょくちょく」に話がトーンダウンしていることはよく見るようになりました。
しかも「おすすめLinux」に、あっちのディストリビューション、こっちのディストリビューション・・いやどれやねん!ってツッコミたくなることも多々。しかもメインの論点が全部バラバラでマジで混乱します。

最近のマスゴミや、海外でも掲示板(Reddit)などは私から見て盛大に左傾化してるので(まぁこれはMicrosoftやIntel/AMDの問題も大きく関連してるとは思いますが)、なんでもかんでもLinuxになってる気がします。

政治でもそうですが、物事疑い始めたらきりがないわけで、「盤面全体」を見渡して考える必要があります。


Arch系ではあまり当てはまらないと思っている理由と、それでもこの文書は参考になる理由

ArchLinuxは、他のディストリビューションの比較も書いていますが、自分のアドバンテージだけ出すのではなく、ちゃんと相手もリスペクトして、お互いの利点もしっかり書いているように見えます。

実は、他でも書いていますが、ArchLinuxの考え方は、DebianやRHELを含めた多くのディストリビューションと大きく異なっています。
リリースはローリング方式であり、常に最新版を提供します。パッケージマネージャーのコマンドで更新が可能です。
リポジトリから導入したソフトウェアも同様に可能です。つまりリリースごとに入れ直しとかを考える必要がありません。

ただし、ArchLinux系(特にCachyOS)がローリングリリースということは、Stableではない(という話)ということなので、完全に固定された ”凍った” ほうが良いのであれば、Debian系なり、RHEL系なり、他のディストリビューションのほうがいい可能性もあります。(まぁ実際RHELはそれをウリにしているわけですし)
個人的にはStableにひどくこだわらなくても、rcとかtestingとか、明らかにテストバージョンではない限り、個人で使う場合には問題はないかなと思います。

ただ特にビジネスシーン、会社の端末、サーバーなどで固定した環境で使う場合は、確実に安定度重視ですから、”凍った” 方が良いことがおおいです。
私が他のディストリビューションそのものを否定しないのはそれがあってのことです。(ユーザーについては否定してくる相手にはそのままお返ししますけどね😁)


※2026/04/16追記
変なコメントが揚げ足取りに来てるので書いておきますが、実際Stableかどうか、というところの定義というのは意外にずれがあるんですよね。
私自身が ”それぞれの基準" で書いてしまっていたのもあったのでそこはちょっと勘違いさせやすい部分があったのかなとは思いますが・・
にしても、Archしか調べずにコメントしてる部分がミエミエ過ぎて・・・
まぁ私も不勉強な所はあるかもなのでアレではあるんですが😅
指摘がある通り、実質Arch及びCachyでは、通常のカーネルは実質Stable扱いであります。
ですが、ある程度の期間インストールメディアのカーネルを固定し、そこからインストールしていく他のディストリビューションと違って、ArchやCachyはローリングリリースという「常に進化し続ける」を売りにしている部分もあり、「その時点での最新」を「ほぼマンスリー(完全にマンスリーというわけではない)」でリリースしており、それを強調する意味で使っています。
勿論ArchやCachyにはLTSもありますので、絶対にStableでないとこまる!って場合はそっちを使う手もあります。

また、コメントにも書きましたが、ArchとCachyでもカーネルの考え方に少々違いがあり、Cachyは「ハードウエアの性能を引き出す」事を中心としたカーネルを出しているのが特徴です。Archにはcore-testing extra-testingというものがありますが、Cachyにはありません。
Cachyでそれに相当するのは「rc」が末尾についているものですね。
Cachyの場合は、LTSと通常のもの以外は、ハンドヘルド、GCCなどの作られ方や目的の違い、EEVDF(これはほかもあるかもですが)、Boreを始めとしたCPUスケジューラー違いのカーネルがあったり、LTSと標準のカーネル以外は極限まで最適化したLTOカーネルが別であったりします。
※但し、これらの「超最適化」カーネルは、今回の私のnoteの主役の1つであるIntelMacに対応しているかはわかりませんし、わからない以上あまりおすすめはしません。どちらかというとPC系で、ゲームなどの最適化したものに使いたい!という方向け専用だと考えています。


また、各ソフトウエアの依存関係は、よほど大量のソフトウエアを導入しない限り、比較的シンプルになっていますし、それ以前に最初のインストール段階で、オプションなどで指定しない限り(デスクトップシステムの)最小限のインストールになっており、アンインストールも他のLinuxよりはある程度楽になっています。複雑さをもともとArchLinuxは嫌っており、そういう点が逆にユーザーに対して親切である、というのを証明してたりするんですね。

ただ、だからといって、我々が横着をすれば、「壊す」ことにはなるので、「戒め」としてこの文章は大いに参考になりますし、他Linuxに対するアドバンテージとして理解しておく(吹聴する必要はない)ことは大事なことではないかと思います。
ですからArchLinux、CachyOSを始めとしたArch系のディストリビューションユーザーも、これを読んでおく価値は大いにあると思います。

いいなと思ったら応援しよう!