Arch User Repository: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Zur Navigation springen Zur Suche springen
(Abschnitt 'Ein Verzeichnis für eigene Pakete wählen' entfernt)
 
(45 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Einführung==
+
Das [https://aur.archlinux.org/?setlang=de ArchLinux User-Community Repository (AUR)] ist eine Sammlung von Paketbau-Anleitungen (den PKGBUILDs) anhand derer Programmpakete für Arch Linux mittels [[Abs|ABS]] erstellt werden können. Jeder kann dort seine Pakete nach einer [https://aur.archlinux.org/register/?setlang=de Registrierung] veröffentlichen und anderen zur Verfügung stellen.
Das [http://aur.archlinux.org/index.php?setlang=de ArchLinux User-Community Repository (AUR)] ist eine Sammlung von Paketbeschreibungen (den PKGBUILDs) anhand derer Programmpakete für Arch Linux mittels [[Abs|ABS]] erstellt werden können. Jeder kann dort seine Pakete nach einer [http://aur.archlinux.org/account.php?setlang=de Registrierung] veröffentlichen und anderen zur Verfügung stellen.
 
  
 
==Ein Paket aus dem AUR installieren==
 
==Ein Paket aus dem AUR installieren==
Zeile 9: Zeile 8:
  
 
===Paketdateien herunterladen===
 
===Paketdateien herunterladen===
Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Tarball gespeichert. Dieser kann von der entsprechenden Seite unter dem Link ''Tarball'' im AUR heruntergeladen werden.
+
Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Git-Repository gespeichert.
  
===Ein Verzeichnis für eigene Pakete wählen===
+
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.
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#Der_ABS-Verzeichnisbaum|ABS-Verzeichnisbaum]] liegt.
+
====Git Methode====
(Nur ''/var/abs/local'' ist unter ''/var/abs'' verwendbar, da die übrigen Verzeichnisse von [[Abs#Der_ABS-Verzeichnisbaum|abs]] überschrieben werden können.)
+
  <nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki>
  
Um ''/var/abs/local'' für normale Benutzer zugänglich zu machen, sind folgende Schritte nötig:
+
====Snapshot Methode====
 +
Der heruntergeladene Snapshot muss zunächst extrahiert werden.
  
* Gruppe ''abs'' erstellen
+
  tar xvzf <snapshot_datei>
groupadd abs
 
  
* Benutzer der Gruppe ''abs'' hinzufügen (erst nach einem erneuten Anmelden wird das Hinzufügen wirksam)
+
====Alte Versionen====
  gpasswd -a <Benutzer> abs
+
Um an ältere Versionen der Paketdateien zu kommen, kann man die git-history nutzen.
 +
  <nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki>
 +
cd <paketname>
 +
git log                # hier den commit-hash der gewünschten Version herausfinden
 +
git checkout <commit>
  
* Gruppe und Zugriffsrechte ändern
+
===Paket erstellen===
  mkdir -p /var/abs/local
+
{{achtung| Beachte die [[AUR Sicherheitshinweise]]!}}
chown root:abs /var/abs/local
+
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:
chmod 775 /var/abs/local
+
   
 +
  makepkg
 +
 
 +
Unter Umständen müssen noch Pakete installiert werden, die makepkg zum Bauen benötigt, oder die das fertige Paket zur Laufzeit benötigen würde. Stammen diese Abhängigkeiten aus den offiziellen Repositorien, so können sie mittels
  
===Paket erstellen===
+
  makepkg -s
{{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 sich der Tarball befindet, entpackt ihn, wechselt in das Paket-Verzeichnis und führt ''makepkg'' aus:
 
  
  tar -xvzf /<Pfad zum Tarball>/beispiel-paket.tar.gz
+
installiert werden. Bei Abhängigkeiten, die selber nur aus dem AUR erhältlich sind, muss man diese rekursiv nach dem hier geschilderten Verfahren bauen und installieren. Kommt man hierdurch in eine Abhängigkeitshölle, bietet sich die Verwendung eines der [[AUR Hilfsprogramme]] an.
  cd beispiel-paket
 
  makepkg
 
  
 
===Paket installieren===
 
===Paket installieren===
 
Das soeben erstellte Paket kann nun (als root) mittels [[Pacman]] installiert werden:
 
Das soeben erstellte Paket kann nun (als root) mittels [[Pacman]] installiert werden:
  
   pacman -U beispiel-paket-*.pkg.tar.gz
+
   pacman -U /pfad/beispiel-paket-*.pkg.tar.zst
 +
 
 +
==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
  
==Hilfsprogramme für AUR==
+
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.
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
+
In der lokalen Konfigurationsdatei {{ic|~/.ssh/config}} ist folgendes einzutragen:
  
reduziert.
+
Host aur.archlinux.org
====[[paktahn]]====
+
  IdentityFile ~/.ssh/aur
[[paktahn]] ist ein in Common Lisp geschriebenes Programm, das sich hinsichtlich Aufruf und Wirkungsweise an [[yaourt]] orientiert. Das auzurufende Programm heißt pak.  
+
  User aur
====[[packer]]====
 
Ein weiteres Shellskript mit ähnlichem Funktionsumfang wie [[yaourt]].
 
===Hilfsprogramme, die Teilaspekte abdecken===
 
  
====Aurcheck====
+
Dann ist etwa folgendes einzugeben:
Mit {{AUR|aurcheck}} kann man sich anzeigen lassen, ob es für installierte Pakete aus dem AUR Updates gibt.
+
<nowiki>git clone ssh://aur@aur.archlinux.org/<paketname>.git</nowiki>
Das Bash Script, ermittelt mittels 'pacman -Qm' alle installierten Pakete, die in keinem Repo sind, sucht diese dann im AUR und vergleicht die Versionsnummern.
+
wobei <paketname> entsprechend zu ersetzen ist.
  
====cower====
+
Die Datei [https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD] ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen.
{{AUR|cower}} ist in C geschrieben und lädt die Tarbälle nur herunter. Es wird also weder gebaut noch installiert.
+
Ferner '''''muss''''' jeder Git-Commit die Datei ''.SRCINFO'' beinhalten.
 +
Diese kann mittels
 +
makepkg --printsrcinfo > .SRCINFO
 +
oder {{ic|mksrcinfo}} aus dem Paket {{paket|pkgbuild-introspection}} erstellt werden.
  
====[[burp]]====
+
==Siehe auch==
Vom selben Autor wie [[cower]], aber zum Hochladen der PKGBUILDs ins AUR gedacht.
+
* [[Arch Build System]]
 +
* [[AUR Sicherheitshinweise]]
 +
* [[AUR Hilfsprogramme]]
 +
* [[AUR benutzen (Beispiele)]]
 +
* [[Trizen]]
  
==Links==
+
[[ar:Arch User Repository]]
* [http://aur.archlinux.org/index.php?setlang=de ArchLinux User-Community Repository (AUR)]
+
[[cs:Arch User Repository]]
* [[Pacman]]
+
[[da:Arch User Repository]]
* [[Abs|ABS]]
+
[[en:Arch User Repository]]
 +
[[el:Arch User Repository]]
 +
[[es:Arch User Repository]]
 +
[[fi:AUR]]
 +
[[fr:AUR]]
 +
[[it:Arch User Repository]]
 +
[[ja:Arch User Repository]]
 +
[[nl:Arch User Repository]]
 +
[[pl:Arch User Repository]]
 +
[[pt:Arch User Repository]]
 +
[[ro:AUR]]
 +
[[ru:Arch User Repository]]
 +
[[sr:Arch User Repository]]
  
[[Kategorie:ArchLinux Projekte]]
+
[[Kategorie:Arch-Linux-Projekte]]
 
[[Kategorie:Paketverwaltung]]
 
[[Kategorie:Paketverwaltung]]
[[en:Arch User Repository]]
 

Aktuelle Version vom 2. November 2020, 09:12 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>

Paket erstellen

Achtung: Beachte die AUR Sicherheitshinweise!

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

Unter Umständen müssen noch Pakete installiert werden, die makepkg zum Bauen benötigt, oder die das fertige Paket zur Laufzeit benötigen würde. Stammen diese Abhängigkeiten aus den offiziellen Repositorien, so können sie mittels

 makepkg -s

installiert werden. Bei Abhängigkeiten, die selber nur aus dem AUR erhältlich sind, muss man diese rekursiv nach dem hier geschilderten Verfahren bauen und installieren. Kommt man hierdurch in eine Abhängigkeitshölle, bietet sich die Verwendung eines der AUR Hilfsprogramme an.

Paket installieren

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

 pacman -U /pfad/beispiel-paket-*.pkg.tar.zst

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.

Siehe auch