Linuxでの生活のほとんどをDebianを使用して過ごしてきたので、他のディストリビューションを調べていて、バージョン間のスムーズなアップグレードが提供されていないことに本当に驚いています。 Debianは無限にアップグレード可能であり、私はいくつかの主要な安定バージョンをアップグレードしました。
私はFedora(および派生物)のような十分にサポートされたディストリビューション、さらにはUbuntuや派生物について話している。 CentOSのような安定したサーバー指向のディストリビューションですら。
Debianのパッケージ管理システムとパッケージアップグレードスクリプトは、他のディストリビューションが提供するものよりもはるかに高度であるためですか?
または、ディストリビューションに関係なく、メジャーバージョンのアップグレードで最初から再インストールする方が全体的に良いアイデアですか?
それは多くの要因の組み合わせです。
ほとんどのディストリビューションは、重要な、時には重大な変更を実装する時間としてメジャーリリースを使用します。たとえば、Fedora 15はsystemdを追加し、Ubuntuは6.10でupstartを追加しました。 Debianは多くの点で非常に保守的なディストリビューションです。大規模で破壊的な変更は嫌われます。
その結果、たとえば、Debianのリリースサイクルは、新しいリリースの基準を満たすためにすべての重要なパッケージを変更する必要があるため、非常に離れています。
Debianのパッケージ管理技術はFedoraやUbuntuより優れているわけではありませんが(明らかにUbuntuと同じであるため)、Debianは文化的にスムーズなアップグレードシステムを持つことが重要であると判断しました。
具体的には、アップグレードを行うときに多くのディストリビューションで問題が発生しました。 Ubuntuたとえば、リリース間でインストールされているパッケージベースを大幅に変更します。従来の「dist-upgrade」を実行すると、インストールされたパッケージは新しいリリースに更新されますが、最終的な結果には新しいラインナップの変更がありません。デフォルトのインストールからのパッケージが「サポートされている」または「サポートされていない」だけに降格された場合でも、そのパッケージは保持されます。新しいパッケージがデフォルトのインストールになっている場合は、インストールされていません。あなたのリリースは「技術的に」アップグレードされたリリースですが、新しいリリースの経験を反映していません。同じケースも非常に正確で、CentOS5とCentOS6を比較すると、パッケージ名が完全に再編成されています。
Debianは、そのような大幅な変更を犠牲にして、スムーズなアップグレードを優先します。これが、Debianが新しい機能で遅い理由です。彼らのコミュニティにとって、トレードオフは受け入れられます。前の答えを反映するために、それはパッケージ管理技術自体とは何の関係もありません。私は、Ubuntuの絶え間ない再インストールが私に身に着けていると言います。
あなたが述べていることは、ローリングリリースディストリビューションのファミリー全体には当てはまりません。
システムメンテナンスソフトウェアの場合、システムの一部のみをアップグレードする場合、またはアップグレード全体で構成の一貫性を維持する場合、パッケージ間の互換性の問題を解決することははるかに困難です。さまざまなソフトウェアパッケージは、相互にうまく機能するように適合させる必要があります。
そのため、システムアップデートを提供する最も簡単な(つまり、同じ開発時間の労力で最も信頼できる)ソリューションは、完全で徹底的にテストされた完全インストールリリースを定期的に準備することです。 Red Hatなどのエンタープライズソリューションは、クライアントに信頼性の高いシステムを提供し、アップグレードを可能な限り中断することで問題を抱える必要があるという立場を取っています。 (もちろん、マイナーなアップグレードとバグ修正が利用可能であるか、自動的にプルされる必要があります)。これは、CentOSなどの無料のサーバーディストリビューションの背後にある一般的な哲学でもあります。
リリース間のシームレスなアップグレードルートをエンドユーザーに提供することは、システム開発者にとって大きな課題です。多くのディストリビューションは、これに乏しい時間を犠牲にしないことを選択します。多くの人気のあるパッケージ(たとえばQTなど)はアップグレードが難しく、完全な再インストールが必要になることがよくあります。さらに重要なことは、多くのプロジェクトが開発努力の減少を示しているか、そうでなければ新しいテクノロジーに取って代わられていることです。システムパッケージの場合、これには多くの場合、大幅なシステムの再設計が必要です。一部の人がバージョンCからDにアップグレードしたいが、他の人はフォームBまたはAから、あるいは途中でカスタム状態から切り替えるという事実を考慮に入れる必要がある場合、移行手順を実装するのは特に難しい場合があります。
したがって、すでにお察しのとおり、最も難しいアプローチはローリングリリースです。 Debianのアプローチの詳細はわかりませんが、あなたの説明から、それらは中間のどこかにあることがわかります。