From Mageia wiki
Jump to: navigation, search

Returm to the QA Team Portal

Drakconf multiflag.png
Other languages
Deutsch; English; français; Nederlands ;
In het kort:
Deze pagina is bedoeld om nieuwe leden wat richtlijnen te geven. Het kan lastig zijn om te weten waar u moet beginnen, vooral als u nog nooit eerder een pakket bent tegengekomen. Dit is een plek waar we onze tips en trucs kunnen delen en het voor nieuwe leden (en oude) makkelijker kunnen maken om QA-tests voor Mageia uit te voeren. Als u iets kunt verbeteren, doe dat dan alstublieft.

De wiki

De eerste plek om te kijken is hier op de wiki. U kunt links naar testprocedures vinden via de QA Team portal. Eigenlijk zouden we deze vaker moeten voltooien, het zou een waardevolle bron kunnen worden. Er zijn er tot nu toe maar een paar toegevoegd, maar als u dit leest en op zoek bent naar een procedure, overweeg dan om deze daar toe te voegen als u er een vindt. Iedereen met een Mageia-identiteit kan de wiki bewerken, dat betekent iedereen die bijvoorbeeld kan inloggen op de forums of bugzilla. Een Mageia-identiteit kan worden gebruikt om in te loggen op elke Mageia-website.

Bugzilla - Man pages - Google

Een goede plek om te beginnen als u op zoek bent naar een manier om een ​​pakket te testen, is om bugzilla te doorzoeken om te zien hoe het eerder werd gedaan. Natuurlijk zal niet alles daar zijn, maar er zijn enkele pakketten die relatief vaak updates ontvangen en terugkijken naar eerdere updates geeft meestal een goed idee hoe u deze update ook kunt testen.

U kunt zoeken naar gesloten bugs met betrekking tot het pakket dat u wilt testen. Het is het gemakkelijkst om dat te doen door op de link Zoeken op bugzilla te klikken in plaats van het gewoon in het zoekvak in te voeren. Met behulp van Eenvoudig zoeken selecteert u gewoon gesloten als de status. U kunt ook Mageia selecteren voor Product om de zoekopdracht te verfijnen.

Vergeet ook de manpagina en Google niet.

$ man <package>

Soms zult u merken dat u, als er geen manpagina is. De opdracht die u wilt testen kunt u dan gebruiken met --help aan het einde. Bijvoorbeeld,

$ man --help

URPM-wat?

Urpm-gereedschappen zijn erg krachtig. Er zijn veel opties beschikbaar, maar slechts een kleine subset waar we ons zorgen over hoeven te maken in QA. U kunt hier veel informatie vinden over verschillende gereedschappen. Het is de moeite waard om te lezen. U kunt ook de manpagina's voor elk van hen bekijken

bijv.

$ man urpmi

Handige aliassen

Hier zijn enkele aliassen die u wellicht handig vindt bij het uitvoeren van QA-taken.

Deze aliassen moeten in het bestand /root/.bashrc worden geplaatst

Nadat u ze hebt toegevoegd, moet u uitloggen en opnieuw inloggen.

Als u er nog meer kent waarvan u denkt dat ze nuttig kunnen zijn voor anderen, voeg ze dan toe.

# QA aliases for enabling, disabling and updating core, nonfree and tainted updates testing medias.

alias ecupdt='echo -e "Enabling Core Updates Testing\n" && urpmi.update --no-ignore "Core Updates Testing"'
alias dcupdt='echo -e "Disabling Core Updates Testing\n" && urpmi.update --ignore "Core Updates Testing"'
alias cupdt='echo -e "Updating Core Updates Testing\n" && urpmi.update "Core Updates Testing"'
alias enfupdt='echo -e "Enabling Nonfree Updates Testing\n" && urpmi.update --no-ignore "Nonfree Updates Testing"'
alias dnfupdt='echo -e "Disabling Nonfree Updates Testing\n" && urpmi.update --ignore "Nonfree Updates Testing"'
alias nfupdt='echo -e "Updating Nonfree Updates Testing\n" && urpmi.update "Nonfree Updates Testing"'
alias etupdt='echo -e "Enabling Tainted Updates Testing\n" && urpmi.update --no-ignore "Tainted Updates Testing"'
alias dtupdt='echo -e "Disabling Tainted Updates Testing\n" && urpmi.update --ignore "Tainted Updates Testing"'
alias tupdt='echo -e "Updating Tainted Updates Testing\n" && urpmi.update "Tainted Updates Testing"'

Urpmq is uw vriend

$ urpmq -i <package>

Urpmq vereist geen root-rechten. Het commando kan worden uitgevoerd als een normale gebruiker, vandaar het $ teken, dat u zult zien als uw prompt in een console, wanneer u bent ingelogd als een normale gebruiker. Dit is een algemene notatie en u zult het overal in de wiki zien. Een opdracht die wordt uitgevoerd als root wordt voorafgegaan door een # teken, wat de root prompt is.

Deze opdracht toont nuttige informatie over een pakket, inclusief een beschrijving, bron-rpm en architectuur (i586, x86_64 of noarch), en de groep, wat u misschien een idee geeft waarvoor het wordt gebruikt.

$ urpmq –whatrequires <package>

Als u –whatrequires gebruikt, krijgt u een lijst met pakketten die het pakket vereisen waarnaar u zoekt. Dit kan handig zijn als er geen voor de hand liggende manier is om het pakket dat wordt bijgewerkt rechtstreeks te testen. U kunt dan een pakket gebruiken dat dit pakket gebruikt om het te testen. Dit is vaak handig bij het testen van lib's.

$ urpmq –whatrequires-recursive <package>

Deze retourneert een lijst met pakketten die het pakket nodig hebben waarnaar u zocht en ook alle pakketten die ze ook nodig hebben. De lijst kan behoorlijk lang zijn! Het kan echter nuttig zijn.

urpmf is ook uw vriend

Het is niet altijd precies duidelijk welke opdrachten een pakket bevat. urpmf kan op twee manieren worden gebruikt. Het kan de inhoud van pakketten weergeven, maar ook het pakket vinden waartoe een bepaald bestand behoort.

Gebruik urpmf om te zoeken naar opdrachten die door een pakket zijn geïnstalleerd.

$ urpmf <pakket> | grep /usr/bin/

Hiermee worden alle bestanden weergegeven die door het pakket zijn geïnstalleerd in /usr/bin, waar normale gebruikersopdrachten naartoe gaan. U kunt dit vervangen door /usr/sbin of gewoon bin of sbin. urpmf voert een fuzzy zoekopdracht uit voor pakketten, wat betekent dat het resultaten zal tonen voor alles wat uw zoekterm bevat. bijvoorbeeld Zoeken naar wireshark, geeft ook resultaten voor lib64wireshark-devel, wireshark-libvirt, wireshark-tools, dus let op wanneer u de resultaten leest.

Als u de bron van een specifiek bestand moet vinden, in dit geval voor het bestand urpmf application-wireshark-doc.png, is het volgende pakket wireshark.

$ urpmf /pad/naar/bestand

RPM is ook uw vriend

Er zijn momenten waarop u wilt weten of u een pakket hebt geïnstalleerd of niet, of wilt weten welke pakketten u hebt geïnstalleerd en ze wilt doorzoeken op een tekenreeks.

Rpm kan in deze omstandigheden worden gebruikt. De twee onderstaande voorbeelden tonen eerst hoe u kunt zien of een bepaald pakket is geïnstalleerd; het tweede voorbeeld laat zien hoe u al uw geïnstalleerde pakketten kunt doorzoeken.

$ rpm -q <pakket>

$ rpm -qa | grep <string>

Een pakket downgraden zonder de helft van u bureaublad te verwijderen

Tijdens het testen moet u soms terug naar de bestaande versie van een pakket, als er iets mis is en u moet controleren of het bijvoorbeeld een regressie is of dat het ergens anders problemen veroorzaakt. Soms kunnen afhankelijkheden een probleem zijn, bijvoorbeeld als u iets wilt verwijderen dat nodig is voor de helft van u bureaublad. Het zal vragen om de helft van u bureaublad te verwijderen!

Wees niet bang. Er is een manier om het te downgraden.

# urpmi --downgrade <package><target-version>

Als u bijvoorbeeld op een 64-bits systeem sudo-1.8.12-1 hebt getest vanuit de testing repo en wilt terugkeren naar de versie in release, sudo-1.8.8-3, dan zou de opdracht zijn:

# urpmi --downgrade sudo-1.8.8-3.mga4.x86_64

Een alternatief is om de repo te specificeren die de versie bevat waarnaar moet worden gedowngraded:

urpmi --downgrade --media "Core Release" sudo

of als het pakket afhankelijkheden heeft in een andere repo:

urpmi --downgrade --search-media "Core Release" sudo

U kunt een andere, viezere, manier gebruiken: forceer verwijdering van een bepaalde RPM, ongeacht andere RPM's die ervan afhankelijk zijn. Dit laat uw RPM-database in een inconsistente staat achter (start niet opnieuw op in die staat) totdat u de RPM opnieuw installeert in de gewenste versie.

# rpm -e --nodeps <package>

Downgrade alles vanuit testing repositories

Om uw systeem zodanig te synchroniseren, dat het alleen pakketten en versies bevat van de release en update repositories.

  1. Lees over this usage of DNF.
  2. dnf offline-distrosync download --disablerepo=\*testing\* --allowerasing

Perl-modules

Perl-modules zijn doorgaans CamelCase en hoofdlettergevoelig en onze verpakte perl-modules zien er ongeveer uit als perl-FileMineInfo of perl-DBD-SQLite, dus het kan moeilijk zijn om de pakketnaam te raden op basis van de perl-modulerequire.

In een script worden benodigde perl-modules meestal bovenaan weergegeven en zien er ongeveer zo uit:

use IO::Socket
use Net::Patricia

Als u merkt dat u een perl-module mist en u wilt weten wat het is of als u weet dat u iets als Net::Patricia nodig hebt en wilt weten welk pakket dat biedt, kunt u een van de onderstaande opdrachten gebruiken..

$ urpmf --provides --literal 'perl(Net::Patricia)'
perl-Net-Patricia:perl(Net::Patricia)

of

$ urpmq --whatprovides 'perl(Net::Patricia)'
perl-Net-Patricia

Een van deze twee zou het daadwerkelijk benodigde pakket vinden, in dit geval perl-Net-Patricia. De perl(Net::Patricia) is wat bekend staat als een virtuele requirement of virtuele afhankelijkheid, in tegenstelling tot een normale require die een pakketnaam zou zijn.

Soms ziet u verwarrende uitvoer zoals hieronder, waar het zichzelf schijnbaar herhaalt, gescheiden door |'s. Het geeft in feite beschikbare opties weer die voldoen aan de virtuele require. In dit geval geeft het twee opties weer die het meerdere keren in de repositories heeft gevonden. Het commando geeft onderwerpen weer die het vindt in updates en release en kan dus hetzelfde pakket meerdere keren weergeven.

$ urpmq --whatprovides 'perl(ExtUtils::Packlist)'
perl-ExtUtils-Install|perl-ExtUtils-Install|perl|perl|perl

Gnome

Vanaf Gnome 3.12 maakt gnome geen /var/log/Xorg.0.log-bestand meer voor X-logging. De informatie wordt nu opgeslagen in het journaal. U kunt journalctl gebruiken om dezelfde informatie te herstellen en deze op te slaan in een bestand dat kan worden toegevoegd aan een bugrapport.

# journalctl _COMM=X > /home/<YourUsername>/journal-xorg.txt
# chown <YourUsername> /home/<YourUsername>/journal-xorg.txt

Uiteraard moet u, wanneer u dit doet, <UwGebruikersnaam> vervangen door uw werkelijke gebruikersnaam.

Kernelopties

Kernelopties kunnen worden gebruikt in de grub/grub2-bootfase om opties door te geven aan de kernel wanneer deze opstart. Dit kan handig zijn om GPU-problemen, ACPI-problemen en PCI-problemen te omzeilen. Het kan zelfs worden gebruikt om bepaalde drivers op een zwarte lijst te zetten of een breekpunt in het opstartproces te forceren.

Zie de pagina kernel options voor meer informatie.

Gebruikte bibliotheken

lsof (list open files) kan worden gebruikt om de gedeelde bibliotheken te vermelden die door een applicatie worden gebruikt die momenteel wordt uitgevoerd.

Bijvoorbeeld, zoeken naar libpixman met firefox:

# lsof | grep firefox | grep libpixman
firefox    8801          user  mem    REG    8,2   707048     137291 /usr/lib64/libpixman-1.so.0.32.8
firefox    8801  8841    user  mem    REG    8,2   707048     137291 /usr/lib64/libpixman-1.so.0.32.8

Terug naar de QA Team portal