Andere Sprachen Deutsch ; English ; français ; |
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. |
Contents
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>
Alles von den Testing-Repositorien herunterstufen
Um Ihr System mit den Release- und Updates-Repositorien zu synchronisieren, damit dieses nur noch die Pakete von dort enthält.
- Lesen Sie die hierzu den Abschnitt zur Verwendung von DNF.
dnf offline-distrosync download --disablerepo=\*testing\* --allowerasing
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