Pacman 3.5.1 udgivet og med vigtige ændringer

Udover at der er rettet mange fejl er der også nye funktioner som fx nyt pakkedatabase format, check af ledig diskplads før installation af pakker samt muligheden for at vælge specifikt hvilke pakker der ønskes installeret når man vælger at installere en gruppe. Det er især det nye database format der er vigtigt at notere sig og derfor er det også det der vil blive beskrevet i denne nyhed. Men først en forklaring om hvordan Pacman håndterer pakkedatabasen før version 3.5.1.

For at Pacman kan vide hvilke pakker der er mulige at installere samt hvilke pakker der er installeret på systemet er programmet nødt til at gemme en oversigt over disse ting. Ved Pacman gemmes disse informationer i 2 forskellige mappestrukturer hvor den ene mappe indeholder en mappe for hver pakke der er installeret på systemet og inde i denne mappe er der så 3 filer. Den anden mappestruktur har en mappe for hvert pakkearkiv (base, extra, community…) og inde i disse mapper er der så en mappe for hver pakke der tilbydes samt igen 3 filer i disse mapper. Måden disse mapper oprettes på er ved at Pacman henter en tar.gz fil ned fra serveren og udpakker denne. Det giver måske sig selv at denne filstruktur giver en hel del mapper med små filer og det har både fordele og ulemper. Den største ulempe er fragmentering således at disken skal lede rundt på hele harddisken for at få fat i alle filerne. En anden ulempe er at en harddisk er langt hurtigere til at læse en stor fil end mange små filer pga. den søgetid der skal til for at få fat i de enkelte filer. Jeg har selv foreslået mange at de laver en særskilt partion til /var/lib/pacman med ReiserFS for således at bruge et filsystem der er optimeret til mange mapper og små filer samt undgå at filerne bliver spredt ud på hele disken men holder sig inden for et meget lille område.

Det nye databaseformat der introduceres i Pacman 3.5.1 laver om på denne struktur. Ideen er at mapperne for hvert pakkearkiv ikke ændre sig når de først er hentet ned fra serveren. I den nye version af Pacman vil programmet derfor ikke længere pakke tar.gz filerne ud på disken men gemmer bare tar.gz filerne på disken. Eftersom disse fil fylder langt mindre (end den udpakkede mappestruktur) samt består af en enkelt fil per pakkearkiv kan computeren langt hurtigere indlæse disse større filer. Nutidens computere (samt computere der er 10 år gamle) har ikke noget problem ved at udpakke en tar.gz fil løbende og hastigheden er væsentlig højere end den tid det tager at skulle søge disken igennem efter mange små filer. De tests der foreløbigt er lavet viser en meget stor ydelsesforskel ved især pacman –Syu.

En anden database der også er lavet lidt om er den mappestruktur der er for alle pakker der er installeret på systemet. Det er ikke muligt at bruge samme tankegang som ved den anden database eftersom vi i denne laver løbende ændringer og det vil derfor ikke være nogen fordel med et tar.gz arkiv. Der arbejdes på en bedre løsning men indtil videre er der lavet den ændring at man er gået fra 3 filer i hver mappe til 2 filer. Denne ændring gør dog også at brugeren ikke bare lige kan opdatere Pacman og forvente at alt kører som det skal. Med Pacman 3.5.1 kommer der et script med navnet pacman-db-upgrade der konvertere den gamle mappestruktur til det nye format. Det kan ikke siges for lidt at det er meget vigtigt at køre denne kommando. (jeg forventer dog selv at Pacman også gør brugeren rigeligt opmærksom på dette trin).

Changelog kan findes her:
http://projects.archlinux.org/pacman.git/tree/NEWS

Detaljeret blog indlæg omkring Pacman 3.5.0 udgivelsen (på engelsk):
http://allanmcrae.com/2011/03/pacman-3-5-0-released/

Skriv en kommentar

Kopier venligst strengen 4aOYpz til nedenstående felt: