Arch User Repository: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
Tuxnix (Diskussion | Beiträge)
K typo
 
(70 dazwischenliegende Versionen von 20 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
Das [https://aur.archlinux.org/?setlang=de <u>A</u>rch Linux <u>U</u>ser Community <u>R</u>epository - AUR] ist eine Sammlung von Paketbau-Anleitungen den PKGBUILDs. Diese Anleitungen erstellen Programm-Pakete die auf Arch Linux installiert werden können. Jeder kann im AUR ohne weitere Prüfung seine Pakete nach einer [https://aur.archlinux.org/register/?setlang=de Registrierung] veröffentlichen und allen anderen Usern 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.
==Vorbereitung==
Alle Programme sowohl für die Installation von AUR-Paketen als auch zu deren Erstellung werden im core-package base-devel zur Verfügung gestellt:
 
  pacman -S base-devel


==Ein Paket aus dem AUR installieren==
==Ein Paket aus dem AUR installieren==
===Fakeroot installieren===
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.
  pacman -S fakeroot


===Alle benötigten Pakete installieren===
(Als konkretes Beispiel siehe [[Trizen]])
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
{{Hinweis|Alle folgenden Befehle werden mit Userrechten ausgeführt!}}
 
git clone https://aur.archlinux.org/<Paketname>.git
Durch den Befehl werden das PKGBUILD und der Source Code heruntergeladen.
 
cd <Paketname>
Wechselt ins Verzeichnis
 
nano PKGBUILD
{{achtung| Beachte die [[AUR Sicherheitshinweise]]!}}
 
makepkg -i
Das Paket wird gebaut und nach Abfrage des root Passworts auf dem System installiert.
 
==Paketabhängigkeiten==
 
Unter Umständen müssen noch Pakete installiert werden, die beim Bauen oder zur Laufzeit benötigt werden. Stammen diese aus dem core bzw. extra Repositorien dann ist zusätzlich die Option -s zu nutzen.
Bei Abhängigkeiten, die selber nur aus dem AUR erhältlich sind, müssen diese Pakete nach dem hier geschilderten Verfahren erst gebaut und installiert werden, bis mit dem Weiterbau des gewünschten AUR-Pakets fortgefahren werden kann.
 
Muss mehrmals zum Bau eines AUR-Pakets angesetzt werden empfiehlt es sich zusätzlich die Option -f zu nutzen.
 
Die wichtigsten Optionen von makepkg sind:
* -i, --install    Installiere Paket nach erfolgreichem Build
* -s, --syncdeps  Installiere fehlende Abhängigkeiten mit pacman
* -f, --force      Zuvor erstelltes Paket überschreiben
 
Alternativ zu diesem Vorgang, bietet sich die Verwendung eines der [[AUR Hilfsprogramme]] an. Wobei man bei Arch Linux dazu gezwungen ist, den ersten dieser Helfer nach obiger Anleitung zu installieren.
 
==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


===Ein Verzeichnis für eigene Pakete wählen===
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.
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. Man 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.  


'''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!
In der lokalen Konfigurationsdatei {{ic|~/.ssh/config}} ist folgendes einzutragen:


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.
Host aur.archlinux.org
  IdentityFile ~/.ssh/aur
  User aur


*Die Gruppe ''abs'' erstellen
Dann ist etwa folgendes einzugeben:
  groupadd abs
  <nowiki>git clone ssh://aur@aur.archlinux.org/<paketname>.git</nowiki>
*den User der Gruppe ''abs'' hinzufügen (danach aus- und wieder einloggen damit die Änderungen wirksam werden)
wobei <paketname> entsprechend zu ersetzen ist.
  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


===Paketdateien herunterladen===
Die Datei [https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD] ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen.
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''
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.


===Paket erstellen===
==Siehe auch==
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).
* [[Arch Build System]]
  cd /var/abs/local
* [[AUR Sicherheitshinweise]]
  tar -xvzf /<Pfad zum Tarball>/beispiel-paket.tar.gz
* [[AUR Hilfsprogramme]]
  cd beispiel-paket
* [[AUR benutzen (Beispiele)]]
  makepkg
* [[Trizen]]


===Paket installieren===
[[ar:Arch User Repository]]
Das soeben erstellte Paket kann nun (als root) mittels [[Pacman]] installiert werden.
[[cs:Arch User Repository]]
''pacman -U'' sollte sowohl zum Aktualisieren bereits installierter Pakete als auch für das Installieren von komplett neuen Paketen benutzt werden.
[[da:Arch User Repository]]
  pacman -U beispiel-paket-*.pkg.tar.gz
[[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]]

Aktuelle Version vom 12. August 2024, 19:09 Uhr

Das Arch Linux User Community Repository - AUR ist eine Sammlung von Paketbau-Anleitungen den PKGBUILDs. Diese Anleitungen erstellen Programm-Pakete die auf Arch Linux installiert werden können. Jeder kann im AUR ohne weitere Prüfung seine Pakete nach einer Registrierung veröffentlichen und allen anderen Usern zur Verfügung stellen.

Vorbereitung

Alle Programme sowohl für die Installation von AUR-Paketen als auch zu deren Erstellung werden im core-package base-devel zur Verfügung gestellt:

 pacman -S base-devel

Ein Paket aus dem AUR installieren

(Als konkretes Beispiel siehe Trizen)

Hinweis: Alle folgenden Befehle werden mit Userrechten ausgeführt!

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

Durch den Befehl werden das PKGBUILD und der Source Code heruntergeladen.

cd <Paketname>

Wechselt ins Verzeichnis

nano PKGBUILD

Achtung: Beachte die AUR Sicherheitshinweise!


makepkg -i

Das Paket wird gebaut und nach Abfrage des root Passworts auf dem System installiert.

Paketabhängigkeiten

Unter Umständen müssen noch Pakete installiert werden, die beim Bauen oder zur Laufzeit benötigt werden. Stammen diese aus dem core bzw. extra Repositorien dann ist zusätzlich die Option -s zu nutzen. Bei Abhängigkeiten, die selber nur aus dem AUR erhältlich sind, müssen diese Pakete nach dem hier geschilderten Verfahren erst gebaut und installiert werden, bis mit dem Weiterbau des gewünschten AUR-Pakets fortgefahren werden kann.

Muss mehrmals zum Bau eines AUR-Pakets angesetzt werden empfiehlt es sich zusätzlich die Option -f zu nutzen.

Die wichtigsten Optionen von makepkg sind:

  • -i, --install Installiere Paket nach erfolgreichem Build
  • -s, --syncdeps Installiere fehlende Abhängigkeiten mit pacman
  • -f, --force Zuvor erstelltes Paket überschreiben

Alternativ zu diesem Vorgang, bietet sich die Verwendung eines der AUR Hilfsprogramme an. Wobei man bei Arch Linux dazu gezwungen ist, den ersten dieser Helfer nach obiger Anleitung zu installieren.

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