ZYpp - ZYpp

ZYpp
Første udgivelse 14. januar 2006 ; For 15 år siden  ( 2006-01-14 )
Stabil frigivelse
17.25.8 / 24. februar 2021 ; For 33 dage siden  ( 24. februar 2021 )
Datalager Rediger dette på Wikidata
Skrevet i C ++
Operativ system Linux
Type Pakkeleder
Licens GNU General Public License
Internet side da .opensuse .org / Portal: Libzypp

ZYpp (eller libzypp ; "Zen / YaST Packages Patches Patterns Products" ) er en pakkehåndteringsmotor , der driver Linux-applikationer som YaST , Zypper og implementeringen af PackageKit til openSUSE og SUSE Linux Enterprise . I modsætning til nogle mere basale pakkeforvaltere giver det en tilfredsstillende løsning til at beregne pakkeafhængigheder. Det er et gratis og open source softwareprojekt sponsoreret af Novell og licenseret under vilkårene i GNU General Public License v2 eller nyere. ZYpp implementeres hovedsageligt på programmeringssprog C ++ .

Zypper er den oprindelige kommandolinjegrænseflade i ZYpp- pakkehåndtering til installation, fjernelse, opdatering og forespørgsel på softwarepakker til lokale eller eksterne medier (netværk). Dens grafiske ækvivalent er YaST- pakkehåndteringsmodulet. Det er blevet brugt i openSUSE siden version 10.2 beta1. I openSUSE 11.1 nåede Zypper version 1.0. Den 2. juni 2009 meddelte Ark Linux, at den har afsluttet sin gennemgang af afhængighedsløsere og har valgt ZYpp og dets værktøjer til at erstatte den aldrende APT-RPM , som den første distribution, der gør det. Zypper er også en del af de mobile Linux-distributioner MeeGo , Sailfish OS og Tizen .

Historie

Formål

Efter de på hinanden følgende opkøb af Ximian og SuSE GmbH i 2003 besluttede Novell at fusionere begge pakkehåndteringssystemer, YaST- pakkehåndtering og Red Carpet , i en bedste fremgangsmåde, da de to løsninger hidtil blev brugt hos Novell. Ser man på de eksisterende open source-værktøjer og deres modenhed til rådighed tilbage i 2005, opfyldte ingen kravene og var i stand til at arbejde glat med den eksisterende Linux-administrationsinfrastruktursoftware udviklet af Ximian og SUSE, så det blev besluttet at få de bedste ideer fra eksisterende stykker og arbejde på en ny implementering. Libzypp, det resulterende bibliotek, var planlagt til at være softwarestyringsmotoren til SUSE-distributionerne og Linux Management-komponenten i Novell ZENworks Management-pakken.

Tidlige dage

Libzypps solver var en port fra Red Carpet solver, som blev skrevet for at opdatere pakker i installerede systemer. Brug af det til den fulde installationsproces bragte det til dets grænser, og tilføjelse af udvidelser som understøttelse af svage afhængigheder og programrettelser gjorde det skrøbeligt og uforudsigeligt. Selvom denne første version af ZYpps solver fungerede tilfredsstillende, førte det på virksomhedens virksomhedsprodukter med den koblede ZMD-dæmon til en openSUSE 10.1-udgivelse, der kom ud i maj 2006 med en systempakke, der ikke fungerede som forventet. I december 2006 korrigerede openSUSE 10.2-udgivelsen nogle mangler ved den tidligere udgivelse ved hjælp af den reviderede ZYpp v2. ZMD blev efterfølgende fjernet fra 10.3-udgivelsen og forbeholdt kun virksomhedens Enterprise-produkter. Mens ZYpp v3 forsynede openSUSE med en relativt god pakkehåndtering, svarende til andre eksisterende pakkehåndtering, led den af ​​nogle mangler i implementeringen, hvilket i høj grad begrænsede dens hastighedsydelse.

SAT solver integration

Et område, hvor libzypp havde brug for forbedring, var hastigheden på afhængighedsløseren. libsolv skrives og frigives under den reviderede BSD-licens .

Projekter som Optimal Package Install / Uninstall Manager (OPIUM) og MANCOOSI forsøgte at løse afhængighedsløsningsproblemer med en SAT-løsning . Traditionelle løsere som Advanced Packaging Tool (APT) viser undertiden uacceptable mangler. Det blev besluttet at integrere SAT-algoritmer i ZYpp-stakken; de anvendte solveralgoritmer var baseret på den populære minisat-solver.

SAT-løsningens implementering, som den vises i openSUSE 11.0, er baseret på to store, men uafhængige blokke:

  • Brug af en dataordbogstilgang til at gemme og hente oplysninger om pakke og afhængighed. Der blev oprettet et nyt solv-format, der lagrer et lager som en strengordbog, en relationsordbog og derefter alle pakkeafhængigheder. Læsning og fletning af flere solvopbevaringssteder tager kun millisekunder.
  • Brug af tilfredsstillelse til beregning af pakkeafhængigheder. Det boolske tilfredshedsproblem er et velundersøgt problem med mange tilgængelige løsningsmaskiner. Det er meget hurtigt, da kompleksitet til pakkeløsning er meget lav sammenlignet med andre områder, hvor der bruges SAT-løsere. Det har heller ikke brug for komplekse algoritmer og kan give forståelige forslag ved at beregne bevis på, hvorfor et problem er uløseligt.

Efter flere måneders arbejde er benchmarkresultaterne for denne fjerde ZYpp-version, der er integreret med SAT-løseren, mere end opmuntrende, idet YaST og Zypper går foran andre RPM-baserede pakkeforvaltere i hastighed og størrelse.

Se også

Referencer

eksterne links