Utvecklarna av openSUSE-projektet har offentliggjort en release av installatören Agama 10, som utvecklas för att ersÀtta det klassiska installationsgrÀnssnittet för SUSE och openSUSE, och som Àr anmÀrkningsvÀrt för att separera anvÀndargrÀnssnittet frÄn de interna komponenterna i YaST. Agama erbjuder möjlighet att anvÀnda olika frontend-alternativ, till exempel en frontend för att hantera installationen via ett webbaserat grÀnssnitt. För att testa den nya installatören har live-builds skapats för arkitekturerna x86_64, ppc64le, s390x och ARM64, som stöder installationen av alpha-versionen av openSUSE Leap 16, den stÀndigt uppdaterade versionen av openSUSE Tumbleweed och MicroOS-utgÄvan baserad pÄ containrar. Koden för installatörens komponenter distribueras under GPLv2-licensen och Àr skriven i Ruby, Rust och JavaScript/TypeScript.

De primÀra mÄlen med utvecklingen av Agama Àr att ÄtgÀrda de befintliga begrÀnsningarna i det grafiska grÀnssnittet, utöka möjligheterna att anvÀnda funktionaliteten i YaST i andra applikationer, avvika frÄn beroendet av ett enda programmeringssprÄk och uppmuntra till skapande av alternativa instÀllningar av samhÀllsrepresentanter. Installatören innehÄller funktioner sÄsom val av grundlÀggande uppsÀttning applikationer, konfiguration av nÀtverksanslutning, sprÄk, tangentbord, tidszon och lokaliseringsalternativ, förberedelse av lagringsenhet och partitionering, samt att lÀgga till anvÀndare i systemet.
För installation av paket, hÄrdvarukontroll, diskpartitionering och andra nödvÀndiga funktioner vid installationen fortsÀtter Agama att anvÀnda YaST-biblioteken, ovanpÄ vilka tjÀnster med ett abstraherande grÀnssnitt har implementerats för att möjliggöra Ätkomst till biblioteken genom ett enhetligt kommunikationsprotokoll baserat pÄ HTTP. Installatören anvÀnder en flertrÄdad arkitektur, vilket gör att anvÀndargrÀnssnittet inte blockeras under utförandet av andra uppgifter. Det grundlÀggande grÀnssnittet för installationshantering Àr byggt med hjÀlp av webteknologier. WebgrÀnssnittet Àr skrivet i JavaScript med hjÀlp av ramverket React och komponenterna PatternFly. TjÀnsten för meddelandeutbyte, samt den inbyggda http-servern Àr skriven i Ruby.
I den nya versionen:
- Möjligheten att generera en QR-kod som innehÄller en lÀnk för att öppna installatörens webgrÀnssnitt i webblÀsaren har lagts till, vilket gör det enklare att ansluta till installatören med smartphone.

- Syntaxhighlighting-komponenter har lagts till, som anvÀnds nÀr man redigerar konfigurationsfilen i JSON-format med kommandot "agama config edit". Som standard anropas Vim för redigering (genom miljövariabeln EDITOR kan en annan redigerare anges).

- I automatiskt installationslÀge har möjligheten att skapa LVM-partitionsgrupper, logiska LVM-partitioner samt pooler och LVM-partitioner med dynamisk lagringssÀttning (thin provisioning) implementerats. AnvÀndning av redan existerande logiska partitioner och partitionsgrupper stöds Ànnu inte. TvÄ lÀgen för automatisk borttagning av partitioner har lagts till - oförbehÄllsam borttagning och borttagning endast vid behov (nÀr det saknas plats för att skapa de angivna partitionerna).
- En bootparameter "agama.install_url" har lagts till, genom vilken en URL för paketinstallation kan anges som skiljer sig frÄn den som anges i konfigurationen.
- Det har gjorts möjligt att utveckla komponenter för installerarens webbgrÀnssnitt i Typescript. Framöver planerar utvecklarna stegvis att översÀtta koden frÄn JavaScript till Typescript efter behov.
- I webbgrÀnssnittet för att hantera tillstÄnd i asynkront lÀge anvÀnds ramverket TanStack Query.
- Storleken pÄ lagringsutrymmet som Àr tillgÀngligt för installation av ytterligare paket efter nedladdning i Live-lÀge har ökats frÄn 500 MB till 3,5 GB.
- För automatiserad testning av webbgrÀnssnittet har JavaScript-biblioteket Puppeteer anvÀnts istÀllet för systemet Playwright.
- Installationskomponenterna som körs frÄn kommandoraden har översatts frÄn DBus till anvÀndning av en HTTP-klient som kommunicerar med den inbyggda HTTP-servern i installatören.
KĂ€lla: opennet.ru


