Arch User Repository: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Mis (Diskussion | Beiträge)
Werner (Diskussion | Beiträge)
Kapitel "Hilfsprogramme für das AUR" erneuert – siehe auch Diskussion
Zeile 74: Zeile 74:
wobei <paketname> entsprechend zu ersetzen ist.
wobei <paketname> entsprechend zu ersetzen ist.


Die Datei [[PKGBUILD]] ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen.
Die Datei [https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD] ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen.
Ferner '''''muss''''' jeder Git-Commit die Datei ''.SRCINFO'' beinhalten.
Ferner '''''muss''''' jeder Git-Commit die Datei ''.SRCINFO'' beinhalten.
Diese kann mittels
Diese kann mittels
Zeile 80: Zeile 80:
oder {{ic|mksrcinfo}} aus dem Paket {{paket|pkgbuild-introspection}} erstellt werden.
oder {{ic|mksrcinfo}} aus dem Paket {{paket|pkgbuild-introspection}} erstellt werden.


==Hilfsprogramme für AUR==
==Hilfsprogramme für das AUR==
Es gibt eine Fülle von Hilfsprogrammen, die den Umgang mit dem AUR erleichtern. Sie verfolgen unterschiedliche Ziele.
===Allumfassende Hilfsprogramme===
Diese Programme decken vom automatischen Herunterladen über das Bauen bis zum Installieren alle Schritte ab, verstecken also den eigentlichen pacman-Aufruf vor dem Benutzer.
====[[yaourt]]====
Mit [[yaourt]] bietet das AUR ein sehr komfortables Shellskript, welches die oben genannten Schritte auf ein


  yaourt -S aur-beispiel-programm
Es gibt eine Reihe von Hilfsprogrammen, die das Arbeiten mit dem AUR erleichtern können. Die Hilfsprogramme verfolgen unterschiedliche Ziele und haben unterschiedliche Fähigkeiten, welche in dieser [https://wiki.archlinux.org/index.php/AUR_helpers#Comparison_table Tabelle] verglichen werden können.


reduziert.
Um ein AUR-Hilfsprogramm universell und sicher nutzen zu können, muss es einigen Anforderungen gerecht werden können. Wie man anhand der Tabelle ersehen kann, ist das nicht immer der Fall. Eine Reihe von Hilfsprogrammen scheitert bereits, wenn von einem PKGBUILD mehrere Pakete zu erstellen sind ([https://www.archlinux.org/pacman/PKGBUILD.5.html#_package_splitting Package Splitting]), was auch im AUR keine Seltenheit ist.


Aber Vorsicht: In der stabilen Version kann Yaourt nicht mit "split packages" umgehen, d.h. nicht alle Pakete aus dem AUR sind über Yaourt umstandslos installierbar.
===trizen===


====[[packer]]====
Das Programm ''trizen'' ist in der Programmiersprache ''Perl'' geschrieben und ein leichtgewichtiges, schnelles und universelles Werkzeug.
Ein weiteres Shellskript mit ähnlichem Funktionsumfang wie [[yaourt]].
===Hilfsprogramme, die Teilaspekte abdecken===


====Cower====
{{AUR|trizen}} kann aus dem [[AUR]] installiert werden. Sollte noch kein AUR-Hilfsprogramm zu diesem Zweck vorhanden sein, kann folgender Befehl mit normalen Nutzerrechten ausgeführt werden:
{{AUR|cower}} ist in C geschrieben und lädt die Tarbälle nur herunter. Es wird also weder gebaut noch installiert. Die Suche nach verfügbaren Updates ist möglich.
{{bc|<nowiki>git clone https://aur.archlinux.org/trizen.git && cd trizen && makepkg -si</nowiki>}}
Durch diesen Befehl werden das PKGBUILD und der Source Code heruntergeladen, das Paket gebaut und anschließend inklusive fehlender Abhängigkeiten installiert.


==Links==
''trizen'' erzeugt automatisch eine vorausgefüllte Konfigurationsdatei {{ic|~/.config/trizen/trizen.conf}}. Die dort einstellbaren Optionen werden in der Konfigurationsdatei erläutert.
* [http://aur.archlinux.org/index.php?setlang=de ArchLinux User-Community Repository (AUR)]
 
* [[Pacman]]
Der Start von ''trizen'' erfolgt mit normalen Nutzerrechten. Erst wenn der Build-Prozess eines Paketes abgeschlossen ist, fordert ''trizen'' per [[sudo]] erhöhte Rechte für eine Installation an.
* [[Abs|ABS]]
 
Pakete, die bei Updates aus dem AUR von ''trizen'' ignoriert werden sollen, können in der Datei {{ic|/etc/pacman.conf}} unter {{ic|IgnorePkg}} eingetragen werden.
 
Für ''trizen'' gibt es keinen Handbucheintrag, den man mit {{ic|man trizen}} aufrufen könnte. Die Hilfen zur Bedienung des Programmen sind in ''Hauptoptionen'', ''Sync-Optionen'' und ''Get-Optionen'' untergliedert:
trizen -h
trizen -Sh
trizen -Gh
 
Die Befehlslogik von ''trizen'' deckt sich weitgehend mit [[pacman]], was die Bedienung der Grundfunktionen einfach und transparent macht. Eine kleine Auswahl gängiger Befehle:
 
{| {{prettytable}}
!Befehl
!Kurzbeschreibung
|-
|trizen -S ''<Paketname>''
|Installation eines oder mehrerer Pakete
|-
|trizen -Syu
|Paketdatenbank synchronisieren und komplette Systemaktualisierung durchführen
|-
|trizen -Syua
|Datenbank für AUR-Pakete synchronisieren und nur Pakete aus dem AUR aktualisieren
|-
|trizen -U ''<Paketname>''
|Ein lokales Paket installieren (z.B. nach fertig gestelltem Build)
|-
|trizen -Ss ''<Suchbegriff>''
|Nach Schlüsselwort(en) in Paketnamen und Paketbeschreibung suchen
|-
|trizen -Si ''<Paketname>''
|Informationen zu einem bestimmten Paket abrufen
|-
|trizen -Qi ''<Paketname>''
|Informationen zu einem bereits installierten Paket abrufen
|-
|trizen -Fo ''<Pfad/Dateiname>''
|Paketzugehörigkeit einer Datei abfragen – z. B. ''trizen -Fo usr/lib/udev/scsi_id''
|}
 
===Weitere AUR-Hilfsprogramme===
 
* {{AUR|aurutils}}
* {{AUR|bauerbill}}
* {{AUR|pacaur}} (''Das Programm wird derzeit weder weiterentwickelt noch gepflegt'')
 
==Weblinks==
*[https://github.com/AladW/aurutils aurutils bei GitHub]
*[https://xyne.archlinux.ca/projects/bauerbill/ bauerbill bei xyne.archlinux.ca]
*[https://github.com/rmarquis/pacaur pacaur bei GitHub]
*[https://github.com/trizen/trizen trizen bei GitHub]


[[Kategorie:Arch-Linux-Projekte]]
[[Kategorie:Arch-Linux-Projekte]]
[[Kategorie:Paketverwaltung]]
[[Kategorie:Paketverwaltung]]
[[en:Arch User Repository]]
[[en:Arch User Repository]]

Version vom 3. Januar 2018, 00:00 Uhr

Das ArchLinux User-Community Repository (AUR) ist eine Sammlung von Paketbau-Anleitungen (den PKGBUILDs) anhand derer Programmpakete für Arch Linux mittels ABS erstellt werden können. Jeder kann dort seine Pakete nach einer Registrierung veröffentlichen und anderen zur Verfügung stellen.

Ein Paket aus dem AUR installieren

Voraussetzungen

Alle Pakete, die zur Erstellung von Paketen notwendig sind, befinden sich in der Gruppe base-devel:

 pacman -S base-devel

Paketdateien herunterladen

Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Git-Repository gespeichert.

Dieses kann man entweder mittels git klonen oder sich von der Website des Pakets im AUR über das rechtsseitige Menü Package Actions einen Snapshot herunterladen.

Git Methode

 git clone https://aur.archlinux.org/<paketname>.git

Snapshot Methode

Der heruntergeladene Snapshot muss zunächst extrahiert werden.

 tar xvzf <snapshot_datei>

Alte Versionen

Um an ältere Versionen der Paketdateien zu kommen, kann man die git-history nutzen.

git clone https://aur.archlinux.org/<paketname>.git
cd <paketname>
git log                 # hier den commit-hash der gewünschten Version herausfinden
git checkout <commit>

Ein Verzeichnis für eigene Pakete wählen

Pakete sollten nicht als root erstellt werden. Deswegen ist es ratsam, die Paketdateien in einem Verzeichnis zu speichern, das einem normalen Benutzer zugänglich ist. Eine Möglichkeit ist ein Verzeichnis in /home, dann sind keine weiteren Schritte notwendig.

Wenn die Paketdateien im /home-Verzeichnis nicht gewünscht sind, sollte man sie in /var/abs/local speichern, da in /var/abs der ABS-Verzeichnisbaum liegt. (Nur /var/abs/local ist unter /var/abs verwendbar, da die übrigen Verzeichnisse von abs überschrieben werden können.)

Um /var/abs/local für normale Benutzer zugänglich zu machen, sind folgende Schritte nötig:

  • Gruppe abs erstellen
groupadd abs
  • Benutzer der Gruppe abs hinzufügen (erst nach einem erneuten Anmelden wird das Hinzufügen wirksam)
gpasswd -a <Benutzer> abs
  • Gruppe und Zugriffsrechte ändern
mkdir -p /var/abs/local
chown root:abs /var/abs/local
chmod 775 /var/abs/local

Paket erstellen

Achtung: Um Schäden am System zu verhindern, sollten Pakete niemals als Root gebaut werden!

Das Paket wird mittels makepkg erstellt. Dazu wechselt man in das Verzeichnis, in dem man das Git-Repo erstellt hat, und führt makepkg aus:

 makepkg

Paket installieren

Das soeben erstellte Paket kann nun (als root) mittels Pacman installiert werden:

 pacman -U beispiel-paket-*.pkg.tar.xz

Eigene Pakete erstellen

Alle Dateien eines AUR-Pakets werden in einem eigenen Git-Repository gepflegt. Daher ist also zunächst git zu installieren.

pacman -S git

Man benötigt einen User im AUR, den man über die Weboberfläche einrichten kann, und einen öffentlichen Schlüssel (ssh), der dort per Copy&Paste zu hinterlegen ist.

In der lokalen Konfigurationsdatei ~/.ssh/config ist folgendes einzutragen:

Host aur.archlinux.org
  IdentityFile ~/.ssh/aur
  User aur

Dann ist etwa folgendes einzugeben:

git clone ssh://aur@aur.archlinux.org/<paketname>.git

wobei <paketname> entsprechend zu ersetzen ist.

Die Datei PKGBUILD ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen. Ferner muss jeder Git-Commit die Datei .SRCINFO beinhalten. Diese kann mittels

makepkg --printsrcinfo > .SRCINFO

oder mksrcinfo aus dem Paket pkgbuild-introspection erstellt werden.

Hilfsprogramme für das AUR

Es gibt eine Reihe von Hilfsprogrammen, die das Arbeiten mit dem AUR erleichtern können. Die Hilfsprogramme verfolgen unterschiedliche Ziele und haben unterschiedliche Fähigkeiten, welche in dieser Tabelle verglichen werden können.

Um ein AUR-Hilfsprogramm universell und sicher nutzen zu können, muss es einigen Anforderungen gerecht werden können. Wie man anhand der Tabelle ersehen kann, ist das nicht immer der Fall. Eine Reihe von Hilfsprogrammen scheitert bereits, wenn von einem PKGBUILD mehrere Pakete zu erstellen sind (Package Splitting), was auch im AUR keine Seltenheit ist.

trizen

Das Programm trizen ist in der Programmiersprache Perl geschrieben und ein leichtgewichtiges, schnelles und universelles Werkzeug.

trizenAUR kann aus dem AUR installiert werden. Sollte noch kein AUR-Hilfsprogramm zu diesem Zweck vorhanden sein, kann folgender Befehl mit normalen Nutzerrechten ausgeführt werden:

git clone https://aur.archlinux.org/trizen.git && cd trizen && makepkg -si

Durch diesen Befehl werden das PKGBUILD und der Source Code heruntergeladen, das Paket gebaut und anschließend inklusive fehlender Abhängigkeiten installiert.

trizen erzeugt automatisch eine vorausgefüllte Konfigurationsdatei ~/.config/trizen/trizen.conf. Die dort einstellbaren Optionen werden in der Konfigurationsdatei erläutert.

Der Start von trizen erfolgt mit normalen Nutzerrechten. Erst wenn der Build-Prozess eines Paketes abgeschlossen ist, fordert trizen per sudo erhöhte Rechte für eine Installation an.

Pakete, die bei Updates aus dem AUR von trizen ignoriert werden sollen, können in der Datei /etc/pacman.conf unter IgnorePkg eingetragen werden.

Für trizen gibt es keinen Handbucheintrag, den man mit man trizen aufrufen könnte. Die Hilfen zur Bedienung des Programmen sind in Hauptoptionen, Sync-Optionen und Get-Optionen untergliedert:

trizen -h
trizen -Sh
trizen -Gh

Die Befehlslogik von trizen deckt sich weitgehend mit pacman, was die Bedienung der Grundfunktionen einfach und transparent macht. Eine kleine Auswahl gängiger Befehle:

Befehl Kurzbeschreibung
trizen -S <Paketname> Installation eines oder mehrerer Pakete
trizen -Syu Paketdatenbank synchronisieren und komplette Systemaktualisierung durchführen
trizen -Syua Datenbank für AUR-Pakete synchronisieren und nur Pakete aus dem AUR aktualisieren
trizen -U <Paketname> Ein lokales Paket installieren (z.B. nach fertig gestelltem Build)
trizen -Ss <Suchbegriff> Nach Schlüsselwort(en) in Paketnamen und Paketbeschreibung suchen
trizen -Si <Paketname> Informationen zu einem bestimmten Paket abrufen
trizen -Qi <Paketname> Informationen zu einem bereits installierten Paket abrufen
trizen -Fo <Pfad/Dateiname> Paketzugehörigkeit einer Datei abfragen – z. B. trizen -Fo usr/lib/udev/scsi_id

Weitere AUR-Hilfsprogramme

Weblinks