Contents
- 1 Inleiding
- 2 Installatie
- 3 Instructies voor het gebruik
- 3.1 Een mirror selecteren
- 3.2 De bronmedia selecteren
- 3.3 De locatie van de lokale repository selecteren
- 3.4 De te testen pakketten selecteren
- 3.5 Synchroniseren en inschakelen van de lokale repository
- 3.6 De lokale repository uitschakelen
- 3.7 Pakketten downgraden na het testen
- 3.8 Dual architecture testing
- 3.9 Extra controles
- 3.10 Opgeslagen instellingen
- 4 Niet-standaardgebruik
Inleiding
Bij het testen van een update is de aanbevolen procedure om alleen de pakketten te installeren die in de update-aanvraag (update request) staan. Dit is omdat dit de enige pakketten zijn die naar de updates
-media worden gepusht wanneer de update is gevalideerd.
Als een tester de updates_testing
-media inschakelt en handmatig de pakketten selecteert die moeten worden bijgewerkt, is er een kans dat andere pakketten die aanwezig zijn in updates_testing
automatisch worden geïnstalleerd (vanwege pakketafhankelijkheden). Meestal veroorzaakt dit geen problemen, maar als de update daadwerkelijk een aantal van die extra pakketten vereist, zullen gebruikers problemen ondervinden zodra de update wordt gepusht, omdat die extra pakketten niet noodzakelijkerwijs beschikbaar zullen zijn in de updates
-media.
Om dergelijke problemen te helpen voorkomen, is het gereedschap QA Repo
gemaakt. Dit gereedschap pakt een lijst met pakketten die door de tester zijn geleverd en maakt een lokale repository (pakketdepot) op de machine van de tester die alleen deze pakketten bevat. Vervolgens schakelt het QA Repo-gereedschap die repository in als een update-medium, zodat wanneer de tester de software-update-GUI (of urpmi –auto-select
) uitvoert, die pakketten beschikbaar zijn als updates. Mits de tester nooit de media updates_testing
inschakelt, is er geen gevaar dat andere pakketten in updates_testing
worden geïnstalleerd.
Om problemen volledig te voorkomen, moeten de bijgewerkte pakketten opnieuw worden gedowngraded, voordat er wordt doorgegaan met het testen van een andere update-aanvraag. Momenteel moet dit nog steeds handmatig worden gedaan, maar het gereedschap QA Repo
kan u een opdracht voorstellen om dit te bereiken. Als u test in een virtuele machine, kunt u in plaats daarvan klonen of snapshots gebruiken om de wijzigingen terug te draaien.
Installatie
Het gereedschap QA Repo
kan worden geïnstalleerd in het systeem van de tester door het qarepo
-pakket te installeren. Let op: als u test in een virtuele machine, moet het pakket worden geïnstalleerd in het gastsysteem.
Meestal draait het gereedschap QA Repo
zonder speciale privileges, maar om de lokale repository in of uit te schakelen als updatemedium, zijn root-privileges vereist. QA Repo vraagt alleen om deze privileges wanneer deze nodig zijn, en gebruikt hierbij polkit om de authenticatie uit te voeren (dit is de authenticatiedialoog die u ziet wanneer u andere programma's uitvoert die root-privileges vereisen, zoals het Mageia Control Center MCC).
Omdat de polkit-authenticatie al na een paar minuten verloopt, kunt u ervoor kiezen uzelf toe te voegen aan de qarepo
-groep (via de gebruikersbeheertool in de MCC of de opdracht usermod
). Dit zorgt ervoor dat polkit automatisch het gereedschap QA Repo
autoriseert om de acties uit te voeren die nodig zijn, zonder dat u een wachtwoord hoeft in te voeren, mits de tool door u wordt uitgevoerd als een actieve lokale gebruiker.
Let op: Voor Mageia 6 is het qarepo pakket beschikbaar in core/backports . Voor Mageia 7 en hoger is het beschikbaar in core/release .
|
Instructies voor het gebruik
Het gereedschap QA Repo
kan worden gestart door deze te selecteren in de Tools
sectie van het menu desktop applicaties, of door qarepo
in te voeren op de opdrachtregel. Als u het commando uitvoert vanaf de opdrachtregel, ziet u de uitvoer van de opdrachten die QA Repo
uitvoert om de lokale repository te maken, wat handig kan zijn om fouten te diagnosticeren als het gereedschap niet doet wat u verwacht.
Zodra u bent begonnen, krijgt u de volgende grafische gebruikersschil (Graphical User Interface, GUI) te zien:
Een mirror selecteren
Op de eerste rij van de GUI staat een tekstvak waarmee u de URL van de mirror kunt invoeren die u wilt gebruiken om pakketten te downloaden. Dit kan een http://
, ftp://
of rsync://
URL zijn, of een eenvoudig bestandspad (d.w.z. zonder het voorvoegsel file://
) naar een mirror op uw lokale bestandssysteem. In alle gevallen moet dit verwijzen naar het hoogste niveau van de distributieboom (de directory met de subdirectory distrib
).
De bronmedia selecteren
Op de tweede rij van de GUI staat een tekstvak waarmee u het Mageia-releasenummer kunt invoeren dat u wilt testen en vakjes kunt aanvinken om te selecteren welke mediatypen zijn ingeschakeld (de core
-media zijn altijd ingeschakeld). Op de derde rij staat een uitrol-menu waarmee u kunt selecteren welke architectuur u test (i586
of x86_64
).
Het gereedschap QA Repo
downloadt alleen pakketten uit de secties updates_testing
van de geselecteerde media.
De locatie van de lokale repository selecteren
Op de derde rij van de GUI staat een tekstvak waarmee u de locatie van de directory kunt opgeven, die wordt gebruikt om de lokale repository op te slaan die is gemaakt door het gereedschap QA Repo
. Dit moet een absoluut pad zijn op uw lokale bestandssysteem. De directory wordt gemaakt als deze nog niet bestaat. De lokale repository wordt gemaakt als een subdirectory van deze directory, vernoemd naar de geselecteerde architectuur.
De te testen pakketten selecteren
Op de vierde rij van de GUI is er een tekstinvoervak waarmee u kunt selecteren welke pakketten moeten worden gedownload en opgeslagen in de lokale repository. Het wordt aanbevolen om de lijst met RPM-namen uit de update-aanvraag (update request) in Bugzilla te kopiëren en te plakken. De packager (verpakker) die de update heeft aangevraagd, zou een complete lijst voor elke architectuur hebben moeten verstrekt, zoals vermeld in het Mageia Herzieningen-beleid. De vermeldingen moeten ten minste de pakketnaam (package name) en het volledige versienummer bevatten; de architectuur en de extensie .rpm
worden automatisch gevonden als ze waren weggelaten.
Als u test binnen een VirtualBox-gast, is het handig om deze in te stellen op het gebruik van een bidirectioneel klembord. Hiermee kunt u de bug in de browser van de host oproepen, de pakketlijst uit de bug kopiëren en deze in de QA-repository van de gast plakken.
Synchroniseren en inschakelen van de lokale repository
Wanneer u wijzigingen aanbrengt in de bovenstaande selecties, verandert de knop Enable
(inschakelen) in de GUI in een knop Update
(bijwerken), en toont de statusregel onder het pakketselectievak Needs Update
(bijwerken nodig). Dit geeft aan dat de lokale repository momenteel niet de pakketten bevat die u hebt geselecteerd. Klik op de knop Update
om te beginnen met het downloaden van de gevraagde pakketten van de geselecteerde mirror (spiegelserver). Als dit lukt, verandert de knop Update
weer in een (grijze) knop Enable
; de statusregel luidt nu Enabled
. Uw lokale repository is nu ingeschakeld en u kunt beginnen met het installeren van de updates en het testen.
Als u de software media manager (of urpmq –list-media
) uitvoert, ziet u uw lokale repository verschijnen als QA Testing (32-bit)
of QA Testing (64-bit)
, afhankelijk van de architectuur die u hebt geselecteerd. Er zijn geen submedia in de lokale repository – alle geselecteerde pakketten worden in één medium opgeslagen, ongeacht van welke media ze zijn gedownload.
Als de synchronisatie mislukt, wordt een pop-up dialoog weergegeven met de reden voor de mislukking en de statusregel toont Update failed
. Probeer het probleem te verhelpen (bijvoorbeeld een verkeerd getypte pakketnaam) en klik op de knop Update
om het opnieuw te proberen.
De knop Clear
biedt een snelle manier om het pakketselectievak te wissen voordat u een nieuwe lijst met pakketten plakt. Let op dat de knop alleen het tekstvak leegmaakt – de lokale repository blijft ongewijzigd totdat u op de knop Update
klikt.
Wanneer u op de knop Update
klikt, worden alle pakketten die momenteel niet in het pakketselectievakje staan, uit de lokale repository verwijderd.
De lokale repository uitschakelen
Zodra de lokale repository (pakketdepot) is ingeschakeld, is de knop Disable
niet langer grijs. Als u op de knop Disable
klikt, wordt uw lokale repository uitgeschakeld en verwijderd uit de lijst met bekende softwaremedia, en wordt de statusregel onder het pakketselectievakje Disabled
weergegeven. De lokale repository blijft echter intact en kan opnieuw worden ingeschakeld door op de knop Enable
te klikken.
Pakketten downgraden na het testen
Zodra u klaar bent met het testen van een bepaalde update, wilt u de wijzigingen die u in uw testsysteem hebt aangebracht terugdraaien, zodat ze geen invloed hebben op latere tests. Als u op de knop Downgrade
klikt, verschijnt er een pop-up dialoog met een opdracht die u kunt uitvoeren om automatisch alle pakketten te downgraden die momenteel in het pakketselectievak staan en die op uw systeem zijn geïnstalleerd. Dit schakelt ook automatisch uw lokale repository uit als u dat nog niet hebt gedaan.
De downgrade vervangt de vermelde pakketten met de nieuwste versies die beschikbaar zijn in uw momenteel ingeschakelde urpmi-media. Controleer de lijst met pakketten waarvan urpmi
aankondigt dat het op het punt staat ze te vervangen, gewoon om er zeker van te zijn dat urpmi niet iets doet wat het niet zou moeten doen.
Dual architecture testing
Soms wilt u wellicht tegelijkertijd zowel 32-bits als 64-bits pakketten testen. Selecteer hiervoor eerst de i586
-architectuur en maak en activeer een lokale repository voor de 32-bits pakketten. Selecteer vervolgens de x86_64
-architectuur en maak en activeer een lokale repository voor de 64-bits pakketten. Als u de software media manager (of urpmq –list-media
) uitvoert, ziet u zowel QA Testing (32-bit)
als QA Testing (64-bit)
in de lijst.
U kunt vrij schakelen tussen architecturen in het gereedschap QA Repo
. Deze geeft altijd de status van de repository weer voor de momenteel geselecteerde architectuur.
Vergeet niet om de repository voor beide architecturen uit te schakelen wanneer u klaar bent met testen.
Extra controles
Als u updates_testing
media hebt ingeschakeld wanneer u op de knoppen Enable
, Update
of Download
klikt, verschijnt er een pop-up dialoog waarin u wordt gevraagd die media uit te schakelen voordat u het opnieuw probeert.
Opgeslagen instellingen
Behalve de lijst met pakketten, worden alle hierboven beschreven selecties opgeslagen in het bestand ~/.qareporc
wanneer u het gereedschap QA Repo
afsluit; ze worden opnieuw geladen wanneer u QA Repo de volgende keer start. Bij het opnieuw opstarten, als uw lokale repository al bestaat (zelfs als deze is uitgeschakeld), wordt het pakketselectievak gevuld met de huidige inhoud van de repository.
Niet-standaardgebruik
Wanneer een grote update wordt voorbereid (zoals de grote Plasma-update voor Mageia 6), kan er een periode zijn waarin de lijst met te testen pakketten voortdurend verandert (omdat bugs worden gevonden en opgelost); intussen is er geen definitieve lijst in Bugzilla. Om testen in deze omstandigheden te vergemakkelijken, worden de volgende extra functies ondersteund:
1. RPM-namen kunnen eenvoudige jokers bevatten (?
en *
), waardoor groepen van pakketten met dezelfde naam kunnen worden geselecteerd met één invoer in het pakketselectievak.
2. De optie fuzzy version
kan worden ingeschakeld, waardoor het versienummer in een RPM-naam automatisch wordt vervangen door een joker.
3. De optie add deps
kan worden ingeschakeld, wat automatisch alle pakketafhankelijkheden toevoegt die kunnen worden gevonden in de updates_testing
media.
Geen van deze functies mag worden gebruikt tijdens de laatste test en validatie van een updateverzoek, omdat ze het hoofddoel van de QA Repo
tool tenietdoen.