Arch User Repository: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
 
(70 dazwischenliegende Versionen von 20 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
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 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.
==Was ist das AUR?==
Das [http://aur.archlinux.org/index.php?setlang=de ArchLinux User-Community Repository (AUR)] ist eine Sammlung von PKGBUILDs, den Bauanleitungen für ARCH-Pakete. Jeder kann dort seine Pakete veröffentlichen und anderen zur Verfügung stellen. Um die Funktionen des AUR benutzen zu können, ist eine Registrierung auf [http://aur.archlinux.org/account.php?setlang=de aur.archlinux.org] nötig.


==Ein Paket aus dem AUR installieren==
==Ein Paket aus dem AUR installieren==
===Fakeroot installieren===
===Voraussetzungen===
Um ein Paket als normaler User zu erstellen muss das Paket fakeroot installiert werden. Es ist zu empfehlen Pakete als normaler User und nicht als Root zu erstellen, um zu verhindern, dass das System beschädigt wird falls etwas schief geht.
Alle Pakete, die zur Erstellung von Paketen notwendig sind, befinden sich in der Gruppe base-devel:
  pacman -S fakeroot


===Alle benötigten Pakete installieren===
Um alle zum Kompilieren und Paketeerstellen benötigten Pakete zu installieren, empfiehlt es sich, das Metapaket base-devel zu installieren (Fakeroot ist dabei eingeschlossen).
   pacman -S base-devel
   pacman -S base-devel


===Ein Verzeichnis für eigene Pakete wählen===
===Paketdateien herunterladen===
Als nächstes muss man sich überlegen wo man eigene Pakete erstellen/speichern will. Es ist zu empfehlen sie unter ''/var/abs/local'' zu erstellen. Mann kann aber natürlich auch ein anderes Verzeichnis, z. B. ''/home/<user>/Pakete'', verwenden. Auf jeden Fall ist darauf zu achten, dass der User Schreibrechte in dem Verzeichnis hat, damit die Pakete als nicht-Root-User erstellt werden können.  
Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Git-Repository gespeichert.


'''Achtung:''' Wenn man sich entschieden hat ein Verzeichnis unterhalb von ''/var/abs'' zu verwenden sollte man auf es auf jeden Fall ''/var/abs/local'' nennen, da alle anderen Verzeichnisse (außer die für die Repos; core, extra, ect.) beim aktualisieren des [[Arch Build System | ABS]] Baumes gelöscht werden!
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.


Im Folgenden wird beschrieben wie man vorgeht um die Pakete unter ''/var/abs/local'' zu erstellen. Verwendet man ein Verzeichnis unterhalb von ''/home/<user>'', entfallen die nächsten Schritte, da bereits Schreibrechte bestehen.
====Git Methode====
  <nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki>


*Die Gruppe ''abs'' erstellen
====Snapshot Methode====
  groupadd abs
Der heruntergeladene Snapshot muss zunächst extrahiert werden.
*den User der Gruppe ''abs'' hinzufügen (danach aus- und wieder einloggen damit die Änderungen wirksam werden)
gpasswd -a <user> abs
*Verzeichnis ''/var/abs/local'' erstellen, der Gruppe ''abs'' zuordnen und die Zugriffsrechte so ändern, dass Mitglieder der Gruppe abs Schreibrechte haben
  mkdir -p /var/abs/local
  chown root:abs /var/abs/local
  chmod 775 /var/abs/local


===Paket Dateien herunterladen===
  tar xvzf <snapshot_datei>
Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Tarball gespeichert. Diesen kann man herunterladen indem man auf der Seite des Paketes im AUR auf den ''TARBALL''-Link klickt oder direkt, z. B. per wget, über die URL ''http://aur.archlinux.org/packages/beispiel-paket/beispiel-paket.tar.gz''
 
====Alte Versionen====
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>


===Paket erstellen===
===Paket erstellen===
Das Paket wird mittels ''makepkg'' erstellt. Dazu wechselt man in das Verzeichnis für eigene Pakete (hier ''/var/abs/local''), entpackt den Tarball, wechselt in das Paket-Verzeichnis und führt ''makepkg'' aus (alles als normaler User).
{{achtung| Beachte die [[AUR Sicherheitshinweise]]!}}
  cd /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:
  tar -xvzf /<Pfad zum Tarball>/beispiel-paket.tar.gz
  cd beispiel-paket
   makepkg
   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===
===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'' sollte sowohl zum Aktualisieren bereits installierter Pakete als auch für das Installieren von komplett neuen Paketen benutzt 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
 
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 {{ic|~/.ssh/config}} ist folgendes einzutragen:
 
Host aur.archlinux.org
  IdentityFile ~/.ssh/aur
  User aur
 
Dann ist etwa folgendes einzugeben:
<nowiki>git clone ssh://aur@aur.archlinux.org/<paketname>.git</nowiki>
wobei <paketname> entsprechend zu ersetzen ist.
 
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.
Diese kann mittels
makepkg --printsrcinfo > .SRCINFO
oder {{ic|mksrcinfo}} aus dem Paket {{paket|pkgbuild-introspection}} erstellt werden.
 
==Siehe auch==
* [[Arch Build System]]
* [[AUR Sicherheitshinweise]]
* [[AUR Hilfsprogramme]]
* [[AUR benutzen (Beispiele)]]
* [[Trizen]]
 
[[ar:Arch User Repository]]
[[cs:Arch User Repository]]
[[da:Arch User Repository]]
[[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]]


===Yaourt===
[[Kategorie:Arch-Linux-Projekte]]
Mit [[yaourt]] bietet Arch ein sehr komfortables Programm, welches die oben genannten Schritte auf ein
[[Kategorie:Paketverwaltung]]
  yaourt -S aur-beispiel-programm
beschränkt. Dieses muss jedoch zuvor noch aus dem AUR gebaut werden.
 
 
[[Kategorie:ArchLinux Projekte]]
[[Kategorie:unvollständig]]

Aktuelle Version vom 3. November 2021, 23:57 Uhr

Das ArchLinux User-Community Repository (AUR) ist eine Sammlung von Paketbau-Anleitungen (den PKGBUILDs) anhand derer Programmpakete für Arch Linux 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