ZYpp

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
ZYpp
初回リリース2006年1月14日; 16年前[1] (2006-01-14
安定リリース
17.25.10 [2] /2021年4月28日; 10ヶ月前 (2021年4月28日
リポジトリ
で書かれているC ++
オペレーティング・システムLinux
タイプパッケージマネージャー
ライセンスGNU General Public License
Webサイトen .opensuse .org / Portal:Libzypp

ZYpp(またはlibzypp ; 「Zen /YaSTパッケージパッチパターン製品」[3])は、YaST、Zypper、openSUSEおよびSUSELinuxEnterprise用のPackageKitの実装などのLinuxアプリケーションを強化するパッケージマネージャーエンジンです[4]いくつかのより基本的なパッケージマネージャーとは異なり、パッケージの依存関係を計算するための充足可能性ソルバーを提供します。[5]これは、Novellが後援し、 GNU GeneralPublicLicenseの条件の下でライセンス供与されている無料のオープンソースソフトウェアプロジェクトです。v2以降。ZYppは、主にプログラミング言語C++で実装されています。

Zypperは、ローカルまたはリモート(ネットワーク)メディアのソフトウェアパッケージをインストール、削除、更新、および照会するためのZYppパッケージマネージャーのネイティブコマンドラインインターフェイスです。そのグラフィカルな同等物は、YaSTパッケージマネージャモジュールです。バージョン10.2beta1以降、 openSUSEで使用されています。openSUSE 11.1では、Zypperはバージョン1.0に到達しました。2009年6月2日、Ark Linuxは、依存関係ソルバーのレビューを完了し、ZYppとそのツールを、老朽化し​​たAPT-RPM [6]に代わる最初のディストリビューションとして選択したことを発表しました。Zypperは、モバイルLinuxディストリビューションMeeGoSailfish OS、およびTizenの一部でもあります。

歴史

目的

2003年にXimianSuSEGmbHを連続して買収した後、 Novellは、これまでの2つのソリューションがNovellで使用されていたため、 YaSTパッケージマネージャーとRedCarpetの両方のパッケージ管理システムを最適なアプローチで統合することを決定しました。2005年に利用可能な現存するオープンソースツールとその成熟度を見ると、要件を満たしていないものはなく、XimianとSUSEによって開発された現存するLinux管理インフラストラクチャソフトウェアとスムーズに連携できたため、現存するものから最高のアイデアを得ることが決定されましたピースと新しい実装に取り​​組む。結果として得られるライブラリであるLibzyppは、 SUSEディストリビューションのソフトウェア管理エンジンになる予定でした。およびNovellZENworksManagementスイートのLinux管理コンポーネント。

初期

Libzyppのソルバーは、インストールされたシステムのパッケージを更新するために作成されたRedCarpetソルバーからの移植版でした。完全なインストールプロセスに使用すると限界に達し、弱い依存関係やパッチのサポートなどの拡張機能を追加すると、脆弱で予測不可能になりました。[7]このZYppのソルバーの最初のバージョンは十分に機能しましたが、結合されたZMDデーモンを備えた企業のエンタープライズ製品では、システムパッケージが期待どおりに機能しない状態で2006年5月にリリースされたopenSUSE10.1リリースにつながりました。2006年12月、openSUSE 10.2リリースは、再訪されたZYpp v2を使用して、以前のリリースのいくつかの欠陥を修正しました。その後、ZMDは10.3リリースから削除され、Enterprise製品のみに予約されました。ZYpp v3はopenSUSEに他の既存のパッケージマネージャーと同等の比較的優れたパッケージマネージャーを提供しましたが、実装にいくつかの欠陥があり、速度パフォーマンスが大幅に制限されていました。

SATソルバー統合

libzyppの改善が必要な領域は、依存関係ソルバーの速度でした。libsolvは、改訂されたBSDライセンスの下で作成およびリリースされています。[8]

Optimal Package Install / Uninstall Manager(OPIUM)[9] [10]MANCOOSI [11]などのプロジェクトは、 SATソルバーを使用して依存関係を解決する問題を修正しようとしていましたAdvanced Packaging Tool(APT)のような従来のソルバーは、許容できない欠陥を示すことがあります。SATアルゴリズムをZYppスタックに統合することが決定されました。使用されたソルバーアルゴリズムは、人気のあるminisatソルバーに基づいていました。[12]

openSUSE 11.0に表示されるSATソルバーの実装は、2つの主要な、しかし独立したブロックに基づいています。

  • データディクショナリアプローチを使用して、パッケージおよび依存関係の情報を格納および取得します。新しいsolv形式が作成されました。これは、リポジトリを文字列ディクショナリ、リレーションディクショナリ、およびすべてのパッケージ依存関係として格納します。複数のsolvリポジトリの読み取りとマージには数ミリ秒しかかかりません。
  • パッケージの依存関係を計算するための充足可能性の使用。ブール充足可能性問題よく研究された問題であり、多くの模範的なソルバーが利用可能です。SATソルバーが使用される他の領域と比較して、パッケージソルバーの複雑さが非常に低いため、非常に高速です。また、複雑なアルゴリズムを必要とせず、問題が解決できない理由の証拠を計算することにより、理解できる提案を提供できます。

数か月の作業の後、SATソルバーと統合されたこの4番目のZYppバージョンのベンチマーク結果は、YaSTとZypperを他のRPMベースのパッケージマネージャーよりも速度とサイズで優れたものにしています。[13] [14]

も参照してください

参照

  1. ^ 最も古い既知の変更ログ
  2. ^ 「リリース17.25.10」2021年4月28日2021年5月24日取得
  3. ^ 「頭字語-openSUSEWiki」
  4. ^ 「Libzyppドキュメント」
  5. ^ 「Libzyppプロジェクトのホームページ」
  6. ^ 「Linuxパッケージングシステムの別の見方」2009年6月。
  7. ^ 「マイケルシュローダー、satsolverの歴史」GitHub2021年11月26日。
  8. ^ 「githubのlibsolv」GitHub2021年11月26日。
  9. ^ タッカー、クリス; シャッフェルトン、デビッド; ランジット・ジャラ; Lerner、Sorin(2007)、「OPIUM:OPTimal Package Install / Uninstall Manager」(PDF)第29回ソフトウェアエンジニアリング国際会議、ICSE'07。
  10. ^ EDOSプロジェクトワークパッケージ2チーム(2006年3月)、「ソフトウェア依存関係の正式な管理に関するレポート」EDOSプロジェクト成果物ワークパッケージ2、成果物2。
  11. ^ Le Berre、ダニエル; Parrain、Anne(2008)、「依存関係管理およびそれ以降のSATテクノロジーについて」(PDF)ASPL 2008、Limerick、Mancoosi.org。
  12. ^ 「Minisat.se」
  13. ^ 「yumとZYppの速度/メモリ使用量」2008年5月16日2008年10月23日取得
  14. ^ 「openSUSE11.0のスニークピーク:パッケージ管理、DuncanMac-Vicarを使用」2008年6月6日2017年10月15日取得

外部リンク