ZYpp

ZYpp
ZYpp
当前版本
  • 17.32.6 (2024年4月29日;穩定版本)[1]
編輯維基數據鏈接
源代码库
  • github.com/openSUSE/libzypp
編輯維基數據鏈接
编程语言C++
操作系统Linux
类型软件包管理系统
许可协议GNU通用公共许可证
网站The LibZYpp Portal

ZYpp (或稱libzypp) 是一個软件包管理引擎,通常在openSUSE/SUSE Linux Enterprise以YaST、Zypper或PackageKit為前端使用[2]。它提供一個強力的可滿足性求解器來計算軟體包相依性,也提供了一組方便的軟體包管理API[3]。它是一個由Novell所贊助的开放源代码且為自由软件的專案,採用GNU通用公共许可证第二版或更新授權。

Zypper為ZYpp软件包管理器原生的命令行界面前端,可用以安裝、移除、升級及查詢本機或遠端(通常為網路)媒體的軟體包。它的圖形等價介面為YaST软件包管理器模組。它在openSUSE上於版本10.2 beta1開始使用。在openSUSE 11.1上,Zypper釋出了1.0版。2009年6月2日,Ark Linux宣佈其已經完成對其相依性求解器的審閱,並選擇ZYpp及其前端介面來取代老化的apt-rpm[4],並且是第一個這麼做的Linux發行版。Zypper也被MeeGoSailfish OSTizen等行動作業系統採用。

openSUSE的开放构建服务亦提供一些openSUSE官方所沒有的軟體。

歷史

目的

在2003年連續收購了Ximian公司[5]SUSE公司[6]後,Novell決定要合併YaSTRed Carpet英语Red Carpet (software)兩個軟體包管理器。在2005年,觀察了其他的開源工具在當時的成熟度後,Novell公司覺得都不足以符合他們想要可以與已有的由Ximian公司及SUSE公司開發的Linux管理系統一起運作的要求,所以他們決定開發一個新的軟體包管理器。Libzypp就是最後開發出來的函式庫,目標是成為SUSE發行版的軟體管理引擎,以及Novell ZENworks套裝的Linux管理組件。

早期

Libzypp的求解器是Red Carpet求解器的移植,其被編寫用來在安裝好的系統中升級軟體包[7]。雖然第一版ZYpp的求解器與ZMD守護行程在企業產品上運行的很好,但它導致了2006年5月釋出的openSUSE 10.1有系統軟體包無法運作。2006年12月釋出的openSUSE 10.2修正了先前版本的一些問題,並將ZYpp升級至第二版。ZMD則於10.3版中移除,只在企業版產品中保留。雖然在openSUSE中的ZYpp第三版是相對比較好的軟體包管理器,但與其他軟體包管理系統而言,它存在一些缺陷,從而限制了它的速度表現。

SAT求解器整合

libzypp其中一個需要改進的地方是相依性求解器的速度。

像OPIUM專案[8][9]MANCOOSI英语MANCOOSI[10]這些嘗試修復SAT求解器的一個相依性求解問題的專案。像是APT有時可能會出現一些無法接受的缺陷。基於計算複雜性理論的SAT求解器,與傳統求解器,如APT的運作方式不同[11]。它決定將SAT算法整合到ZYpp堆疊中;其求解器是基於minisat求解器[12]。 在openSUSE 11.0中的SAT求解器是基於兩個主要且獨立的區塊:

  • 使用数据字典來儲存及檢查軟體包的相依性資訊。新的求解格式被建立,用來儲存套件庫作為字串字典,關係字典以及所有軟體包的相依性。讀取及合併多個求解庫只需要很短的時間。
  • 使用可滿足性英语satisfiability來計算軟體包相依性。布尔可满足性问题提供許多範例求解器,並已經過長久研究;它相當快,因為相較其他使用SAT求解器的領域來說,軟體包相依性的複雜度較低。此外,它不需要複雜的算法,且在計算無法解決的問題時可以提供可理解的建議。

經過幾個月的工作,整合了SAT求解器的第四版ZYpp在基準測試上取得了不錯的成績,讓YaST及Zypper比其他基於RPM的軟體包管理器相比起來有較佳的速度及佔用空間[13][14]

參見

  • 自由软件主题

參考資料

  1. ^ Release 17.32.6. 2024年4月29日 [2024年5月2日]. 
  2. ^ Libzypp documentation. [2014-01-29]. (原始内容存档于2021-10-11). 
  3. ^ Libzypp project homepage. [2014-01-29]. (原始内容存档于2022-03-30). 
  4. ^ Another look at Linux packaging systems. [2014-01-29]. (原始内容存档于2011-10-07). 
  5. ^ Novell Acquires Ximian to Expand Linux Solutions and Open Source Commitment. 2003-08-14 [2014-01-30]. (原始内容存档于2016-03-03). 
  6. ^ Novell Announces Agreement to Acquire Leading Enterprise Linux Technology Company SUSE LINUX. 2003-11-04 [2014-01-30]. (原始内容存档于2016-03-04). 
  7. ^ Michael Schroeder, History of satsolver. 
  8. ^ Tucker, Chris; Shuffelton, David; Jhala, Ranjit; Lerner, Sorin, OPIUM: OPtimal Package Install/Uninstall Manager (PDF), 29th International Conference on Software Engineering (ICSE'07), 2007 [2014-01-29], (原始内容存档 (PDF)于2009-02-19).  已忽略未知参数|separator=(建议使用|mode=) (帮助)
  9. ^ EDOS Project Workpackage 2 Team, Report on formal management of software dependencies, EDOS Project Deliverable Work Package 2 (Deliverable 2), March 2006 [2014-01-29], (原始内容存档于2006-06-19).  已忽略未知参数|separator=(建议使用|mode=) (帮助)
  10. ^ Le Berre, Daniel; Parrain, Anne, On SAT Technologies for dependency management and beyond (PDF), ASPL 2008 (Limerick), 2008, Mancoosi.org [2014-01-29], (原始内容存档 (PDF)于2021-04-01).  已忽略未知参数|separator=(建议使用|mode=) (帮助)
  11. ^ Burrows, Daniel, Modelling and Resolving Software Dependencies (PDF), June 2005 [2014-01-29], (原始内容存档 (PDF)于2016-04-16).  已忽略未知参数|separator=(建议使用|mode=) (帮助)
  12. ^ Minisat.se. [2014-01-29]. (原始内容存档于2012-04-20). 
  13. ^ yum and ZYpp speed / memory usage. 16 May 2008 [23 October 2008]. (原始内容存档于2011年8月15日). 
  14. ^ Sneak Peeks at openSUSE 11.0: Package Management, with Duncan Mac-Vicar. 6 June 2008 [23 October 2008]. (原始内容存档于2022-03-21). 

外部連結

認證與系統管理
Novell eDirectory英语Novell eDirectory · Novell ZENworks · Novell Identity Manager英语Novell Identity Manager · Novell Access Manager英语Novell Access Manager · Novell BorderManager英语Novell BorderManager
SUSE
工作群組的協同運作
Novell Open Enterprise Server英语Novell Open Enterprise Server · Novell GroupWise英语Novell GroupWise · Novell NetWare
計畫
AppArmor · Novell Evolution · IFolder · Mono · openSUSE Project英语openSUSE Project · YaST · ZYpp  · OpenSUSE Build Service英语OpenSUSE Build Service
訓練與檢定
Certified Novell Administrator · Certified Novell Engineer
重要人士
Drew Major英语Drew Major · Dennis Fairclough英语Dennis Fairclough · Ray Noorda英语Ray Noorda · Ronald Hovsepian英语Ronald Hovsepian · 埃里克·施密特
 
编译包(二进制
Linux
格式
Dpkg
RPM
tarball
  • slapt-get英语slapt-get
  • slackpkg英语slackpkg
  • netpkg英语netpkg
  • swaret英语swaret
其他
MacOS
Windows
TrueOS
Solaris
  • IPS英语Image Packaging System
  • Pkgutil英语Pkgutil
嵌入式操作系统
行動作業系統
電子遊戲機
跨平台
  • Dpkg
  • IPS英语Image Packaging System
  • OpenPKG英语OpenPKG
  • pkgsrc英语pkgsrc
  • Zero Install英语Zero Install
  • IBM SmartCloud Enterprise英语IBM cloud computing#IBM SmartCloud
  • Nix
  • wpkg英语wpkg
  • Steam
插件
Google Chrome
Firefox
  • 附加组件
Z/OS
  • SMP/E英语SMP/E
 
非编译包(源代码
Linux
MacOS
混合系统
元包管理器英语Meta package managers
Python
  • PyPI
  • pip
  • easyinstall英语Setuptools#EasyInstall
  • PyPM英语Python Package Manager
  • Anaconda
  • Enthought Canopy英语Enthought
  • 列表级条目 列表英语List of software package management systems
  • 分类 分类
  • 共享资源页面 共享资源