From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Andere Sprachen
Deutsch ; English ; français ;
Diese Seite wurde im März 2019 von wiki.mageia.org/de/ übernommen und erweitert. Für die ursprüngliche/n Seite/Autoren siehe hier. Hierbei handelt es sich um eine Übersetzung aus dem englischen.


Einleitung:
Diese Seite soll eine Einführung für neue Mitglieder sein. Es kann sehr anstrengend sein, herauszufinden wo man beginnen soll, insbesondere wenn du zuvor noch nie etwas mit dem Packen zu tun gehabt hast. Dies ist außerdem ein Platz an dem wir unsere Tipps und Tricks teilen können und es den neuen (und auch alten!) Mitglieder leichter machen können, ein QA Testen für Mageia durchzuführen. Kannst du diese Seite mit neuen Tipps erweitern, dann lass dich nicht extra einladen und beginne mit dem Schreiben.

Die Wiki

Die erste Stelle auf der nachgesehen werden soll, ist hier auf der Wiki. Du findest hier Links zu Testprozeduren indem du auf dem QA-Teamportal nachsiehst. Idealerweise sollten wir dies Seite mit Tipps und Tricks öfters überarbeiten, es könnte eine sehr wertvolle Ressource daraus gemacht werden. Bisher haben nur sehr wenige etwas dazu beigetragen. Wenn du aber dies liest, und eine Prozedur suchst, diese aber hier nicht findest, eine zweite Lösung oder eine bessere Lösung findest, so füge diese bitte hier ein. Jeder der einen Zugang zu Mageia hat, kann diese Wiki verändern. D.h. jeder der sich z.B. in den Foren, oder bei Bugzilla anmelden kann. Eine Mageia Identifikation kann auch verwendet um sich an der Mageia Webseite anzumelden.

Bugzilla - Man pages - Google

Ein guter Platz um mit der Suche nach einem Weg zum Testen eines Pakets zu finden ist Bugzilla, um zu sehen was bisher geschehen ist. Sicherlich ist hier nicht alles zu finden, aber es gibt einige Pakete die regelmäßig aktualisiert werden, und der Rückblick auf vorhergehende Aktualisierungen kann schon ein guter Ansatz sein, wie man mit dem Testen dieses Pakets beginnen kann.

Du kannst auch nach bereits behobenen Fehlern suchen, die sich auf das von dir gesuchte Paket beziehen. Dies ist ganz leicht, indem du auf den Knopf Search klickst, anstatt etwas in die Suchbox eingibst. Verwende Simple Search und wähle closed als Status. Du kannst auch Mageia als Produkt wählen um die Suche einzuschränken.


Vergiss aber auch nicht die man page und Google.

$ man <paket>

Du möchtest manchmal herausfinden das keine man page existiert, so kannst du das Kommando, das du testen willst mit einem --help am Ende ausführen. So z.B...

$ man --help

URPM-was?

Urpm Werkzeuge sind sehr mächtig. Es sind viele Möglichkeiten verfügbar jedoch nur ein kleiner Teil ist es, worüber man bezüglich des QA besorgt sein müsste. Du kannst eine Menge Informationen über die verschiedenen Werkzeuge hier finden. Es lohnt sich, dies zu lesen. Du kannst die man Pages zu jedem Werkzeug lesen,

z.B.

$ man urpmi

Nützliche Pseudonyme

Es gibt hier einige Pseudonyme, die nützlich sein können wenn du QA-Aufgaben ausführst.

Diese Pseudonyme sollten in der Datei /root/.bashrc verwendet werden.

Nach dem Einfügen musst du dich ab- und wieder anmelden.

Wenn du glaubst dass es noch andere nützliche Pseudonyme gibt, so füge diese bitte ein!

# QA Pseudonyme zum aktivieren, deaktivieren und Aktualisieren von core, nonfree und tainted aktualisierungs-Testmedien.

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 ist unser Freund

$ urpmq -i <package>

Urpmq benötigt keine root-Rechte. Es kann als normaler Anwender ausgeführt werden, Durch das $-Zeichen, dass du als deine Eingabeaufforderung in einer Konsole siehst wenn du als normaler Anwender angemeldet bist. Dies ist die grundlegende Notation und du wirst es in der gesamten Wiki sehen. Ein Kommando das als root ausgeführt wird, wird durch das #-Zeichen angezeigt.


Dieses Kommando zeigt nützliche Informationen über ein Paket, inklusive einer Beschreibung, der Quell rpm und der Architektur (i586, x86_64 oder noarch) sowie der Gruppe, sodass du eine Ahnung davon erhältst wofür es verwendet wird.


$ urpmq –whatrequires <paket>


Die Verwendung von –whatrequires zeigt dir eine Liste der Pakete der Pakete die für das von dir gesuchte Paket benötigt werden. Dies kann sehr nützlich sein, wenn es keinen augenscheinlichen Weg gibt ein Paket direkt zu testen wenn es aktualisiert wurde. Du kannst ein Paket verwenden, das dieses Paket verwendet um es zu testen. Dies ist oft hilfreich wenn du Bibliotheken testest.


$ urpmq –whatrequires-recursive <paket>


Dies gibt eine Liste an Paketen zurück die das von dir gesuchte Paket benötigen sowohl der anderen Pakete die es anfordern. Diese Liste kann unter Umständen recht lang werden! Aber ebenso hilfreich sein.


urpmf ist ebenfalls unser Freund

Es ist nicht immer eindeutig klar welche Befehle ein Paket enthält. urpmf kann auf zwei Weisen verwendet werden. Es kann den Inhalt eines Pakets auflisten aber auch das Paket finden, auf das sich eine bestimmte Datei bezieht.


Verwende urpmf zur Suche nach Kommandos die durch ein Paket installiert wurden.


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


Dies listet alle durch das Paket installierten Dateien, im Verzeichnis /usr/bin/ auf, wo sich normalerweise die Anwenderkommandos befinden. Du kannst aber auch /usr/sbin oder auch nur bin oder sbin verwenden. urpmf führt eine unscharfe Suche nach Paketen aus. Dies bedeutet dass es alle Resultate zeigt, in dem deine gesuchte Zeichenkette enthalten ist. So gibt z.B. die Suche nach wireshark auch wireshark-tools zurück, so dass du sehr vorsichtig sein musst, wenn du die Resultate liest.


Musst du ein Paket finden aus dem eine bestimmte Datei stammt ...


$ urpmf /pfad/zur/datei

Auch RPM ist unser Freund

Es gibt aber auch Momente indem du herausfinden willst ob ein Paket installiert ist oder nicht, oder einfach herausfinden willst welche Pakete du installiert hast um diese nach einer Zeichenkette zu durchsuchen.

rpm kann dazu verwendet werden. Die beiden nachfolgenden Beispiele zeigen zuerst wie du sehen kannst ob ein bestimmtes Paket installiert ist und das zweite Beispiel zeigt wie du all deine installierten Pakete durchsuchen kannst.

$ rpm -q <paket>

$ rpm -qa | grep <zeichenkette>

Pakete downgraden ohne den halben Desktop zu löschen

Während des testens musst du manchmal zu einer früheren bestehenden Version eines Pakets zurückkehren, wenn etwas nicht funktioniert und du musst hierbei überprüfen ob es zum Beispiel ein neues Problem ist oder ob das Problem von wo anders her auftritt. Manchmal können Abhängigkeiten ein Problem verursachen, zum Beispiel möchtest du etwas entfernen, was die eine Hälfte deines verwendeten Desktops benötigt. Es wird fragen ob die Hälfte deines Desktops entfernt werden soll.

Keine Angst. Es gibt eine Möglichkeiten zum Downgrade.

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

Zum Beispiel auf einem 64-Bit System, auf dem du sudo-1.8.12-1 aus dem Test-Repository testest und du nun zu der ursprünglichen Veröffentlichungsversion sudo-1.8.8-3 zurückkehren möchtest, würde der Befehl wie folgt lauten:

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

Eine Alternative wäre das Repository festzulegen, auf dessen Stand ein Downgrade durchgeführt werden soll:

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

oder falls das Paket Abhängigkeiten zu anderen Repositorys besitzt:

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

Du kannst auch einen anderen, schmutzigeren Weg verwenden: Erzwinge das entfernen der genannten RPM ungeachtet der anderen RPMs die davon abhängen. Dies wird dazu führen, dass deine RPM Datenbank sich in einem inkonsistenten Zustand befindet (führe in diesem Zustand keinen Neustart aus) bis du die RPM in der gewünschten Version installiert hast.

# rpm -e --nodeps <package>

Perl Module

Perl Module sind typische "CamelCase" und case sensitve und unsere gepackten Perl Module sehen ähnlich wie perl-FileMineInfo oder perl-DBD-SQLite aus, was schwierig sein könnte den Paketnamen herauszufinden, welches das Perl-Modul benötigt.

In einem Script werden die benötigten Perl-Module normalerweiße in der nähe des oberen Abschnitts aufgelistet und schauen ähnlich wie folgt aus

use IO::Socket
use Net::Patricia

Falls du glaubst, dass dir ein Perl-Modul fehlt und du möchtest herausfinden, welches es ist oder du weißt, dass du etwas wie Net::Patricia benötigst und du möchtest herausfinden, welches Paket dieses beinhaltet, dann kannst du entweder den folgenden Befehl verwenden...

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

oder

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

Eines dieser Befehler findet das Paket, welches benötigt wird, in diesem Fall perl-Net-Patricia. perl(Net::Patricia) ist das, was als virtuell benötigt oder virtuelle Abhängigkeit bekannt ist, als gegensatz zu einer normalen Abhänigkeit, die als Paketname angegeben wird.

Manchmal wirst du etwas verwirrende Ausgaben sehen, die aussehen, als würden diese sich wiederholen und mit | getrennt werden. Es werden verfügbare Optionen aufgelistet, die die virtuelle Abhängigkeit betreffen. In diesem Fall zeigt es zwei Optionen, welche es mehrmals in den Repositorys gefunden hat. Es listet Dinge auf, die auch als Aktualisierung, sowie als Veröffentlichungs-Version gefunden wurden so kann auch das gleiche Paket mehrmals angezeigt werden.

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

Gnome

Seit Gnome 3.12. erstellt Gnome keine /var/log/Xorg.0.log Datei mehr für Anmeldungen an X. Die Information wird nun im Journale gespeichert. Du kannst journalctl verwenden, um die gleichen Informationen zu erhalten und diese in eine Datei speichern, um diese in einen Bugreport einzufügen.

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

In diesem Fall muss <YourUsername> mit deinem aktuellen Benutzernamen ersetzt werden.

Kerneloptionen

Kerneloptionen können im Grub/Grub2 Bootbildschirm verwendet werden um Optionen dem Kernel beim Startvorgang zu übergeben. Dies kann nützlich sein um GPU Probleme, ACPI Probleme etc. zu umgehen. Es kann auch dafür genutzt werden um bestimmte Treiber auf eine Blacklist zu setzten oder ein Unterbrechung zu einem bestimmten Zeitpunkt des Startvorgangs auszulösen.

Siehe hierfür die Seite Wie man Kerneloptionen einstellt für weitere Informationen.

Verwendete Bibliotheken

lsof (list open files) kann dazu verwendet werden um gemeinsam verwendete Bibliotheken aufzulisten, die von aktuell laufenden Anwendungen verwendet werden.

Zum Beispiel bei der Suche nach libpixman mit 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


Zurück zum QA Teamportal