https://wiki.archlinux.de/api.php?action=feedcontributions&user=Arisinfenix&feedformat=atomwiki.archlinux.de - Benutzerbeiträge [de]2024-03-29T00:56:51ZBenutzerbeiträgeMediaWiki 1.41.0https://wiki.archlinux.de/index.php?title=Diskussion:Arch_User_Repository&diff=22288Diskussion:Arch User Repository2020-11-02T07:13:58Z<p>Arisinfenix: /* Ein Verzeichnis für eigene Pakete wählen */</p>
<hr />
<div>Ist der AUR Artikel bewußt nicht in der Unterkategorie Paketverwaltung? Ansonsten würde ich den da rein schieben. docloy<br />
<br />
Darf ich mir was wünschen? Ich verstehe immer noch nicht, WAS das eigentlich ist! Bitter erklär das doch mal einer verständlicher! Sine<br />
<br />
Frage : Hat es einen speziellen Grund das der Plural von Tarball, hier mit Tarbällen übersetzt worden ist? <br />
Es heißt Tarballs, oder komplett übersetzt Teerbälle. <br />
<br />
Henrikx<br />
: Pluralbildung bei Lehnwörtern aus anderen Sprachen erfolgen nach deutschen Grammatikregeln. Und der Plural von Ball ist eben Bälle und und Balls. – WObei ich den begriff an sich schon dämlich finde :) … „Unterschreiben“ von Diskussionsbeiträgen im Wiki macht man übrigens mit {{ic|<nowiki>--~~~~</nowiki>}} --[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]]) 11:34, 24. Okt. 2013 (CEST)<br />
<br />
::Es hört und ließt sich äußerst komisch. Warum nicht Tar-Archive?<br />
::Ich will hier übrigens keine Erbseezählerei anzetteln..<br />
<br />
::Hier wird der Plural mit Tarballs,oder Archive übersetzt.<br />
::http://www.linguee.de/englisch-deutsch/uebersetzung/tarball.html<br />
<br />
::--Henrikx 12:00, 24. Okt. 2013 (CEST)<br />
:::Hast du dir den Kram auch durchgelesen? Alle „Tarballs“ entstehen durch das Genitiv-s und stehen im Singular. --[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]]) 13:06, 24. Okt. 2013 (CEST)<br />
<br />
::::Du hast recht. Es hört sich trotzdem furchtbar an, fast so furchtbar wie der Plural von Status. Die Status..... --Henrikx 15:17, 24. Okt. 2013 (CEST)<br />
<br />
:::::Na ja, und mir rollen bei „Stati“ oder gar „Statusse“ die Zehnnägel hoch :) --[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]]) 15:41, 24. Okt. 2013 (CEST)<br />
<br />
== Kapitel "Hilfsprogramme für das AUR" ==<br />
<br />
Mein Plan war, die Programme pacaur und trizen vorzustellen. <br />
Von pacaur habe ich nun jedoch abgesehen, weil der Entwickler leider neulich die Weiterentwicklung und Pflege komplett eingestellt hat. Das Projekt ist bei GitHub auf Leserechte beschränkt eingefroren.<br />
<br />
Da wir voraussichtlich nicht alle AUR-Hilfsprogramme im Artikel vorstellen werden, haben die vorgestellten Progamme meiner Meinung nach den Charakter einer Empfehlung. <br />
<br />
Deshalb schlage ich vor, dass wir die mehr oder weniger fragwürdigen Helfer außen vor lassen und nur die wirklich guten näher vorstellen. Das wären dann noch aurutils, bauerbill – und falls sich jemand finden sollte, der pacaur übernimmt, auch das.<br />
<br />
Mit den aurutils und bauerbill habe ich mich noch nicht näher beschäftigt. Es wäre schön, wenn jemand das Kapitel mit einer Programmbeschreibung ergänzen würde.<br />
--[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]]) 15:48, 3. Jan. 2018 (CET)<br />
<br />
:Leider hast du hier ziemlichen Murks gemacht:<br />
*Bitte signiere Deine Diskussions-Beiträge (mit 4mal Tilde). Weitaus wichtiger als dein Name wäre für die Diskussion automatisch eingefügte Zeitstempel. <br />
*Dein Diskussions-Beitrag zu Seite X gehört nach "Diskussion: Seite X", nicht nach "Diskussion: Werner".<br />
*Wir haben bereits eine ausführliche Übersicht [[AUR Hilfsprogramme]], die Hauptseite AUR sollte dies nicht replizieren. Dein neu eingefügter Punkt 3 kann/sollte also komplett durch einen Link ersetzt werden.<br />
*Wenn dir die dortige tabellarische Übersicht zu kurz ist, schreib einen Vorschlag unter "Diskussion: AUR Hilfsprogramme". --[[Benutzer:Matthias|Matthias]] ([[Benutzer Diskussion:Matthias|Diskussion]]) 11:22, 3. Jan. 2018 (CET)<br />
<br />
::Danke für deine Tipps Matthias.<br />
::Ich habe den Thread nun – hoffentlich korrekt – in‘s Thema transferiert.<br />
<br />
::Der Kapitelaufbau war bereits seit Langem Bestandteil des Artikels:<br />
::*Kapitel "Hilfsprogramme für AUR"<br />
::*Abschnitt "Allumfassende Hilfsprogramme"<br />
::*Unterabschnitt "yaourt"<br />
<br />
::Diese Gliederung habe ich vom Prinzip her beibehalten, sie ist nicht meine Erfindung.<br />
::*Kapitel "Hilfsprogramme für das AUR"<br />
::*Abschnitt "trizen"<br />
::*Abschnitt "Weitere Hilfsprogramme"<br />
::*Abschnitt "Weblinks"<br />
<br />
::Mit deinem Hinweis auf thematische Replikation hast du schon recht. Ich betrachte das jedoch zunächst einmal als eine Redundanz, die auch in den Versionen zuvor schon gegeben war.<br />
<br />
::Ich kann das auch gerne anders umsetzen. Wie sollen wir vorgehen? <br />
::Beibehalten? Ein separater Artikel zur näheren Vorstellung einzelner AUR-Hilfsprogramme? Einzelartikel zu Helfern wie ''trizen'' etc.?<br />
--[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]]) 15:48, 3. Jan. 2018 (CET)<br />
<br />
Ein frohes neues Jahr wünsch ich euch.<br />
Denke auch, dass wenn man ein AUR-Hilfsprogramm näher vorstellen möchte, dies jeweils in einem separaten Artikel tun sollte. Bei "cower" und "AUR benutzen (Beispiele)" hab ich das auch so gemacht.<br />
Je spezifischer die einzelnen Artikel gehalten sind, desto einfacher ist es sowohl für den Nutzer als auch für die <br />
Wartung der Wiki. Das der AUR Artikel zu yaourt Bezug nahm ist wohl dem Umstand zu verdanken, dass es die anderen Artikel zu der Zeit als er geschrieben wurde noch gar nicht gab.--[[Benutzer:Tuxnix|Tuxnix]] ([[Benutzer Diskussion:Tuxnix|Diskussion]]) 17:37, 3. Jan. 2018 (CET)<br />
<br />
:Einzelartikel zu AUR-Hilfsprogrammen in der Kategorie "Paketverwaltung" zu platzieren, finde auch ich deutlich besser und angemessener. Dort wäre (m)ein Artikel zu Trizen richtig plaziert.<br />
<br />
:Den Artikel "Arch User Repository" werde ich dann – falls kein Veto mehr kommt – auf Kapitel 1 und Kapitel 2 gesundschrumpfen.<br />
<br />
:Etliche Anwender, die bisher Pacaur eingesetzt haben, werden vermutlich gerade jetzt überlegen, auf Trizen umzuschwenken. Deshalb lasse ich das Kapitel 3 noch bestehen, bis ich in den kommenden Tagen den neuen Artikel erstellt habe.<br />
<br />
:Auch euch ein gutes neues Jahr! <br />
--[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]]) 20:32, 3. Jan. 2018 (CET)<br />
<br />
== Ein Verzeichnis für eigene Pakete wählen ==<br />
Der Abschnitt kann doch komplett gelöscht werden?<br />
<br />
{{ic|/var/abs/local}} ist veraltet und nicht nötig. Ansonsten enthält der Abschnitt nur die Information dass Pakete nicht als root gebaut werden sollten. Da meckert makepkg aber sowieso. [[Benutzer:Arisinfenix|Arisinfenix]] ([[Benutzer Diskussion:Arisinfenix|Diskussion]]) 09:49, 31. Okt. 2020 (CET)<br />
<br />
Ich habe den Abschnitt jetzt entfernt, sollte jemand nicht einverstanden sein kann das ja wieder rückgängig gemacht werden. [[Benutzer:Arisinfenix|Arisinfenix]] ([[Benutzer Diskussion:Arisinfenix|Diskussion]]) 08:13, 2. Nov. 2020 (CET)</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Arch_User_Repository&diff=22287Arch User Repository2020-11-02T07:12:23Z<p>Arisinfenix: Abschnitt 'Ein Verzeichnis für eigene Pakete wählen' entfernt</p>
<hr />
<div>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.<br />
<br />
==Ein Paket aus dem AUR installieren==<br />
===Voraussetzungen===<br />
Alle Pakete, die zur Erstellung von Paketen notwendig sind, befinden sich in der Gruppe base-devel:<br />
<br />
pacman -S base-devel<br />
<br />
===Paketdateien herunterladen===<br />
Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Git-Repository gespeichert.<br />
<br />
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.<br />
<br />
====Git Methode====<br />
<nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki><br />
<br />
====Snapshot Methode====<br />
Der heruntergeladene Snapshot muss zunächst extrahiert werden.<br />
<br />
tar xvzf <snapshot_datei><br />
<br />
====Alte Versionen====<br />
Um an ältere Versionen der Paketdateien zu kommen, kann man die git-history nutzen.<br />
<nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki><br />
cd <paketname><br />
git log # hier den commit-hash der gewünschten Version herausfinden<br />
git checkout <commit><br />
<br />
===Paket erstellen===<br />
{{achtung| Beachte die [[AUR Sicherheitshinweise]]!}}<br />
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:<br />
<br />
makepkg<br />
<br />
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<br />
<br />
makepkg -s<br />
<br />
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.<br />
<br />
===Paket installieren===<br />
Das soeben erstellte Paket kann nun (als root) mittels [[Pacman]] installiert werden:<br />
<br />
pacman -U /pfad/beispiel-paket-*.pkg.tar.zst<br />
<br />
==Eigene Pakete erstellen==<br />
Alle Dateien eines AUR-Pakets werden in einem eigenen Git-Repository gepflegt.<br />
Daher ist also zunächst git zu installieren.<br />
pacman -S git<br />
<br />
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.<br />
<br />
In der lokalen Konfigurationsdatei {{ic|~/.ssh/config}} ist folgendes einzutragen: <br />
<br />
Host aur.archlinux.org<br />
IdentityFile ~/.ssh/aur<br />
User aur<br />
<br />
Dann ist etwa folgendes einzugeben:<br />
<nowiki>git clone ssh://aur@aur.archlinux.org/<paketname>.git</nowiki><br />
wobei <paketname> entsprechend zu ersetzen ist.<br />
<br />
Die Datei [https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD] ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen.<br />
Ferner '''''muss''''' jeder Git-Commit die Datei ''.SRCINFO'' beinhalten.<br />
Diese kann mittels<br />
makepkg --printsrcinfo > .SRCINFO<br />
oder {{ic|mksrcinfo}} aus dem Paket {{paket|pkgbuild-introspection}} erstellt werden.<br />
<br />
==Siehe auch==<br />
* [[Arch Build System]]<br />
* [[AUR Sicherheitshinweise]]<br />
* [[AUR Hilfsprogramme]]<br />
* [[AUR benutzen (Beispiele)]]<br />
* [[Trizen]]<br />
<br />
[[ar:Arch User Repository]]<br />
[[cs:Arch User Repository]]<br />
[[da:Arch User Repository]]<br />
[[en:Arch User Repository]]<br />
[[el:Arch User Repository]]<br />
[[es:Arch User Repository]]<br />
[[fi:AUR]]<br />
[[fr:AUR]]<br />
[[it:Arch User Repository]]<br />
[[ja:Arch User Repository]]<br />
[[nl:Arch User Repository]]<br />
[[pl:Arch User Repository]]<br />
[[pt:Arch User Repository]]<br />
[[ro:AUR]]<br />
[[ru:Arch User Repository]]<br />
[[sr:Arch User Repository]]<br />
<br />
[[Kategorie:Arch-Linux-Projekte]]<br />
[[Kategorie:Paketverwaltung]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Arch_User_Repository&diff=22286Arch User Repository2020-11-02T07:07:25Z<p>Arisinfenix: /* Paket erstellen */</p>
<hr />
<div>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.<br />
<br />
==Ein Paket aus dem AUR installieren==<br />
===Voraussetzungen===<br />
Alle Pakete, die zur Erstellung von Paketen notwendig sind, befinden sich in der Gruppe base-devel:<br />
<br />
pacman -S base-devel<br />
<br />
===Paketdateien herunterladen===<br />
Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Git-Repository gespeichert.<br />
<br />
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.<br />
<br />
====Git Methode====<br />
<nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki><br />
<br />
====Snapshot Methode====<br />
Der heruntergeladene Snapshot muss zunächst extrahiert werden.<br />
<br />
tar xvzf <snapshot_datei><br />
<br />
====Alte Versionen====<br />
Um an ältere Versionen der Paketdateien zu kommen, kann man die git-history nutzen.<br />
<nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki><br />
cd <paketname><br />
git log # hier den commit-hash der gewünschten Version herausfinden<br />
git checkout <commit><br />
<br />
===Ein Verzeichnis für eigene Pakete wählen===<br />
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.<br />
<br />
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.<br />
(Nur ''/var/abs/local'' ist unter ''/var/abs'' verwendbar, da die übrigen Verzeichnisse von [[Abs#Der_ABS-Verzeichnisbaum|abs]] überschrieben werden können.)<br />
<br />
Um ''/var/abs/local'' für normale Benutzer zugänglich zu machen, sind folgende Schritte nötig:<br />
<br />
* Gruppe ''abs'' erstellen<br />
groupadd abs<br />
<br />
* Benutzer der Gruppe ''abs'' hinzufügen (erst nach einem erneuten Anmelden wird das Hinzufügen wirksam)<br />
gpasswd -a <Benutzer> abs<br />
<br />
* Gruppe und Zugriffsrechte ändern<br />
mkdir -p /var/abs/local<br />
chown root:abs /var/abs/local<br />
chmod 775 /var/abs/local<br />
<br />
===Paket erstellen===<br />
{{achtung| Beachte die [[AUR Sicherheitshinweise]]!}}<br />
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:<br />
<br />
makepkg<br />
<br />
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<br />
<br />
makepkg -s<br />
<br />
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.<br />
<br />
===Paket installieren===<br />
Das soeben erstellte Paket kann nun (als root) mittels [[Pacman]] installiert werden:<br />
<br />
pacman -U /pfad/beispiel-paket-*.pkg.tar.zst<br />
<br />
==Eigene Pakete erstellen==<br />
Alle Dateien eines AUR-Pakets werden in einem eigenen Git-Repository gepflegt.<br />
Daher ist also zunächst git zu installieren.<br />
pacman -S git<br />
<br />
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.<br />
<br />
In der lokalen Konfigurationsdatei {{ic|~/.ssh/config}} ist folgendes einzutragen: <br />
<br />
Host aur.archlinux.org<br />
IdentityFile ~/.ssh/aur<br />
User aur<br />
<br />
Dann ist etwa folgendes einzugeben:<br />
<nowiki>git clone ssh://aur@aur.archlinux.org/<paketname>.git</nowiki><br />
wobei <paketname> entsprechend zu ersetzen ist.<br />
<br />
Die Datei [https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD] ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen.<br />
Ferner '''''muss''''' jeder Git-Commit die Datei ''.SRCINFO'' beinhalten.<br />
Diese kann mittels<br />
makepkg --printsrcinfo > .SRCINFO<br />
oder {{ic|mksrcinfo}} aus dem Paket {{paket|pkgbuild-introspection}} erstellt werden.<br />
<br />
==Siehe auch==<br />
* [[Arch Build System]]<br />
* [[AUR Sicherheitshinweise]]<br />
* [[AUR Hilfsprogramme]]<br />
* [[AUR benutzen (Beispiele)]]<br />
* [[Trizen]]<br />
<br />
[[ar:Arch User Repository]]<br />
[[cs:Arch User Repository]]<br />
[[da:Arch User Repository]]<br />
[[en:Arch User Repository]]<br />
[[el:Arch User Repository]]<br />
[[es:Arch User Repository]]<br />
[[fi:AUR]]<br />
[[fr:AUR]]<br />
[[it:Arch User Repository]]<br />
[[ja:Arch User Repository]]<br />
[[nl:Arch User Repository]]<br />
[[pl:Arch User Repository]]<br />
[[pt:Arch User Repository]]<br />
[[ro:AUR]]<br />
[[ru:Arch User Repository]]<br />
[[sr:Arch User Repository]]<br />
<br />
[[Kategorie:Arch-Linux-Projekte]]<br />
[[Kategorie:Paketverwaltung]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Arch_User_Repository&diff=22285Arch User Repository2020-11-02T07:05:32Z<p>Arisinfenix: /* Paket erstellen */ Link korrigiert</p>
<hr />
<div>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.<br />
<br />
==Ein Paket aus dem AUR installieren==<br />
===Voraussetzungen===<br />
Alle Pakete, die zur Erstellung von Paketen notwendig sind, befinden sich in der Gruppe base-devel:<br />
<br />
pacman -S base-devel<br />
<br />
===Paketdateien herunterladen===<br />
Alle Dateien die nötig sind, um ein Paket zu erstellen, sind in einem Git-Repository gespeichert.<br />
<br />
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.<br />
<br />
====Git Methode====<br />
<nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki><br />
<br />
====Snapshot Methode====<br />
Der heruntergeladene Snapshot muss zunächst extrahiert werden.<br />
<br />
tar xvzf <snapshot_datei><br />
<br />
====Alte Versionen====<br />
Um an ältere Versionen der Paketdateien zu kommen, kann man die git-history nutzen.<br />
<nowiki>git clone https://aur.archlinux.org/<paketname>.git</nowiki><br />
cd <paketname><br />
git log # hier den commit-hash der gewünschten Version herausfinden<br />
git checkout <commit><br />
<br />
===Ein Verzeichnis für eigene Pakete wählen===<br />
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.<br />
<br />
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.<br />
(Nur ''/var/abs/local'' ist unter ''/var/abs'' verwendbar, da die übrigen Verzeichnisse von [[Abs#Der_ABS-Verzeichnisbaum|abs]] überschrieben werden können.)<br />
<br />
Um ''/var/abs/local'' für normale Benutzer zugänglich zu machen, sind folgende Schritte nötig:<br />
<br />
* Gruppe ''abs'' erstellen<br />
groupadd abs<br />
<br />
* Benutzer der Gruppe ''abs'' hinzufügen (erst nach einem erneuten Anmelden wird das Hinzufügen wirksam)<br />
gpasswd -a <Benutzer> abs<br />
<br />
* Gruppe und Zugriffsrechte ändern<br />
mkdir -p /var/abs/local<br />
chown root:abs /var/abs/local<br />
chmod 775 /var/abs/local<br />
<br />
===Paket erstellen===<br />
{{achtung| Beachte die [[AUR Sicherheitshinweise]]!}}<br />
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:<br />
<br />
makepkg<br />
<br />
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<br />
<br />
makepkg -s<br />
<br />
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.<br />
<br />
===Paket installieren===<br />
Das soeben erstellte Paket kann nun (als root) mittels [[Pacman]] installiert werden:<br />
<br />
pacman -U /pfad/beispiel-paket-*.pkg.tar.zst<br />
<br />
==Eigene Pakete erstellen==<br />
Alle Dateien eines AUR-Pakets werden in einem eigenen Git-Repository gepflegt.<br />
Daher ist also zunächst git zu installieren.<br />
pacman -S git<br />
<br />
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.<br />
<br />
In der lokalen Konfigurationsdatei {{ic|~/.ssh/config}} ist folgendes einzutragen: <br />
<br />
Host aur.archlinux.org<br />
IdentityFile ~/.ssh/aur<br />
User aur<br />
<br />
Dann ist etwa folgendes einzugeben:<br />
<nowiki>git clone ssh://aur@aur.archlinux.org/<paketname>.git</nowiki><br />
wobei <paketname> entsprechend zu ersetzen ist.<br />
<br />
Die Datei [https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD] ist im Wurzelverzeichnis des neu geklonten Git-Repositories zu erstellen.<br />
Ferner '''''muss''''' jeder Git-Commit die Datei ''.SRCINFO'' beinhalten.<br />
Diese kann mittels<br />
makepkg --printsrcinfo > .SRCINFO<br />
oder {{ic|mksrcinfo}} aus dem Paket {{paket|pkgbuild-introspection}} erstellt werden.<br />
<br />
==Siehe auch==<br />
* [[Arch Build System]]<br />
* [[AUR Sicherheitshinweise]]<br />
* [[AUR Hilfsprogramme]]<br />
* [[AUR benutzen (Beispiele)]]<br />
* [[Trizen]]<br />
<br />
[[ar:Arch User Repository]]<br />
[[cs:Arch User Repository]]<br />
[[da:Arch User Repository]]<br />
[[en:Arch User Repository]]<br />
[[el:Arch User Repository]]<br />
[[es:Arch User Repository]]<br />
[[fi:AUR]]<br />
[[fr:AUR]]<br />
[[it:Arch User Repository]]<br />
[[ja:Arch User Repository]]<br />
[[nl:Arch User Repository]]<br />
[[pl:Arch User Repository]]<br />
[[pt:Arch User Repository]]<br />
[[ro:AUR]]<br />
[[ru:Arch User Repository]]<br />
[[sr:Arch User Repository]]<br />
<br />
[[Kategorie:Arch-Linux-Projekte]]<br />
[[Kategorie:Paketverwaltung]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Diskussion:Arch_User_Repository&diff=22282Diskussion:Arch User Repository2020-10-31T08:49:06Z<p>Arisinfenix: Ein Verzeichnis für eigene Pakete wählen</p>
<hr />
<div>Ist der AUR Artikel bewußt nicht in der Unterkategorie Paketverwaltung? Ansonsten würde ich den da rein schieben. docloy<br />
<br />
Darf ich mir was wünschen? Ich verstehe immer noch nicht, WAS das eigentlich ist! Bitter erklär das doch mal einer verständlicher! Sine<br />
<br />
Frage : Hat es einen speziellen Grund das der Plural von Tarball, hier mit Tarbällen übersetzt worden ist? <br />
Es heißt Tarballs, oder komplett übersetzt Teerbälle. <br />
<br />
Henrikx<br />
: Pluralbildung bei Lehnwörtern aus anderen Sprachen erfolgen nach deutschen Grammatikregeln. Und der Plural von Ball ist eben Bälle und und Balls. – WObei ich den begriff an sich schon dämlich finde :) … „Unterschreiben“ von Diskussionsbeiträgen im Wiki macht man übrigens mit {{ic|<nowiki>--~~~~</nowiki>}} --[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]]) 11:34, 24. Okt. 2013 (CEST)<br />
<br />
::Es hört und ließt sich äußerst komisch. Warum nicht Tar-Archive?<br />
::Ich will hier übrigens keine Erbseezählerei anzetteln..<br />
<br />
::Hier wird der Plural mit Tarballs,oder Archive übersetzt.<br />
::http://www.linguee.de/englisch-deutsch/uebersetzung/tarball.html<br />
<br />
::--Henrikx 12:00, 24. Okt. 2013 (CEST)<br />
:::Hast du dir den Kram auch durchgelesen? Alle „Tarballs“ entstehen durch das Genitiv-s und stehen im Singular. --[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]]) 13:06, 24. Okt. 2013 (CEST)<br />
<br />
::::Du hast recht. Es hört sich trotzdem furchtbar an, fast so furchtbar wie der Plural von Status. Die Status..... --Henrikx 15:17, 24. Okt. 2013 (CEST)<br />
<br />
:::::Na ja, und mir rollen bei „Stati“ oder gar „Statusse“ die Zehnnägel hoch :) --[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]]) 15:41, 24. Okt. 2013 (CEST)<br />
<br />
== Kapitel "Hilfsprogramme für das AUR" ==<br />
<br />
Mein Plan war, die Programme pacaur und trizen vorzustellen. <br />
Von pacaur habe ich nun jedoch abgesehen, weil der Entwickler leider neulich die Weiterentwicklung und Pflege komplett eingestellt hat. Das Projekt ist bei GitHub auf Leserechte beschränkt eingefroren.<br />
<br />
Da wir voraussichtlich nicht alle AUR-Hilfsprogramme im Artikel vorstellen werden, haben die vorgestellten Progamme meiner Meinung nach den Charakter einer Empfehlung. <br />
<br />
Deshalb schlage ich vor, dass wir die mehr oder weniger fragwürdigen Helfer außen vor lassen und nur die wirklich guten näher vorstellen. Das wären dann noch aurutils, bauerbill – und falls sich jemand finden sollte, der pacaur übernimmt, auch das.<br />
<br />
Mit den aurutils und bauerbill habe ich mich noch nicht näher beschäftigt. Es wäre schön, wenn jemand das Kapitel mit einer Programmbeschreibung ergänzen würde.<br />
--[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]]) 15:48, 3. Jan. 2018 (CET)<br />
<br />
:Leider hast du hier ziemlichen Murks gemacht:<br />
*Bitte signiere Deine Diskussions-Beiträge (mit 4mal Tilde). Weitaus wichtiger als dein Name wäre für die Diskussion automatisch eingefügte Zeitstempel. <br />
*Dein Diskussions-Beitrag zu Seite X gehört nach "Diskussion: Seite X", nicht nach "Diskussion: Werner".<br />
*Wir haben bereits eine ausführliche Übersicht [[AUR Hilfsprogramme]], die Hauptseite AUR sollte dies nicht replizieren. Dein neu eingefügter Punkt 3 kann/sollte also komplett durch einen Link ersetzt werden.<br />
*Wenn dir die dortige tabellarische Übersicht zu kurz ist, schreib einen Vorschlag unter "Diskussion: AUR Hilfsprogramme". --[[Benutzer:Matthias|Matthias]] ([[Benutzer Diskussion:Matthias|Diskussion]]) 11:22, 3. Jan. 2018 (CET)<br />
<br />
::Danke für deine Tipps Matthias.<br />
::Ich habe den Thread nun – hoffentlich korrekt – in‘s Thema transferiert.<br />
<br />
::Der Kapitelaufbau war bereits seit Langem Bestandteil des Artikels:<br />
::*Kapitel "Hilfsprogramme für AUR"<br />
::*Abschnitt "Allumfassende Hilfsprogramme"<br />
::*Unterabschnitt "yaourt"<br />
<br />
::Diese Gliederung habe ich vom Prinzip her beibehalten, sie ist nicht meine Erfindung.<br />
::*Kapitel "Hilfsprogramme für das AUR"<br />
::*Abschnitt "trizen"<br />
::*Abschnitt "Weitere Hilfsprogramme"<br />
::*Abschnitt "Weblinks"<br />
<br />
::Mit deinem Hinweis auf thematische Replikation hast du schon recht. Ich betrachte das jedoch zunächst einmal als eine Redundanz, die auch in den Versionen zuvor schon gegeben war.<br />
<br />
::Ich kann das auch gerne anders umsetzen. Wie sollen wir vorgehen? <br />
::Beibehalten? Ein separater Artikel zur näheren Vorstellung einzelner AUR-Hilfsprogramme? Einzelartikel zu Helfern wie ''trizen'' etc.?<br />
--[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]]) 15:48, 3. Jan. 2018 (CET)<br />
<br />
Ein frohes neues Jahr wünsch ich euch.<br />
Denke auch, dass wenn man ein AUR-Hilfsprogramm näher vorstellen möchte, dies jeweils in einem separaten Artikel tun sollte. Bei "cower" und "AUR benutzen (Beispiele)" hab ich das auch so gemacht.<br />
Je spezifischer die einzelnen Artikel gehalten sind, desto einfacher ist es sowohl für den Nutzer als auch für die <br />
Wartung der Wiki. Das der AUR Artikel zu yaourt Bezug nahm ist wohl dem Umstand zu verdanken, dass es die anderen Artikel zu der Zeit als er geschrieben wurde noch gar nicht gab.--[[Benutzer:Tuxnix|Tuxnix]] ([[Benutzer Diskussion:Tuxnix|Diskussion]]) 17:37, 3. Jan. 2018 (CET)<br />
<br />
:Einzelartikel zu AUR-Hilfsprogrammen in der Kategorie "Paketverwaltung" zu platzieren, finde auch ich deutlich besser und angemessener. Dort wäre (m)ein Artikel zu Trizen richtig plaziert.<br />
<br />
:Den Artikel "Arch User Repository" werde ich dann – falls kein Veto mehr kommt – auf Kapitel 1 und Kapitel 2 gesundschrumpfen.<br />
<br />
:Etliche Anwender, die bisher Pacaur eingesetzt haben, werden vermutlich gerade jetzt überlegen, auf Trizen umzuschwenken. Deshalb lasse ich das Kapitel 3 noch bestehen, bis ich in den kommenden Tagen den neuen Artikel erstellt habe.<br />
<br />
:Auch euch ein gutes neues Jahr! <br />
--[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]]) 20:32, 3. Jan. 2018 (CET)<br />
<br />
== Ein Verzeichnis für eigene Pakete wählen ==<br />
Der Abschnitt kann doch komplett gelöscht werden?<br />
<br />
{{ic|/var/abs/local}} ist veraltet und nicht nötig. Ansonsten enthält der Abschnitt nur die Information dass Pakete nicht als root gebaut werden sollten. Da meckert makepkg aber sowieso. [[Benutzer:Arisinfenix|Arisinfenix]] ([[Benutzer Diskussion:Arisinfenix|Diskussion]]) 09:49, 31. Okt. 2020 (CET)</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=EFI-32_ISO_erstellen&diff=22280EFI-32 ISO erstellen2020-10-30T22:09:48Z<p>Arisinfenix: Script aktualisiert</p>
<hr />
<div>Auf Geräten die nur ein 32-Bit UEFI besitzen, lässt sich das normale Installations ISO nicht starten. Das offizielle ISO kann jedoch modifiziert werden damit es auch auf 32-Bit UEFI Geräten geladen werden kann. Zum Beispiel mit diesem Script:<br />
<br />
#!/bin/bash<br />
# SPDX-License-Identifier: GPL-3.0-or-later<br />
#<br />
# Description: Remaster Arch Linux ISO with 32-bit EFI<br />
# Dependencies:<br />
# command : Arch package<br />
# --------------------------------------<br />
# grub-mkstandalone : grub<br />
# xorriso : libisoburn<br />
# mcopy : mtools<br />
#<br />
# Example: efi32iso ./archlinux-2020.10.01-x86_64.iso<br />
# Creates: ./archlinux-2020.10.01-x86_64-efi32.iso<br />
#<br />
<br />
work_dir="/tmp/efi32iso"<br />
<br />
cleanup() {<br />
umount "${efi_image_dir}" 2>/dev/null<br />
umount "${iso_dir}"<br />
rm -r "${work_dir}"<br />
exit ${1}<br />
}<br />
<br />
if ((UID != 0)); then<br />
printf "This script requires root privileges!\n"<br />
exit 1<br />
fi<br />
<br />
if (($# != 1)); then<br />
printf "Usage: $(basename "${0}") <input_file>\n"<br />
exit 1<br />
fi<br />
<br />
! type -p grub-mkstandalone >/dev/null &&<br />
printf "grub-mkstandalone not found\n" &&<br />
exit 1<br />
<br />
! type -p xorriso >/dev/null &&<br />
printf "xorriso not found\n" &&<br />
exit 1<br />
<br />
! type -p mcopy >/dev/null &&<br />
printf "mcopy not found\n" &&<br />
exit 1<br />
<br />
# check if we have an Arch iso, pattern tested with 2020.10.01<br />
pattern="ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'ARCH_"<br />
if [[ "$(file -b "${1}")" != "${pattern}"* ]]; then<br />
printf "Not a valid iso file!\n"<br />
exit 1<br />
fi<br />
<br />
mkdir "${work_dir}" || exit 1<br />
<br />
iso_file="${1}"<br />
out_file="${iso_file/.iso/-efi32.iso}"<br />
grub_config="${work_dir}/grub.cfg"<br />
efi32_loader="${work_dir}/bootia32.efi"<br />
efi_image_dir="${work_dir}/efi_image" # mount point for original efiboot image<br />
iso_dir="${work_dir}/archiso" # mount point for original iso<br />
new_iso_dir="${work_dir}/newiso" # working directory for new iso<br />
<br />
# create grub config<br />
cat << 'EOF' > "${grub_config}"<br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux archiso x86_64" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap<br />
initrd /arch/boot/x86_64/archiso.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v1.efi<br />
}<br />
EOF<br />
<br />
# extract the iso<br />
mkdir "${iso_dir}"<br />
mount -t iso9660 -o loop "${iso_file}" "${iso_dir}" || cleanup 1<br />
cp -a "${iso_dir}" "${new_iso_dir}" || cleanup 1<br />
<br />
# get label and write it to the grub config<br />
label="$(awk -F '=' '/archisolabel/ {print $3}' \<br />
"${new_iso_dir}/loader/entries/archiso-x86_64-linux.conf")"<br />
sed -i "s/ARCH_YYYYMM/${label}/g" "${grub_config}"<br />
<br />
# generate 32-bit EFI loader<br />
grub-mkstandalone \<br />
-d /usr/lib/grub/i386-efi/ \<br />
-O i386-efi \<br />
--modules="part_gpt part_msdos" \<br />
--fonts="unicode" \<br />
--locales="en@quot" \<br />
--themes="" \<br />
-o "${efi32_loader}" \<br />
"boot/grub/grub.cfg=${grub_config}" || cleanup 1<br />
<br />
# copy 32-bit EFI loader to new iso<br />
cp "${efi32_loader}" "${new_iso_dir}/EFI/BOOT/bootia32.efi" || cleanup 1<br />
<br />
# mount origianl efiboot image<br />
mkdir "${efi_image_dir}"<br />
mount -t vfat -o loop "${new_iso_dir}/EFI/archiso/efiboot.img" "${efi_image_dir}" || cleanup 1<br />
<br />
# calculate new efiboot image size<br />
new_efiboot_imgsize="$(du -bc \<br />
"${new_iso_dir}/EFI/archiso/efiboot.img" \<br />
"${new_iso_dir}/EFI/BOOT/bootia32.efi" \<br />
2>/dev/null | awk 'function ceil(x){return int(x)+(x>int(x))}<br />
function byte_to_kib(x){return x/1024}<br />
function mib_to_kib(x){return x*1024}<br />
END {print mib_to_kib(ceil((byte_to_kib($1)+1024)/1024))}'<br />
)"<br />
<br />
# copy files from original efiboot.img and 32-bit EFI loader to a new image<br />
mkfs.fat -C -n ARCHISO_EFI "${work_dir}/new_efiboot.img" "${new_efiboot_imgsize}" || cleanup 1<br />
mcopy -s -i "${work_dir}/new_efiboot.img" "${efi_image_dir}"/* ::/ || cleanup 1<br />
mcopy -i "${work_dir}/new_efiboot.img" "${efi32_loader}" ::EFI/BOOT || cleanup 1<br />
<br />
# copy new efiboot image to new iso<br />
umount "${efi_image_dir}"<br />
cp "${work_dir}/new_efiboot.img" "${new_iso_dir}/EFI/archiso/efiboot.img" || cleanup 1<br />
<br />
# create new iso<br />
xorriso -as mkisofs \<br />
-iso-level 3 \<br />
-full-iso9660-filenames \<br />
-volid "${label}" \<br />
-eltorito-boot isolinux/isolinux.bin \<br />
-eltorito-catalog isolinux/boot.cat \<br />
-no-emul-boot \<br />
-boot-load-size 4 \<br />
-boot-info-table \<br />
-isohybrid-mbr "${new_iso_dir}/isolinux/isohdpfx.bin" \<br />
-eltorito-alt-boot \<br />
-e EFI/archiso/efiboot.img \<br />
-no-emul-boot \<br />
-isohybrid-gpt-basdat \<br />
-output "${out_file}" \<br />
"${new_iso_dir}"<br />
<br />
cleanup 0<br />
<br />
[[Kategorie:Scripte]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=EFI-32_ISO_erstellen&diff=22267EFI-32 ISO erstellen2020-10-27T12:06:03Z<p>Arisinfenix: Script veraltet (202010)</p>
<hr />
<div>{{veraltet}}<br />
Auf Geräten die nur ein 32-Bit UEFI besitzen, lässt sich das normale Installations ISO nicht starten. Das offizielle ISO kann jedoch modifiziert werden damit es auch auf 32-Bit UEFI Geräten geladen werden kann. Zum Beispiel mit diesem Script:<br />
<br />
#!/bin/bash<br />
<br />
#<br />
# Description: Remaster Arch Linux ISO with 32-bit EFI<br />
# Dependencies: grub-mkstandalone xorriso<br />
#<br />
# Example: efi32iso ./archlinux-2017.08.01-x86_64.iso<br />
# Creates: ./archlinux-2017.08.01-x86_64-efi32.iso<br />
#<br />
<br />
work_dir="/tmp/efi32iso"<br />
<br />
cleanup() {<br />
umount "${efi_image_dir}" 2>/dev/null<br />
umount "${iso_dir}"<br />
rm -r "${work_dir}"<br />
exit ${1}<br />
}<br />
<br />
if ((UID != 0)); then<br />
printf "This script requires root privileges!\n"<br />
exit 1<br />
fi<br />
<br />
if (($# != 1)); then<br />
printf "Usage: $(basename "${0}") <input_file>\n"<br />
exit 1<br />
fi<br />
<br />
! type -p grub-mkstandalone >/dev/null &&<br />
printf "grub-mkstandalone not found\n" &&<br />
exit 1<br />
<br />
! type -p xorriso >/dev/null &&<br />
printf "xorriso not found\n" &&<br />
exit 1<br />
<br />
# check input file, pattern tested with 2017-{06,07,08}<br />
pattern="DOS/MBR boot sector; partition 2 : ID=0xef, \<br />
start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), \<br />
startsector 164, 131072 sectors"<br />
if [[ "$(file -b "${1}")" != "${pattern}" ]]; then<br />
printf "Not a valid iso file!\n"<br />
exit 1<br />
fi<br />
<br />
mkdir "${work_dir}" || exit 1<br />
<br />
iso_file="${1}"<br />
out_file="${iso_file/.iso/-efi32.iso}"<br />
grub_config="${work_dir}/grub.cfg"<br />
efi32_loader="${work_dir}/bootia32.efi"<br />
efi_image_dir="${work_dir}/efi_image" # mount point for new efi image<br />
iso_dir="${work_dir}/archiso" # mount point for original iso<br />
new_iso_dir="${work_dir}/newiso" # working directory for new iso<br />
<br />
# create grub config<br />
cat << 'EOF' > "${grub_config}"<br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux archiso x86_64" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap<br />
initrd /arch/boot/x86_64/archiso.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v1.efi<br />
}<br />
EOF<br />
<br />
# extract the iso<br />
mkdir "${iso_dir}"<br />
mount -t iso9660 -o loop "${iso_file}" "${iso_dir}" || cleanup 1<br />
cp -a "${iso_dir}" "${new_iso_dir}" || cleanup 1<br />
<br />
# get label and write it to the grub config<br />
label="$(awk -F '=' '/archisolabel/ {print $3}' \<br />
"${new_iso_dir}/loader/entries/archiso-x86_64.conf")"<br />
sed -i "s/ARCH_YYYYMM/${label}/g" "${grub_config}"<br />
<br />
# generate 32-bit EFI loader<br />
grub-mkstandalone \<br />
-d /usr/lib/grub/i386-efi/ \<br />
-O i386-efi \<br />
--modules="part_gpt part_msdos" \<br />
--fonts="unicode" \<br />
--locales="en@quot" \<br />
--themes="" \<br />
-o "${efi32_loader}" \<br />
"boot/grub/grub.cfg=${grub_config}"<br />
<br />
# copy 32-bit EFI loader to new iso<br />
cp "${efi32_loader}" "${new_iso_dir}/EFI/boot/bootia32.efi"<br />
<br />
# update EFI image with new loader<br />
mkdir "${efi_image_dir}"<br />
mount -t vfat -o loop "${new_iso_dir}/EFI/archiso/efiboot.img" "${efi_image_dir}" || cleanup 1<br />
cp "${efi32_loader}" "${efi_image_dir}/EFI/boot/" || cleanup 1<br />
umount "${efi_image_dir}" # must be unmounted before calling xorriso<br />
<br />
# create new iso<br />
xorriso -as mkisofs \<br />
-iso-level 3 \<br />
-full-iso9660-filenames \<br />
-volid "${label}" \<br />
-eltorito-boot isolinux/isolinux.bin \<br />
-eltorito-catalog isolinux/boot.cat \<br />
-no-emul-boot \<br />
-boot-load-size 4 \<br />
-boot-info-table \<br />
-isohybrid-mbr "${new_iso_dir}/isolinux/isohdpfx.bin" \<br />
-eltorito-alt-boot \<br />
-e EFI/archiso/efiboot.img \<br />
-no-emul-boot \<br />
-isohybrid-gpt-basdat \<br />
-output "${out_file}" \<br />
"${new_iso_dir}"<br />
<br />
cleanup 0<br />
<br />
[[Kategorie:Scripte]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=KDE&diff=21911KDE2020-08-09T11:17:52Z<p>Arisinfenix: /* KDE Plasma */ unnötigen Wiki Hinweis entfernt</p>
<hr />
<div>{{righttoc}}<br />
Das "'''K Desktop Environment'''" (KDE) stellt folgende Komponenten zur Verfügung. <br />
<br />
* [[Plasma|Plasma]] - Die grafische Arbeitsumgebung<br />
* Applications - Anwendungen<br />
* Framework - Runtime und Bibliotheken <br />
<br />
KDE Software wird mit C++ und Qt entwickelt wobei jede der Komponenten ihrem eigenen Entwicklungszyklus und Versionsschemata folgt.<br />
Plasma und Framework befinden sich wie Qt in der 5. Hauptversion und tragen fortlaufende Unternummern. Die Versionsbezeichnung der KDE Applications wird nach dem Jahr und Monat der jeweiligen [https://community.kde.org/Schedules Veröffentlichung] benannt.<br />
<br />
== KDE Plasma ==<br />
Für [[Plasma|'''Plasma''']] gibt es einen gesonderten Artikel.<br />
<br />
== KDE Applications ==<br />
KDE ist eine der größten unabhängigen Entwicklergemeinschaft für Free and Libre Open Sorce Software (FLOSS) und bietet ein reichhaltiges Programmangebot.<br />
Einen Überblick über die Anwendungen erhält man am Besten auf der Seite [https://www.kde.org/applications/ KDE - Applications] {{sprache|en}}.<br />
<br />
===Volle Installation===<br />
Die Installation aller KDE Anwendungen ist sehr umfangreich. Bei der Installation der Paketgruppe {{Paket|kde-applications}} erhält man dabei die Option einzelne Programmpakete auszuwählen. Hingegen werden bei der Installation des Metapakets {{Paket|kde-applications-meta}} alle KDE Anwendungen als Abhängigkeiten behandelt. Neu hinzu kommende KDE Programme werden dann bei der nächsten Systemaktualisierung automatisch nachinstalliert.<br />
<br />
=== Teil Installation ===<br />
KDE Programme gliedern sich nach ihrem Anwendungsgebiet in folgende Untergruppen. Sie können einzeln oder auch als Metapaket installiert werden.<br />
Folgt man hier der Verlinkung gelangt man zur Paketauflistung von Arch Linux und den betreffenden KDE-Anwendungen im Einzelnen.<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-accessibility-meta kde-accessibility-meta] - Eingabehilfen<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-education-meta kde-education-meta] - Bildung<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-games-meta kde-games-meta] - Spiele<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-graphics-meta kde-graphics-meta] - Graphik<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-multimedia-meta kde-multimedia-meta] - Multimedia<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-network-meta kkde-network-meta] - Netzwerk<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-pim-meta kde-pim-meta] - Persöhnliche Kommunikation<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-sdk-meta kde-sdk-meta] - Entwicklung<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-system-meta kde-system-meta] - System<br />
<br />
* [https://www.archlinux.de/packages/extra/x86_64/kde-utilities-meta kde-utilities-meta] - Werkzeuge<br />
<br />
== Beliebte KDE Anwendungen ==<br />
<br />
=== Dolphin - Dateimanager ===<br />
Geteilte-Ansicht, Tabs, FTP-Zugriff, Dateivorschau und Konsolenfenster sind nur wenige Beispiele für die große Funktionsfülle des Dateimanagers.<br />
Die Installation erfolgt mit:<br />
pacman -S dolphin<br />
<br />
=== Okular - Dokumentenbetrachter ===<br />
Okular beherrscht folgende Dateiformate: PDF, Postscript, DjVu, CHM, XPS, ePub sowie mehrere Grafikformate. Die Installation erfolgt mit:<br />
pacman -S okular<br />
<br />
=== [[Kate]] - Text Editor ===<br />
Der ''KDE Advanced Text Editor'' ist sehr anpassungsfähig und bietet einen großen [https://kate-editor.org/about-kate/ Funktionsumfang]. Er ist ein ''Klartext'' Editor und eignet sich somit für alle Arten von Klar-Text-Dateien, von einfachen Notizen über Konfigurations- bis zu komplexen Programm-Dateien. Die Installation erfolgt mit:<br />
<br />
pacman -S kate<br />
<br />
Durch seine ''Plugin-Architektur'' ist es möglich ihn durch weitere Pakete zu ergänzen. [https://aur.archlinux.org/packages/?O=0&SeB=nd&K=kate+plugin&outdated=&SB=n&SO=a&PP=50&do_Search=Go Einige] finden sich im [[AUR]].<br />
<br />
=== Yakuake - Drop-Down Terminal ===<br />
Ein praktisches Tool für den schnellen Konsolenzugriff per {{taste|F12}} Taste. Die Installation erfolgt mit:<br />
pacman -S yakuake<br />
Damit yakuake jederzeit zur Verfügung seht sollte der Befehl {{ic|yakuake}} bei Systemstart (Autostart) eingebunden werden.<br />
<br />
=== PIM (Kontact) - Persönliche Kommunikation ===<br />
<br />
Das ''Personal Informations Managment'' besteht aus einer Auswahl einzelner Programme die in der Anwendung '''Kontact''' zu einer funktionellen Einheit zusammengeführt werden. Durch den Datenbankserver Akonadi können sie untereinander auf ihre Daten zugreifen.<br />
Die einzelnen Anwendungen können unabhängig von einander installiert werden und sind jeweils auch einzeln nutzbar.<br />
<br />
Diese Programme können in Kontact integriert genutzt werden:<br />
[[Datei:Kontact.png|350px|thumb|right]]<br />
* {{Paket|Akregator}} Newsfeed Reader<br />
* {{Paket|KAddressBook}} Adressbuch<br />
* {{Paket|KJots}} Notizbuch<br />
* {{Paket|KMail}} E-Mail Client<br />
* {{Paket|KNode}} Usenet Reader<br />
* {{Paket|KNotes}} Notiz Zettel<br />
* {{Paket|KOrganizer}} Terminkalender <br />
* {{Paket|TimeTracker}} Zeittracker<br />
* {{Paket|Summary}} Übersicht<br />
<br />
Mit der folgenden Eingabe können alle PIM Anwendungen installiert werden:<br />
pacman -S kdepim-meta<br />
<br />
==== Akonadi ====<br />
Die Programme der PIM Anwendung sind auf Akonadi zwingend angewiesen. Einige der Plasma-Widgets wie z.B. die Digitaluhr verwenden ebenfalls Akonadi.<br />
Ist die Akonadi Datenbank beschädigt kann z.B. KMail auch nicht mehr laufen.<br />
Hier kann es helfen die Datenbank von Akonadi zu löschen.<br />
Da die Akonadi Datenbank lediglich Kopien der original Daten beherbergt, gehen hierdurch keine Daten verloren.<br />
<br />
Stoppen von Akonadi (Achtung: Dieser Vorgang dauert einige Zeit)<br />
<br />
akonadictl stop<br />
<br />
Status prüfen von Akonadi, ob dieser auch wirklich beendet wurde<br />
<br />
akonadictl status<br />
<br />
Löschen der Akonadi Datenbank(en)<br />
<br />
rm -rf $HOME/.local/share/akonadi/db_data<br />
<br />
Starten von Akonadi<br />
<br />
akonadictl restart<br />
<br />
Sollten beim Starten des Akonadiservers die Datenbanken nicht automatisch neu angelegt werden, muss Akanadi erneut gestoppt werden und die Datenbaken manuell erstellt werden. (Akonadi verwendet das MySQL-Datenbank-Format als Standard).<br />
<br />
mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data --basedir=/usr<br />
<br />
== KDE Integration von Firefox ==<br />
siehe [[Firefox#KDE-Integration]]<br />
<br />
== Siehe auch ==<br />
* [[Plasma]]<br />
* [[Firefox#KDE-Integration]]<br />
== Weblinks ==<br />
* [http://www.kde.org KDE - Homepage] {{sprache|en}}<br />
* [http://kde-look.org/ KDE - Look.org] {{sprache|en}}<br />
* [http://www.kde-forum.de Das deutschsprachige KDE-Forum] {{sprache|de}}<br />
* [http://de.wikipedia.org/wiki/K_Desktop_Environment KDE auf Wikipedia.org] {{sprache|de}}<br />
<br />
[[Kategorie:Desktopumgebung]]<br />
[[Kategorie:Qt]]<br />
[[en:KDE]]<br />
[[ar:KDE]]<br />
[[cs:KDE]]<br />
[[es:KDE]]<br />
[[fa:KDE]]<br />
[[fr:KDE]]<br />
[[it:KDE]]<br />
[[ja:KDE]]<br />
[[pl:KDE]]<br />
[[ru:KDE]]<br />
[[tr:KDE Masaüstü Ortamı]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=ScummVM&diff=21910ScummVM2020-08-09T11:06:52Z<p>Arisinfenix: /* Weblinks */ update</p>
<hr />
<div>[[Bild:Scummvm-1.5.0.png|300px|thumb|Hauptfenster von ScummVM 1.5.0 mit eingeblendetem Informationsdialog]]<br />
ScummVM ist ein Programm, mit dem es möglich ist, klassische Adventure-Spiele wie z.B. Maniac Mansion, Zak McKracken, Monkey Island oder Day of the Tentacle unter den verschiedenen Betriebssystemen zu spielen.<br />
<br />
SummVM ist kein Emulator. Es ersetzt die originalen Binarys der Spiele, nutzt aber die Originaldaten (Grafiken, Sound, etc.). Deshalb können alle unterstützten Spiele auf jedem Betriebssystem, auf dem ScummVM läuft, gespielt werden.<br />
<br />
Somit ist es auch möglich die {{wikipedia|FM_Towns|FM-Towns}}-Versionen, die zum Teil bessere Grafik (z.B. VGA statt EGA bei Zak McKracken) und Sound (z.B. CD-Audio statt MIDI bei Indy3) haben, zu spielen.<br />
<br />
{{Installation|repo=community|paket=scummvm}}<br />
<br />
Zudem gibt es noch {{Paket|scummvm-tools}}, das es ermöglicht, Spieldatendateien zu komprimieren oder zu dekodieren, um sie mit ScummVM benutzen zu können.<br />
<br />
Gestartet wird ScummVM mittels {{ic|scummvm}}, oder über die Desktop-Datei aus einem entsprechenden Starter heraus.<br />
<br />
== Spiele starten ==<br />
Am einfachsten ist es die Spiele über die integrierte Benutzeroberfläche zu starten. Über die „Add“-Funktion fügt man das gewünschte Spiel einfach hinzu. Mit den „Graphics-Mode“-Einstellungen kann man die Grafik anpassen.<br />
<br />
Eine Liste der unterstützten Spiele kann man sich mit dem Parameter {{ic|-z}} anzeigen lassen. Alternativ, kann man sich die Liste auch auf der [http://www.scummvm.org/compatibility.php Homepage] ansehen.<br />
<br />
== Weblinks ==<br />
* [http://www.scummvm.org Hompage von ScummVM] {{sprache|en}}<br />
* [http://la-patches.de LucasArts Patches] {{sprache|de}}<br />
<br />
[[Kategorie:Spiele]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Anleitung_f%C3%BCr_Einsteiger&diff=21816Anleitung für Einsteiger2020-07-22T17:39:59Z<p>Arisinfenix: /* Willkommen bei Arch! */ Teil 3 gibt es nicht mehr, Link entfernt</p>
<hr />
<div>==Vorwort==<br />
===Willkommen bei Arch!===<br />
Dieses Dokument soll dich durch den Installationsprozess und die Konfiguration von Arch-Linux führen. Es richtet sich in erster Linie an neue Arch-Linux-Nutzer und stellt gleichzeitig eine gute Informationsquelle für bestehende Anwender dar. Obwohl man mit dieser Anleitung ein nahezu vollständig konfiguriertes Arch-Linux-System mit grafischer Benutzeroberfläche und gängigen Anwendungen erhält, können hier niemals alle Möglichkeiten aufgezeigt werden. Diese Dokumentation beschränkt sich daher auf die wichtigsten Schritte der Grundinstallation, von denen sich das System weiter ausbauen lässt. Zusätzliche Hilfe findet man im englischen [https://wiki.archlinux.org/index.php/Main_Page Arch Linux-Wiki], im englischen [http://bbs.archlinux.org/ Arch Linux-Forum], aber auch auf der [http://www.archlinux.de/ deutschen Seite], die auch ein [https://bbs.archlinux.de deutschsprachiges Forum] bereitstellt. Häufig gestellte Fragen werden in der [[FAQ]] gesammelt und beantwortet. Vielleicht ist man auch an den Grundprinzipien der Arch Linux-Distribution interessiert, die im englischem Wiki im Artikel [https://wiki.archlinux.org/index.php/The_Arch_Way The Arch Way {{sprache|en}}] erklärt werden.<br />
<br />
Dieser Artikel ist in Teile gegliedert:<br />
<br />
*[https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Teil_1:_Installation_des_Grundsystems Teil 1: Installation des Grundsystems]<br />
<br />
*[https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Teil_2:_Installation_von_X_und_Konfiguration Teil 2: Installation von X und Konfiguration]<br />
<br />
Dem Anwender sollte bewusst sein, dass sich, im Gegensatz zu anderen Linux-Distributionen, die Installation von Arch-Linux deutlich unterscheidet: Das Arch-Linux-System wird im besonderen Maße ''vom Benutzer'' geformt. Die Installation liefert ein Grundsystem mit einer Kommandozeilen-Eingabe (bash-Konsole) und grundlegenden Systemprogrammen. Über die Kommandozeilen-Eingabe werden Pakete (Programme und Bibliotheken) unter Zuhilfenahme des Arch-Linux eigenen Paketmanagers [http://wiki.archlinux.org/index.php/pacman pacman] von den Arch-Linux-Servern heruntergeladen und installiert, bis das System nach den Bedürfnissen des Benutzers eingerichtet ist. Dies erlaubt maximale Flexibilität, Entscheidungsfreiheit und Kontrolle der Systemressourcen. Dadurch, dass der Anwender an vielen Stellen Konfigurationsschritte durchführen muss, wird er mit dem System vertraut und wird es von Grund auf kennenlernen. Diese Vorgehensweise richtet sich einerseits an kompetente GNU/Linux Benutzer, sowie Anwender, die ihr System grundlegend erforschen wollen. <br />
<br />
''Die Entwicklungs-Prinzipien hinter Arch-Linux liegen darin, die Dinge einfach zu halten.'' <br />
<br />
Bedenke, dass 'einfach' in diesem Zusammenhang nicht 'benutzerfreundlich' bedeutet, sondern eher 'ohne unnötige Zusätze, Änderungen oder Komplikationen'. Kurz gesagt: ein eleganter, minimalistischer Ansatz. (http://de.wikipedia.org/wiki/KISS-Prinzip)<br />
<br />
Falls Du denkst, dass etwas Wichtiges fehlt oder nicht funktioniert, schick mir eine Mitteilung an <freigeist [at] elfenbeinturm.cc>. Oder füge die Verbesserung, oder was auch immer Du anfangs gebraucht hast, ein (was die Hauptidee eines Wikis ist :)). Es gibt auch ein [https://bbs.archlinux.org/index.php englisches Arch Forum]-Eintrag, der Anfängern gewidmet ist. Oder gehe zum [http://forum.archlinux.de/ deutschen Arch Forum].<br />
<br />
*''Falls Du zu diesem Wiki beitragen möchtest, füge bitte das 'Weshalb' und das 'Wie' ein, wenn es passend ist. Die beste Dokumentation lehrt uns das Wie sowie das Warum!''<br />
<br />
===Das neueste ISO-Abbild beziehen ===<br />
Das neueste ISO-Abbild kann von [http://www.archlinux.org/download/ www.archlinux.org/download/] heruntergeladen werden.<br />
<br />
Das ISO-Abbild beinhaltet nur die nötigen Programme, um ein minimales GNU/Linux Grundsystem zu installieren. ''Beachte, dass ein minimales Grundsystem keine grafische Oberfläche enthält.'' Der Rest des Arch-Linux-Systems - einschließlich grafischer Oberfläche - wird von der Kommandozeile aus mit Hilfe von Binärpaketen und Konfigurationsdateien eingerichtet. Dieser Prozess wird detailliert weiter unten besprochen.<br />
<br />
====ISO-Abbild prüfen====<br />
Beim Download mittels Torrent oder Magnet Link wird die ISO-Datei automatisch nach dem Download auf Übereinstimmung mit dem Original überprüft.<br />
Wird das ISO-Abbild per HTTPS heruntergeladen, sollte eine Prüfung mit der MD5- oder SHA1-Summe stattfinden.<br />
Wenn jedoch eine CD oder DVD erstellt werden soll, ist es besser diese Prüfung erst nach dem Brennvorgang zu tätigen.<br />
md5sum archlinux-*-x86_64.iso<br />
oder<br />
sha1sum archlinux-*-x86_64.iso<br />
( * ist mit dem Datum der Arch.iso Datei zu ersetzen.)<br><br />
Die so ermittelte Zeichenkette sollte mit den Angaben auf der Webseite übereinstimmen. <br />
<br />
====ISO-Abbild auf CD brennen ====<br />
Brenne das ISO-Abbild auf eine CD oder DVD. Generell ist es ratsam, mit einer Geschwindigkeit von maximal 12x zu brennen, um verlässliche CDs zu erhalten.<br />
<br />
Falls die CD mit einer anderen Linux-Distribution gebrannt werden soll, so kann dies mit k3b oder Brasero oder per Kommandozeile durchgeführt werden.<br />
wodim dev=/dev/sr0 speed=12 -dao -eject -v archlinux-*-x86_64.iso<br />
oder mit<br />
cdrecord dev=/dev/sr0 speed=12 -dao -eject -v archlinux-*-x86_64.iso<br />
oder mit<br />
cdrskin dev=/dev/sr0 speed=12 -dao -eject -v archlinux-*-x86_64.iso<br />
<br />
Nach dem Brennen sollte man die MD5-Prüfsumme oder die SHA1-Prüfsumme der CD/DVD mit der Downloadwebseite vergleichen. Wurde direkt von [http://www.archlinux.org/download/ www.archlinux.org/download/] heruntergeladen, dann sind die Prüfsummen auf [http://www.archlinux.org/download/ www.archlinux.org/download/] zu sehen.<br />
<br />
md5sum /dev/sr0<br />
<br />
für MD5-Prüfsumme und<br />
<br />
sha1sum /dev/sr0<br />
<br />
für SHA1-Prüfsumme, wobei der Pfad des Laufwerks (sr0) abweichen kann.<br />
<br />
Stimmt eine der Prüfsummen mit derjenigen der Downloadseite überein, ist das gebrannte Medium fehlerfrei.<br />
<br />
Wenn die CD mit Windows gebrannt werden soll, kann das mit dem kostenlosen Programmen CDBurnerXP oder cdrtfe durchgeführt werden.<br />
<br />
====ISO-Abbild auf USB-Stick übertragen====<br />
Soll ein USB-Stick als Bootmedium benutzt werden, so kann das ISO-Abbild auf den USB-Stick übertragen werden, wobei der USB-Stick nicht gemountet sein darf.<br />
Zunächst sollte mit folgendem Befehl die Partitionsbezeichnung des USB-Stick ermittelt werden:<br />
# fdisk -l<br />
Danach kann die ISO-Datei auf den Stick übertragen werden. <br />
# dd bs=4M if=/pfad/archlinux-*-x86_64.iso of=/dev/sdX status=progress oflag=sync<br />
Dabei ist sdX der erkannte USB-Stick. (X ist durch den entsprechenden Buchstaben zu ersetzen.) Beachte: Alle Daten auf dem USB-Stick werden gelöscht!<br><br />
<br />
====ISO-Abbild auf Windows erstellen====<br />
Umbenennen der Endung des Arch-ISO-Images von .iso nach .img .<br><br />
Herunterladen des Programms von http://sourceforge.net/projects/win32diskimager/ . Entpacken und starten.<br><br />
Auswählen des Arch .img Images und des USB-Sticks. Klicken auf write.<br><br />
Ab jetzt kann vom USB-Stick neu gebootet und von dort aus Arch-Linux installiert werden.<br />
<br />
==Teil 1: Installation des Grundsystems==<br />
<br />
Hinweis: Soll Arch Linux von einem bereits installierten Arch Linux-System installiert werden, können mit<br />
pacman -S arch-install-scripts <br />
die benötigten Tools heruntergeladen werden, um eine Installation ohne ISO durchzuführen.<br />
<br />
In diesem Fall kann mit der Partitionierung der Festplatte fortgefahren werden.<br />
<br />
===Die Hardware-Uhr überprüfen===<br />
Prüfe im BIOS, ob die Hardware-Uhr (''real time clock'') im PC '''UTC''' oder '''lokale Zeit''' anzeigt.<br />
<br />
'''Hinweise'''<br />
* Unsere Lokalzeit (es gibt immer wieder Fragen deswegen) ist im Winter UTC+1h, im Sommer UTC+2h. Um UTC zu bekommen, muss man also von unserer Lokalzeit im Winter 1h, im Sommer 2h ''abziehen''.<br />
* Empfehlenswert ist es, die Hardware-Uhr jetzt auf '''UTC''' zu setzen. Standardmäßig (und auf der bei weitem überwiegenden Mehrheit aller Systeme) interpretiert das Betriebssystem später diese Uhrzeit anhand seiner konfigurierten Zeitzone, macht (!) also daraus eine zeitzonenspezifische Lokalzeit. Wenn es sich ursprünglich bereits um eine Lokalzeit handelt, geht dies schief und endet in immer wieder überraschend falschen Uhrzeiteinstellungen.<br />
* Sofern die Hardware-Uhr tatsächlich auf Lokalzeit betrieben werden soll, ist später im Betriebssystem eine Umstellung erforderlich, damit die dortige Interpretation der Hardware-Uhrzeit unterbunden wird. (Die Zeitzone dort auf GMT zu setzen, ist kein guter Weg. Unsere Zeitzone ist und bleibt GMT+1 (Berlin), das ist eine geografische Information.)<br />
<br />
===Starten mit dem Arch Linux ISO===<br />
<br />
Es kann jetzt per CD oder USB-Stick gestartet werden. Es kann sein, dass die Startreihenfolge der Laufwerke des Computers im BIOS geändert oder eine Taste (normalerweise {{Taste|F11}} oder {{Taste|F12}}) während der BIOS-Phase gedrückt werden muss.<br />
Es ist bei UEFI-Rechnern empfehlenswert, „Secure Boot“ im BIOS zu deaktivieren. Falls der PC später einmal mit „Secure Boot“ starten soll, so ist nach der Grundinstallation hier nachzuschlagen: [[UEFI_Installation#Secure_Boot]].<br />
<br />
Arch Linux unterstützt standardmäßig nur 64-Bit-Rechner (x86_64). Ein 32-Bit-System (i686) kann nur über das Community-Projekt [[Arch Linux 32]] installiert werden. Wenn man nicht weiß, ob der Rechner bzw. der Prozessor 64-Bit-tauglich ist, so kann man unter „Hardware Information (HDT)“ &rarr; „Processor“ &rarr; „Main Processor“ die Information erhalten. &ndash;<br />
Wird dort „X86_64&nbsp;''Yes''“ angezeigt, ist der Rechner 64-Bit-tauglich. (Zurücknavigieren kann man mit den Cursor-Tasten.)<br />
<br />
Es kann jetzt „Boot Arch-Linux x86_64“ ausgewählt werden.<br />
<br />
Mit der Taste {{Taste|TAB}} können einige nützliche Startoptionen eingegeben werden:<br />
* ''ide-legacy'' falls Probleme mit IDE-Laufwerken bestehen.<br />
* ''noapic acpi=off pci=routeirq nosmp'' wenn sich das System beim Starten aufhängt.<br />
* ''lowmem'' ist für ältere Maschinen nützlich. Dies braucht nur 96&nbsp;MB Arbeitsspeicher entgegen 256&nbsp;MB bei normaler Installation.<br />
<br />
Anstatt Arch Linux zu booten, können noch folgende Funktionen ausgeführt werden:<br />
<br />
* ''memtest86+'', um den Arbeitsspeicher auf Fehler zu prüfen.<br />
* ''Hardware-Informationen anzeigen lassen.<br />
* ''Neu starten.<br />
* ''Herunterfahren und ausschalten.<br />
'''Information:'''<br />
Der Installationsprozess kann jederzeit abgebrochen werden mit den Befehlen:<br />
poweroff<br />
oder:<br />
reboot<br />
Der Befehl {{ic|reboot}} startet den Computer neu, {{ic|poweroff}} fährt ihn herunter. &ndash; Der Computer wird dabei also ''nicht'' einfach ausgeschaltet/„stromlos gemacht“, wie der Name des Befehls eventuell vermuten lässt.<br />
====Ändern der 'Tastaturbelegung'====<br />
Nach dem Booten von Arch Linux muss das richtige Tastaturlayout eingestellt werden:<br />
{{Hinweis|Da zu diesem Zeitpunkt noch das US-englische Tastaturlayout eingestellt ist, muss man die Taste {{Taste|Z}} drücken, um das Zeichen '''y''' (Ypsilon) zu erhalten und {{Taste|ß}} für '''-''' (Minus). &ndash; '''Alternativ:''' Die Zeichen Unterstrich und Minus sind leichter einzugeben, wenn man zuerst auf ''de'', danach auf ''de_CH-latin1'' wechselt.}}<br />
loadkeys de<br />
Wenn die Akzenttasten ({{Taste|^}}, {{Taste|~}}, {{Taste|`}}) verwendet werden sollen, dann noch:<br />
loadkeys de-latin1<br />
oder ohne Akzenttasten:<br />
loadkeys de-latin1-nodeadkeys<br />
Für die Schweiz:<br />
loadkeys de_CH-latin1<br />
<br />
Installiert man auf einem System mit einer anderen Tastaturbelegung, bspw. einem Laptop, kann man unter /usr/share/kbd/keymaps/ die gewünschte Keymap suchen und anschließend bspw. mit<br />
loadkeys /usr/share/kbd/keymaps/i386/qwertz/de-mobii.map.gz<br />
laden.<br />
<br />
===Partitionierung der Festplatte===<br />
Bereits vorhandene Partitionen kann man mit lsblk oder ausführlicher mit blkid auflisten lassen. z.B. wenn ein anderes Linux oder Windows auf der Festplatte installiert ist.<br><br />
Es gibt mehrere Möglichkeiten, ein Betriebssystem zu laden. Entsprechend muss man wissen, welche Partitionen und welche Partitionstabelle zu benutzen sind.<br />
<br />
Booten per '''BIOS''' (oder auch Legacy-boot genannt):<br> Es kann eine<br><br />
'''MSDOS-Partitionstabelle''' Partitionierungswerkzeug '''fdisk''' oder eine<br><br />
'''GPT-Partitionstabelle''' Partitionierungswerkzeug '''gdisk''' benutzt werden.<br><br />
Es wird dazu ein Bootmanager benötigt, (z.B. '''Grub''' für 32bit und 64 bit Systeme oder '''Syslinux''' für 32bit Systeme).<br><br />
Der Bootmanager grub benötigt bei Legacy-boot und GPT-Partitionstabelle eine zusätzliche Bios-boot-Partition vom Typ EF02 und 1MiB Größe.<br />
<br />
Booten per '''UEFI''':<br><br />
Es ist eine '''GPT-Partitionstabelle''' Partitionierungswerkzeug '''gdisk''' erforderlich. Es wird zusätzlich eine '''UEFI System Partition''' vom Typ EF00 benötigt. Diese wird auch als Bootpartition benutzt.<br><br />
Als Bootloader kann '''systemd-boot''' oder '''EFISTUB''' oder '''Grub''' oder '''rEFind''' benutzt werden. Für UEFI Installation bitte hier weiter lesen: [[UEFI Installation]]<br><br />
<br />
<br />
Es wird mindestens eine Root-Partition und eine Swap-Partition benötigt.<br />
<br />
'''Für ein Verschlüsseltes System:'''<br><br />
<br />
Soll das gesamte System verschlüsselt werden, sollte die Schritt-für-Schritt-Anleitung [[Systemverschlüsselung mit dm-crypt]] befolgt werden. Allgemeine Informationen zum de-facto-Standard der Verschlüsselung auf Blockebene können auf [[dm-crypt]] nachgelesen werden.<br />
<br />
'''Für eine GPT-Partitionstabelle:'''<br><br />
<br />
gdisk /dev/sda<br />
<br />
Eine genaue Beschreibung sollte unter [[gpt]] nachgelesen werden.<br><br />
<br />
'''Für eine MSDOS Partitionstabelle:'''<br><br />
<br />
fdisk /dev/sda<br />
<br />
Eine genauere Beschreibung sollte unter https://wiki.archlinux.de/title/MSDOS_Partitionstabelle nachgelesen werden.<br><br />
Das dort beschriebene Beispiel knüpft an diesen Abschnitt an.<br />
<br />
(Falls die GPT-Partitionstabellen-Anleitung oder die MSDOS-Partitonstabellen-Anleitung verwendet wird, kann Anschließend zu folgendem Kapitel gesprungen werden: https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Einbinden_der_Partitionen<br />
<br />
Hier eine Kurzfassung (Beispiel):<br />
<br />
Hier im Beispiel wird angenommen, dass die erste Partition auf der ersten Festplatte für die Root-Partition und die zweite Partition für die Swap-Partition benutzt wird. Es ist sinnvoll die Dateisysteme durch ein einzigartiges, frei wählbares Label zu bezeichnen.<br><br />
/dev/sda1 für Root (/) mit 20 Gigabyte mit setzen des Bootflags (nur als Beispiel; bitte individuell anpassen) und /dev/sda2 für Swap mit 500 Megabyte (ebenfalls nur ein Beispiel; bitte individuell anpassen).<br />
<br />
fdisk /dev/sda<br />
Command (m for help): n<br />
Partition type:<br />
p primary<br />
e extended<br />
Select (default) p): p<br />
Partition number (1-4, default 1): 1<br />
First sector (2048-.., default 2048): enter<br />
Last sector, +sectors or +size{K,M,G} (..): +20G<br />
Partition 1 of type Linux and of size 20 GiB is set<br />
Command (m for help): a<br />
Partition number (1-2): 1<br />
Command (m for help): n<br />
..(wie zuvor bei Partition1)<br />
Command (m for help): t<br />
Partition number (1-4): 2<br />
Hex code (type L to list codes): 82<br />
Command (m for help): p<br />
Device Boot Start End Blocks Id System<br />
/dev/sda1 2048 xxx xxx 83 Linux<br />
/dev/sda2 xxx xxx xxx 82 Linux swap /Solaris<br />
Command (m for help): w<br />
<br />
===Anlegen der Dateisysteme===<br />
=====Permanentspeicher=====<br />
Die meisten Dateisysteme für Permanentspeicher werden mit dem Programm {{ic|mkfs}} angelegt, wobei der Typ des Dateisystems klar benannt werden muss. Dazu dienen verschiedene links, z.B. {{ic|mkfs.ext4}}, der ein Dateisystem vom Typ ''ext4'' anlegt.<br />
<br />
Anlegen des Dateisystems vom Typ ext4 auf der Root-Partition sda1 mit der Bezeichnung p_arch:<br />
mkfs.ext4 -L p_arch /dev/sda1<br />
<br />
Anzumerken ist, dass Linux nicht in der Lage ist, von jedem Dateisystemtyp aus zu booten. Für die boot-Partition ist die Auswahl also eingeschränkt. Außerdem sollte die Bezeichnung des Dateisystems nicht mehrfach vergeben werden. Um Probleme zu vermeiden sollte eine beliebige aber eindeutige Bezeichnung gewählt werden.<br />
<br />
=====Swap-Partition=====<br />
Eine Swap-Partition ist der Platz einer Festplatte, der den "virtuellen Speicher" beheimatet. Falls die Prozesse mehr RAM brauchen als physikalisch vorhanden, kann Linux die Anfrage nicht bearbeiten und ein Fehler tritt auf. Eine swap Partition hilft in dieser Situation, indem physikalischer RAM durch virtuellen RAM erweitert wird. Linux benutzt diesen Platz der Festplatte (die Swap-Partition), um die Informationen, welche nicht mehr in den physikalischen RAM passen, zu speichern (in Wahrheit ist es ein wenig komplizierter, da Linux versucht, Informationen ins Swap zu schreiben, die nicht oft benötigt werden). Da eine Festplatte im Vergleich zu physikalischem RAM sehr langsam ist, ist dies nur ein Behelf.<br />
<br />
Anlegen des Dateisystems vom Typ swap auf der Swap-Partition sda2 mit der Bezeichnung p_swap:<br />
mkswap -L p_swap /dev/sda2<br />
<br />
Anzumerken ist, dass diese Partition für den Fall, dass zu Energiesparzwecken das RAM auf die Platte ausgelagert werden soll (suspend2disk), mindestens so gross wie das physisch vorhandene RAM sein muss, da sonst Letzteres nicht hineinpasst. Wenn also 4 GB physisches RAM zur Verfügung stehen, muss hierfür auch mindestens ein 4 GB Swap-Partition angelegt werden.<br />
<br />
===Einbinden der Partitionen===<br />
Einbinden der Rootpartition<br />
mount -L p_arch /mnt<br />
<br />
====Einbinden weiterer Partitionen (optional)====<br />
Falls doch mehrere Partitionen benutzt werden sollen, z.B. eine separate Bootpartition und eine separate Homepartition, so sollten diese jetzt mit eingebunden werden.<br />
mkdir /mnt/boot<br />
mkdir /mnt/home<br />
mount /dev/sda3 /mnt/boot<br />
mount /dev/sda4 /mnt/home<br />
'''Hinweis:''' Wird auf diese Weise /usr in eine eigene Partition ausgelagert, führt das beim Neustart zu einer Fehlermeldung, weil /sbin/init nicht gefunden werden kann. Seit Umstieg von initscripts auf systemd ist /sbin/init nämlich ein Link auf /usr/lib/systemd/systemd.<br />
<br />
===Einschalten der Swappartition===<br />
per Labels:<br />
swapon -L p_swap<br />
oder per Devicename:<br />
swapon /dev/sda2<br />
<br />
===Netzwerkverbindung herstellen===<br />
Für die Netzwerkverbindung sind 3 Arten von Netzwerkverbindungen möglich.<br><br />
Kabelgebunden (LAN) über einen Router,<br><br />
Kabelgebunden (LAN) mit DSL Modem ohne Router,<br><br />
Kabellose Verbindung (WLAN) Verschlüsseltes WLAN (WPA/WPA2).<br><br />
<br />
Die Netzwerkverbindung wird automatisch aufgebaut, falls dieses als kabelgebundene Netzwerkverbindung (LAN) mit Router per DHCP möglich ist.<br><br />
Testen der Netzwerkverbindung:<br />
ping -c3 www.archlinux.de<br />
PING www.archlinux.de (144.76.107.12) 56(84) bytes of data.<br />
64 bytes from allison.archlinux.de (144.76.107.12): icmp_seq=1 ttl=50 time=19.6 ms<br />
64 bytes from allison.archlinux.de (144.76.107.12): icmp_seq=2 ttl=50 time=19.5 ms<br />
64 bytes from allison.archlinux.de (144.76.107.12): icmp_seq=3 ttl=50 time=30.6 ms<br />
--- www.archlinux.de ping statistics ---<br />
3 packets transmitted, 3 received, 0% packet loss, time 2001ms<br />
rtt min/avg/max/mdev = 19.555/23.312/30.687/5.216 ms<br />
Die Ausgabe ..3 received, 0% packet loss..bedeutet, dass 3 Datenpakete empfangen wurden und keines davon verloren ging.<br><br />
<br />
Wenn hier ''ping unknown host ..''angezeigt wird, so konnte die Netzwerkverbindung nicht hergestellt werden. Es kann Folgendes durchgeführt werden:<br><br />
Name des Netzwerkadapters ermitteln:<br />
ip link<br />
1: lo: <LOOPBACK.....<br />
2: enp4s0: <BROADCAST...<br />
In diesem Fall heißt die Netzwerkkarte enp4s0. Wenn ein kabelgebundener Router vorhanden ist, so wird die Netzwerkverbindung mit einem DHCP-Server aufgebaut.<br />
dhcpcd enp4s0<br />
<br />
Erneutes Testen der Netzwerkverbindung<br />
ping -c3 www.archlinux.de<br />
<br />
====LAN mit DSL Modem ohne Router====<br />
Mit {{Taste|Strg}}+{{Taste|Alt}}+{{Taste|F2}} auf die TTY Nr. 2 wechseln und als root anmelden:<br />
archiso login:root <br />
Danach aufrufen von pppoe-setup<br />
pppoe-setup<br />
Alles weitere wie hier beschrieben: [[PPPoE mit rp-pppoe]]<br />
<br />
Wenn die Verbindung aufgebaut ist, kann die Verbindung getestet werden<br />
ping -c3 www.archlinux.de<br />
wieder zurück zur Konsole 1<br />
Strg+Alt+F1<br />
<br />
====Verschlüsseltes WLAN (WPA/WPA2)====<br />
Soll die Installation über ein verschlüsseltes WLAN durchgeführt werden, so sind 3 Methoden möglich:<br><br />
Zunächst rausfinden wie der Wlanadapter heißt.<br />
ip link<br />
In dieser Anleitung wird der Wlanadapter mit wlp0s1 bezeichnet.<br><br />
<br />
''' Mit Dreizeiler'''<br><br />
SSID ist der Name des Netzwerkes, Passwort ist das Passwort des WLANs. {{ic|wlp0s1}} muss durch den tatsächlichen Namen des WLAN-Gerätes ersetzt werden.<br />
<br />
wpa_passphrase SSID Passwort > /etc/wpa_supplicant/wpa_supplicant.conf<br />
wpa_supplicant -i wlp0s1 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -B<br />
dhcpcd wlp0s1<br />
<br />
Sollte es sich um ein WLAN handeln, das "hidden" ist, muss in der erzeugten Datei '''/etc/wpa_supplicant/wpa_supplicant.conf''' noch der Parameter '''scan_ssid=1''' gesetzt werden.<br />
<br />
'''Mit netctl'''<br><br />
Netctl stellt Beispielprofile für die WLAN-Konfiguration bereit. Wechsle auf eine zweite Konsole mit Strg+Alt+F2. Als root anmelden falls noch nicht geschehen. Die Profile erreicht man unter:<br />
<br />
cd /etc/netctl/examples<br />
ls<br />
<br />
Für ein einfaches Heim-WLAN mit WPA reicht zumeist die Datei wireless-wpa:<br />
<br />
cp wireless-wpa /etc/netctl/<br />
cd ..<br />
nano wireless-wpa<br />
<br />
In das Feld ESSID den Namen des Netzwerkes, in das Passwort-Feld das WLAN-Passwort eintragen. Speichern der Datei.<br />
Starten des WLAN-Netzwerkes <br />
netctl start wireless-wpa<br />
<br />
'''Konfigurieren eines Proxyservers'''<br />
<br />
Soll die Installation per 'FTP' und über einen Proxyserver mit dem Internet verbunden werden, so kann das mit folgender Kommandozeile eingegeben werden:<br />
export http_proxy="<nowiki>http://<servername>:<port>"</nowiki><br />
export ftp_proxy="<nowiki>ftp://<servername>:<port>"</nowiki><br />
Wobei <servername> entweder der Hostname oder die IP-Adresse des Proxyservers ist und <port> die Portnummer (meistens 8080 oder 3128).<br />
<br />
=== Das Basissystem installieren===<br />
Im Folgenden werden die grundlegende Softwarekomponenten installiert.<br />
<br />
==== Optimierung der Spiegelserver ====<br />
Eine Optimierung der Liste der Spiegelserver kann nach erfolgter Internetverbindung mittels {{ic|reflector}} erfolgen.<br />
<br />
==== Installation der Basispakete ====<br />
<br />
pacstrap /mnt base base-devel linux linux-firmware nano<br />
<br />
* {{ic|base}}: Metapaket für ein minimales System.<br />
<br />
* {{ic|base-devel}}: Gruppe für Pakete zum Paketbau (empfohlen).<br />
<br />
* {{ic|linux}}: Der Arch Linux Standardkernel. (Alternativen: {{Paket|linux-lts}}, {{Paket|linux-hardened}})<br />
<br />
* {{ic|linux-firmware}}: Firmware für verschiedene Hardware.<br />
<br />
* {{ic|nano}}: Als Texteditor. Dieser wird in diesem Wiki vorausgesetzt.<br />
<br />
==== Installation weiterer Pakete ====<br />
<br />
Die Installation der Basispakete installiert nur das absolute Minimum an Paketen. Bestimmte Pakete sollten bereits jetzt installiert werden. <br />
<br />
{{Hinweis | "pacman --root /mnt" funktioniert nur, wenn man die Basispakete bereits in ihr zu installierendes System installiert haben! Sollte dies nicht der Fall sein, kann man "pacstrap" verwenden. Weitere Infos stehen im nächstem kleinem Abschnitt unter "Alternativen für 'pacman --root'" :)}}<br />
<br />
{{ic|dhcpcd}} ist erforderlich, um nach dem ersten Booten eine Internetverbindung aufbauen zu können.<br />
<br />
pacman --root /mnt -S dhcpcd<br />
<br />
Optional kann {{ic|bash-completion}} installiert werden um in der späteren chroot Umgebung mit der Taste {{Taste|tab}} eine Autovervollständigung zu bekommen.<br />
<br />
pacman --root /mnt -S bash-completion<br />
<br />
Als Nutzer von Intel- oder AMD-CPUs sollte man erwägen, den CPU-spezifischen microcode zu installieren:<br />
<br />
pacman --root /mnt -S intel-ucode<br />
<br />
bzw.<br />
<br />
pacman --root /mnt -S amd-ucode<br />
<br />
Falls später eine '''WLAN Verbindung''' genutzt werden soll, empfiehlt es sich, {{Paket|wpa_supplicant}} an dieser Stelle nach zu installieren. <br />
<br />
pacman --root /mnt -S wpa_supplicant<br />
<br />
Für eine WLAN-Einrichtung mit '''wifi-menu''' werden zusätzlich noch die Pakete ''netctl'' und ''dialog'' benötigt.<br />
<br />
pacman --root /mnt -S wpa_supplicant netctl dialog<br />
<br />
Es ist sinnvoll, zu überprüfen, ob weitere Pakete benötigt werden, etwa, weil ein anderes Partitionierungsschema gewählt wurde. '''LVM''' ist beispielsweise nicht vorinstalliert. Dies lässt sich natürlich leicht beheben:<br />
<br />
pacman --root /mnt -S lvm2<br />
<br />
======Alternativen für {{ic|pacman --root}}======<br />
#Man wechselt in das zu installierende System mit {{ic | arch-chroot}} und installiert die jeweiligen Pakete ganz normal mit {{ ic | pacman -S <paket-name> }}<br />
#man installiert alle Pakete mithilfe von {{ ic | pacstrap}} so wie es vorhin bereits mit den Basispaketen getan wurde.<br />
<br />
==== fstab erzeugen====<br />
Die fstab (file system table) ist eine Datei, in der festgelegt wird, welche Laufwerke wo in den Verzeichnisbaum eingehängt werden.<br />
<br />
Zur Erzeugung einer fstab mit UUIDs (empfohlen):<br />
genfstab -Up /mnt > /mnt/etc/fstab<br />
Oder zur Erzeugung einer fstab mit Dateisystem-Labels. Hierbei müssen zuvor die Dateisysteme mit eindeutigen Labels versehen sein.<br />
Wurden mehrere Dateisysteme mit dem gleichen Label bezeichnet kann es zu Problemen kommen.<br />
genfstab -Lp /mnt > /mnt/etc/fstab<br />
<br />
Die fstab-Datei wird mit allen eingebundenen Laufwerken erzeugt. Zur Kontrolle kann man die Datei noch einmal ansehen.<br />
cat /mnt/etc/fstab<br />
Sie sollte dann so aussehen:<br />
<br />
Mit UUIDs:<br />
UUID=3eb2e7eb-1ef2-464f-8783-f888d4f630f2 / ext4 rw,relatime,data=ordered 0 1<br />
UUID=67bed99b-1f51-42a5-8e32-35046df4f66e none swap defaults 0 0<br />
<br />
Mit Labels:<br />
LABEL=p_arch / ext4 rw,relatime,data=ordered 0 1<br />
LABEL=p_swap none swap defaults 0 0<br />
<br />
==== In das installierte System wechseln ====<br />
Der Wechsel in die Betriebssystemumgebung von /mnt/ erfolgt mit:<br />
arch-chroot /mnt/<br />
root@archiso /#<br />
Nun befindet man sich immer noch in einer [[chroot]]-Umgebung (''Change root'') und kann vor der eigentlichen Installation über einfache Editoren wie nano oder vi das Zielsystem weiter konfigurieren.<br />
<br />
===Systemkonfiguration===<br />
<br />
====/etc/....====<br />
<br />
Im Folgenden wird die neue Installation konfiguriert. Systemd, das bevorzugte Initsystem bei Arch Linux, greift dabei auf einzelne Klartextdateien zurück. Im Folgenden wird von einer deutschen Standardinstallation ausgegangen.<br />
<br />
'''/etc/hostname'''<br />
<br />
Den Rechnernamen festlegen, im Beispiel myhost:<br />
echo myhost > /etc/hostname<br />
<br />
'''/etc/[[locale.conf]]'''<br />
<br />
Die Spracheinstellung (Locale) auf Deutsch festlegen:<br />
echo LANG=de_DE.UTF-8 > /etc/locale.conf<br />
<br />
{{ Hinweis | de_DE bedeutet Deutsch wie in Deutschland gesprochen. de_CH ist Schwyzerdütsch, de_AT ist das Deutsche in Östereich.<br />
Mit dem Konsolenbefehl 'cat /etc/locale.gen' kann man sich die übrigen, hier möglichen Werte anzeigen lassen. }}<br />
<br />
'''/etc/locale.gen'''<br />
<br />
Konfiguration von /etc/locale.gen<br />
nano /etc/locale.gen<br />
<br />
Suchen und das # am Anfang folgender Zeilen entfernen:<br />
<br />
#de_DE.UTF-8 UTF-8<br />
#de_DE ISO-8859-1<br />
#de_DE@euro ISO-8859-15<br />
<br />
{{hinweis|Suchen im Editor nano: {{Taste|Strg}}+{{Taste|W}}SUCHBEGRIFF{{Taste|Enter}} Weitersuchen mit gleichem Suchbegriff erneut: {{Taste|Alt}}+{{Taste|W}} oder {{Taste|F16}}}}<br />
<br />
Anschließend Speichern. <br />
Hinweis: Es ist zu empfehlen, en_US.UTF-8 ebenfalls zu installieren, da u. a. Fehlermeldungen bzw. Hinweismeldungen diverser Programme vermieden werden können.<br />
<br />
Locale generieren:<br />
<br />
{{hc|locale-gen|<br />
Generating locales...<br />
de_DE.UTF-8... done<br />
de_DE.ISO-8859-1... done<br />
de_DE.ISO-8859-15@euro... done<br />
Generation complete.}}<br />
<br />
'''/etc/vconsole.conf'''<br />
<br />
Die Tastaturbelegung und Schriftart festlegen:<br />
echo KEYMAP=de-latin1 > /etc/vconsole.conf<br />
echo FONT=lat9w-16 >> /etc/vconsole.conf<br />
<br />
'''/etc/localtime'''<br />
<br />
Die Zeitzone durch einen symbolischen Link festlegen:<br />
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime<br />
<br />
'''/etc/hosts'''<br />
<br />
Konfiguration von /etc/hosts<br />
<br />
{{hc|cat /etc/hosts|<br />
#<ip-address> <hostname.domain.org> <hostname><br />
127.0.0.1 localhost.localdomain localhost<br />
::1 localhost.localdomain localhost}}<br />
<br />
'''/etc/resolv.conf'''<br />
<br />
Konfiguration von /etc/resolv.conf<br />
<br />
Diese Datei muss nur verändert werden, wenn das Netzwerk über statische Adressvergabe eingestellt wird:<br />
{{hc|cat /etc/resolv.conf|<br />
nameserver DNS-Server des Providers}}<br />
<br />
==== Module zusätzlich laden ====<br />
<br />
In der Datei {{ic|/etc/modules-load.d/meinemodule.conf}} werden Kernel-Module angegeben, welche zusätzlich geladen werden müssen. Pro Zeile nur ein Kernel-Modul eintragen:<br />
{{hc|nano /etc/modules-load.d/meinemodule.conf|<br />
modul_1<br />
modul_2}}<br />
<br />
==== /etc/pacman.conf ====<br />
<br />
Konfiguration /etc/pacman.conf<br />
<br />
Dort wird im Normalfall nichts geändert. Für den Fall, dass Du die 64bit-Variante gewählt hast und du weißt, dass du 32bit-Bibliotheken brauchst, so ist das [multilib]-Repository zu aktivieren. Entferne dazu die Kommentarzeichen in den Zeilen:<br />
<br />
[multilib]<br />
SigLevel = PackageRequired TrustedOnly<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
Um das [multilib]-Repository verwenden zu können, muss es zunächst geladen werden. Tut man dies nicht, wird man höchstwahrscheinlich eine Fehlermeldung über die nicht vorhandene Datenbankdatei des [multilib]-Repositories erhalten.<br />
<br />
Um die Pacman Repository Datenbanken neu zu laden, anschließend folgenden Befehl eintippen:<br />
<br />
pacman -Sy<br />
<br />
==== [[Mkinitcpio | Initramfs]] erzeugen ====<br />
<br />
mkinitcpio -p linux<br />
<br />
====Root Password====<br />
<br />
Setzen des Root-Passworts. Man vergewissere sich, dass man es nicht vergisst.<br />
{{hc|passwd|<br />
Enter new UNIX password: geheim<br />
Retype new UNIX password: geheim}}<br />
<br />
====Installation eines Bootloaders====<br />
Nachfolgend werden die wohl am einfachsten zu installierenden Bootloader beschrieben.<br />
* [https://wiki.archlinux.de/index.php?title=Anleitung_für_Einsteiger#Installation_des_GRUB_Bootloaders GRUB Bootloader]<br />
und<br />
* [https://wiki.archlinux.de/index.php?title=Anleitung_für_Einsteiger#Installation_des_Syslinux_Bootloader Syslinux Bootloader]<br />
<br />
Weitere Bootloader sind hier aufgelistet: [https://wiki.archlinux.de/title/Kategorie:Bootloader Bootloader]<br />
<br />
=====Installation des GRUB Bootloaders=====<br />
Für Benutzer von intel-ucode bitte folgende Seite zusätzlich beachten: [[Microcode]].<br><br />
Zur Beachtung: Falls eine GPT-Partitionstabelle benutzt wird '''und''' per '''BIOS''' gebootet wird, benötigt Grub eine Bios-Grub-Partition vom Typ EF02. Eine genaue Beschreibung ist unter [[gpt]]:<br><br />
Installation des Pakets:<br />
pacman -S grub<br />
Booten per '''BIOS'''<br />
grub-install /dev/sda<br />
Booten per '''UEFI'''<br />
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=<Boot-Name><br />
Alternativ kann man<br />
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=<Boot-Name> --recheck --debug<br />
verwenden, um zusätzliche Informationen zu bekommen, falls es zu einem Fehler kommt. <br><br />
Wenn man einen etwas längeren Namen mit Leerzeichen für Grub geben möchte, muss man einfach 2 Anführungszeichen anbringen:<br />
--bootloader-id="Ein sehr langer Name für den Grub Bootloader, der auch so im UEFI angezeigt wird :D"<br />
<br />
Weitere '''Konfiguration''' nach BIOS oder UEFI grub-install:<br />
<br />
Es kann jetzt die Grub Konfiguration generiert werden.<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Sollte '''grub-mkconfig''' dabei eine Fehlermeldung wie<br />
...<br />
error: out of memory.<br />
error: syntax error.<br />
error: Incorrect command.<br />
error: syntax error.<br />
Syntax error at line 164<br />
...<br />
<br />
liefern (siehe auch: [https://bugs.archlinux.org/task/38041 "FS#38041 - grub 1:2.00.1282.g5ae5c54-1 will not generate grub.cfg file syntax errors"], sollte das Anhängen folgender Zeile an '''/etc/default/grub''':<br />
# fix broken grub.cfg gen<br />
GRUB_DISABLE_SUBMENU=y<br />
<br />
und ein erneuter Aufruf von '''grub-mkconfig''' Abhilfe schaffen.<br />
<br />
=====Installation des Syslinux Bootloader=====<br />
Wenn bereits ein Linux-Bootloader installiert ist, kann dieser Punkt übersprungen werden. Der bereits vorhandene Bootloader muss natürlich entsprechend konfiguriert werden.<br />
<br />
Zur Beachtung, der Syslinux Bootloader funktioniert nicht bei allen 64bit Dateisystemen wie z.B. ext4. Es muß dann ein anderer Bootloader gewählt werden wie z.B. Grub. Dieser Fehler macht sich erst nach dem Reboot mit folgender Meldung bemerkbar:<br />
Failed to load ldlinux.c32 . Boot failed: Please change disks and press a key to continue.<br />
<br />
Syslinux kann jetzt installiert werden.<br><br />
Bei einer GPT-Partitionstabelle muss das Paket gptfdisk zusätzlich installiert werden.<br />
pacman -S gptfdisk<br />
pacman -S syslinux<br />
Mit einem Editor (nano) die Konfigurationsdatei anpassen:<br />
nano /boot/syslinux/syslinux.cfg<br />
Die Zeilen APPEND root=/dev/sda3 ro ändern in<br />
APPEND root=/dev/sda1 rw<br />
oder wenn man die LABEL-Partitionsbezeichnung bevorzugt:<br />
APPEND root=LABEL=p_arch rw<br />
<br />
Anschließend syslinux auf den Bootsektor installieren<br />
syslinux-install_update -iam<br />
<br />
======Manuelle Installation von syslinux======<br />
<br />
Falls nicht alles reibungslos ablief, kann Syslinux manuell installiert werden.<br />
<br />
Dazu wird mit dem Programm ''fdisk'' das Bootflag auf die Partition gesetzt, von der die Bootdaten gebootet werden sollen.<br><br />
Beispiel, um für /dev/sda1 das Bootflag zu setzen:<br />
fdisk /dev/sda<br />
x<br />
a <br />
p<br />
r<br />
w<br />
<br />
Dann wird die Partition der Bootdaten, wie z. B. /dev/sda1, unter /boot gemountet und der Bootloader installiert.<br />
mount /dev/sda1 /boot<br />
mkdir /boot/syslinux<br />
extlinux --install /boot/syslinux<br />
<br />
Jetzt muss noch der MBR von Syslinux auf die Festplatte geschrieben werden.<br />
cat /usr/lib/syslinux/bios/mbr.bin > /dev/sda<br />
<br />
===Arch Linux neu booten===<br />
Zum Schluss das installierte Arch-Linux verlassen und wieder in das Installationsmedium zurückkehren:<br />
exit<br />
umount /dev/sda1<br />
und neu starten.<br />
reboot<br />
Hinweis: Man sollte im BIOS die Startreihenfolge zurückstellen, z.B. Starten von Festplatte vor CD-Rom oder USB-Stick.<br />
<br />
Wenn alles einwandfrei verlaufen ist, wird das Arch Linux-System nun starten und mit einer Login-Eingabe enden.<br />
myhost login: root<br />
password: geheim<br />
[root@myhost ~]# _<br />
<br />
Herzlichen Glückwunsch und Willkommen zu Deinem Arch Linux-Basissystem.<br />
<br />
===Netzwerk erneut herstellen===<br />
Das Netzwerk kann jetzt, wie oben im Kapitel ''Netzwerkverbindung herstellen'', mit dem richtigen Gerätenamen eingerichtet oder wieder mit {{ic|dhcpcd enp4s0}} gestartet werden.<br />
<br />
Anmerkung: Sollte die Netzwerk-Verbindung via "netctl -u wireless-wpa" gestartet worden sein, funktioniert dies nach der Installation nicht mehr, da "wpa" nicht mit installiert wird. Dies kann man wie folgt abändern:<br />
Erneutes Starten mit der boot-CD, mounten der root-Partition mit "mount /dev/sda1 /mnt". Dann erneutes verbinden mit dem Netzwerk und installieren des Paketes wpa_supplicant ins root-Verzeichnis: "pacstrap /mnt wpa_supplicant". Nach einem Neustart kann sich nun auch die Festplatteninstallation via wpa mit dem Netzwerk verbinden!<br />
<br />
===Regelmäßiges Aktualisieren===<br />
Arch Linux gehört zu den Distributionen, welche sehr schnell aktuelle Softwarepakete zur Verfügung stellen. Darum sollte man ein installiertes Arch Linux mittels pacman aktualisieren und sich angewöhnen, dies regelmäßig zu tun. Es ist sehr hilfreich, vorher auf [https://www.archlinux.de/?page=Start Arch Linux - Aktuelle Neuigkeiten] nachzusehen, ob sich etwas Wichtiges am Gesamtsystem oder an einzelnen Komponenten geändert hat. Es werden erforderliche Lösungsvorschläge und Anleitungen beschrieben.<br />
<br />
====Der Paketmanager pacman====<br />
[[Pacman]] ist der '''pac'''kage '''man'''ager von Arch Linux. Er verwaltet das gesamte Paketsystem, also die Installation, das Löschen, das Downgraden von Paketen u.v.m.; er ist auch zuständig für die Verwaltung selbst kompilierter Programme, das automatische Lösen von Paket-Abhängigkeiten sowie das entfernte und lokale Suchen nach Paketen.<br />
<br />
=====Konfiguration von pacman=====<br />
* /etc/pacman.conf<br />
pacman wird über die Datei {{ic|/etc/pacman.conf}} konfiguriert. Siehe weitere Infos unter [[pacman]].<br />
* /etc/pacman.d/mirrorlist<br />
pacman benötigt die Datei {{ic|/etc/pacman.d/mirrorlist}}, welche die Serveradressen für den Download von Paketen enthält. Siehe weitere Infos unter [[pacman]].<br />
<br />
===Die Schönheit des Rolling Release===<br />
Arch Linux ist eine '''Rolling Release''' Distribution, was bedeutet, dass es im Vergleich zu anderen Linux-Distributionen keine Versionsnummern oder -namen gibt. Diese Form der Verwaltung verzichtet darauf, das ganze System neu installieren zu müssen, um es aktuell und damit auch sicher zu halten – man hat es nun selbst in der Hand, jederzeit upzudaten. Die Benutzung eines Rolling-Release setzt auch ein gewisses Maß an Eigenverantwortung voraus. So ist man z.B. gut beraten, sich vor einer Systemaktualisierung über aktuelle Änderungen oder Schwierigkeiten, die dabei auftreten könnten, zu informieren. Aktuelle Informationen findet man [https://www.archlinux.de/?page=Start hier]{{Sprache|de}}, [https://bbs.archlinux.de/viewforum.php?id=257 hier]{{Sprache|de}},[https://www.archlinux.org/ hier]{{Sprache|en}} und [https://www.archlinux.org/news/ hier]{{Sprache|en}}. Außerdem ist es empfehlenswert, die [https://mailman.archlinux.org/mailman/listinfo/arch-announce Arch-Announce]{{Sprache|en}} Mailingliste zu abonnieren, um stets auf dem neuesten Wissenstand etwaige Änderungen betreffend zu sein.<br />
<br />
====Achtung bei Systemupdates mit neuem Kernel====<br />
Falls der Kernel ein größeres Update erfährt, werden Module, wie zum Beispiel ''' nvidia''' und '''madwifi''' (wird später installiert, falls nötig), unbenutzbar, da die neuen, aktualisierten Paketversionen solcher Module gegen den neueren Kernel gebaut wurden, aber das System derzeit einen älteren verwendet. Ein Neustart wird nötig sein.<br />
<br />
Ebenso könnte nach einer langen Pause ohne Aktualisierung bzw. bei der Aktualisierung eines frischen Systems der Fall eintreten, dass gleichzeitig mit dem neuen Kernel andere Programmpakete oder neue Versionen von bereits vorhandenen mitinstalliert werden, die wichtige Neuerungen beinhalten, auf die der neue Kernel angewiesen ist. Dann ist es wahrscheinlich, dass der Kernel zwar aktualisiert wird, aber ''mkinitcpio'' Fehler beim Durchlaufen der Hooks meldet (wie etwa fehlende Udev-Regeln beim Hook "filesystems"). Das würde dazu führen, dass das System dann nicht mehr startet und etwa von einem anderen Linux-System oder der Live-CD repariert werden muss! Um dergleichen zu vermeiden, genügt es nach so einem Update i.d.R., das Initramfs noch einmal neu zu generieren, und zwar folgendermaßen:<br />
mkinitcpio -p linux<br />
<br />
===Einen Benutzer hinzufügen und Gruppen wählen===<br />
Tägliche Arbeiten sollten nicht mit dem Root-Account gemacht werden, da dieser für administrative Aufgaben vorgesehen ist und ein Arbeiten damit gefährlich sein kann. Deshalb wird nun ein normaler Benutzer hinzugefügt. Beachte, dass Benutzernamen nur Kleinbuchstaben und Sonderzeichen enthalten dürfen:<br />
<br />
In diesem Beispiel heißt der Benutzer duda<br />
<br />
useradd -m -g users -s /bin/bash duda<br />
<br />
passwd duda<br />
Geben Sie ein neues UNIX-Passwort ein:geheim<br />
Geben Sie das neue UNIX-Passwort erneut ein:geheim<br />
passwd: Passwort erfolgreich geändert<br />
<br />
<br />
Falls der Benutzer wieder entfernt werden soll, so kann das mit<br />
userdel -r duda<br />
gemacht werden.<br />
<br />
Ein weiteres wichtiges Werkzeug könnte noch installiert werden, um ein Kommando mit Root-Rechten ausführen zu können.<br />
pacman -S sudo<br />
Damit der Benutzer Root-Rechte bekommt, muss eine Konfiguration verändert werden. Eingabe von:<br />
EDITOR=nano visudo<br />
oder<br />
nano /etc/sudoers<br />
Suchen der folgenden Zeile (steht unterhalb von "## Uncomment to allow members of group wheel to execute any command"):<br />
# %wheel ALL=(ALL) ALL<br />
und entfernen des Kommentatorzeichens und des Leerzeichens.<br />
%wheel ALL=(ALL) ALL<br />
Den Benutzer zu der Gruppe wheel hinzufügen<br />
gpasswd -a duda wheel<br />
<br />
Um dem Nutzer noch Rechte für Audio etc. zu geben, kann er noch in die Gruppen {{ic|audio}}, {{ic|video}}, {{ic|games}}, {{ic|power}} hinzugefügt werden.<br />
<br />
===Weitere nützliche Dienste===<br />
<br />
Sollte das System auf einer SSD betrieben werden, welche TRIM unterstützt, sollte der {{ic|fstrim.timer}} aktiviert werden:<br />
<br />
# systemctl enable --now fstrim.timer<br />
<br />
Jetzt, das heißt bevor wir uns der grafischen Oberfläche und/oder Multimedia zuwenden, ist ein guter Zeitpunkt, ein paar zusätzliche Dienste zu installieren und zu aktivieren.<br />
<br />
# pacman -S acpid dbus avahi cups<br />
<br />
Diese Dienste müssen natürlich auch jeweils explizit gestartet werden. Um dies automatisch beim Booten zu tun, muss systemd dazu angewiesen werden. Dies geschieht durch:<br />
<br />
# systemctl enable <Dienstname> <br />
<br />
Für diese Beispiele: <br />
<br />
# systemctl enable acpid<br />
# systemctl enable avahi-daemon<br />
# systemctl enable org.cups.cupsd.service<br />
<br />
Auch ist es sinnvoll, einen Netwerkservice für den Internetzugang automatisch zu laden:<br />
<br />
Dies können Services wie NetworkManager erledigen. Mehr dazu unter https://wiki.archlinux.de/title/Daemons und unter https://wiki.archlinux.de/title/Daemons/Liste.<br />
<br />
===Cronjobs ausführen lassen===<br />
Einige Pakete legen sogenannte Cronjobs an. Das sind Befehle, die zu bestimmten Zeiten automatisch ausgeführt werden. Im Normalfall braucht man sich um die Cronjobs nicht zu kümmern. Mehr zu diesem Thema unter [[cron]]<br />
# pacman -S cronie<br />
# systemctl enable --now cronie<br />
<br />
Als Alternative zu o.g. klassischen Conrojobs können oft auch ''[https://www.freedesktop.org/software/systemd/man/systemd.timer.html systemd.timer]''s genutzt werden, ohne zusätzliche Software installieren zu müssen.<br />
<br />
===Automatische Zeiteinstellung===<br />
Wer die Zeit automatisch korrigieren lassen will, kann das mit ''systemd-timesyncd'' machen. <br />
systemctl enable --now systemd-timesyncd.service<br />
<br />
Die Zeit wird nach wenigen Sekunden korrekt sein.<br><br />
Um zu sehen, ob die Uhrzeit nun auch wirklich korrekt ist, kann man folgenden Befehl nutzen:<br />
date<br />
Anschließend kann man die Hardwareuhr oder auch RTC oder CMOS-Uhr auf der Hauptplatine korrigieren.<br />
hwclock -w<br />
<br />
Man muss unterscheiden zwischen einer sogenannten Systemzeit und einer Hardwareuhr auf der Hauptplatine des Rechners. Die Hardwareuhr ist die CMOS-Uhr, auch Echtzeituhr oder RTC (real time clock) genannt. Die Systemzeit ist die Zeit, die der Linuxkernel gerade hat (nur so grob). Beim Einschalten übernimmt Linux (Systemzeit) die Hardwareuhrzeit. Beim Herunterfahren wird die Systemzeit '''nicht''' an die Hardwareuhr wieder übergeben. Zur Beachtung: Werden mehrere Betriebssysteme benutzt, sollte nur ein Betriebssystem die Hardwareuhr korrigieren.<br />
<br />
==Teil 2: Installation von X und Konfiguration==<br />
<br />
===Installation und Konfiguration von X===<br />
<br />
Das X Window System (gemeinhin X11, oder einfach nur X) ist ein Netzwerk- und Anzeigeprotokoll, das das Darstellen von Fenstern auf Bildschirmen erlaubt. Es liefert das Standardwerkzeug, um grafische Benutzeroberflächen (graphical user interfaces oder GUIs) auf Unix-ähnlichen Betriebssystemen zu bilden.<br />
<br />
X bietet den grundlegenden Rahmen oder die Grundfunktion, GUI Umgebungen zu bilden: zeichnen und bewegen von Fenstern auf dem Bildschirm sowie Interaktion mit einer Maus und/oder einer Tastatur. X ordnet nicht das Nutzer-Interface - individuelle Client-Programme bewerkstelligen dies.<br />
Nun werden wir mithilfe von pacman die Basis-Pakete von Xorg installieren. Dies ist der erste Schritt, eine GUI zu bilden.<br />
<br />
Mit folgendem Befehl installiert man die dafür notwendigen Basis-Pakete:<br />
<br />
pacman -S xorg-server xorg-xinit<br />
<br />
====Grafiktreiber installieren====<br />
<br />
Jetzt sind die Basispakete installiert, die für die Benutzung des X Servers gebraucht werden. Man sollte zunächst den Treiber der Grafikkarte hinzufügen (z.B. xf86-video-<name>).<br />
<br />
Welchen Treiber man braucht, bekommt man am einfachsten wie folgt heraus:<br />
lspci |grep VGA<br />
01:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)<br />
In diesem Beispiel ist das eine nvidia Grafikkarte. Der freie Grafiktreiber dafür nennt sich "nouveau". Das Paket dazu xf86-video-nouveau.<br />
<br />
Wenn man eine Liste aller '''open-source''' Videotreiber braucht, so kann man eingeben:<br />
pacman -Ss xf86-video | less<br />
Dies ist eine Liste von '''open source''' Treibern und ihren korrespondierenden Chipsets.<br />
<br />
{| class="wikitable"<br />
! Paketname<br />
! Kurzbeschreibung<br />
! Mehr Informationen<br />
|-<br />
!<br />
! ''Für die neuesten Grafikkarten von Intel, AMD und Nvidia''<br />
!<br />
|-<br />
|'''xf86-video-intel'''<br />
|Intel i810/i830/i915/945G/G965+ HDGraphics HDGraphics2 HD4000 Videotreiber<br />
|[[intel]]-ArchWiki '''|''' [https://www.x.org/wiki/IntelGraphicsDriver/ X.Org WIKI] {{sprache|en}}<br />
|-<br />
|'''xf86-video-amdgpu'''<br />
| Neuester AMD Videotreiber ab Grafikkarten ab Volcanic Islands (VI) und neuer (GCN 1)<br />
| [[AMDGPU]]<br />
|-<br />
|'''xf86-video-nouveau'''<br />
|Nvidia Open Source Treiber<br />
|[[nvidia]]<br />
|-<br />
!<br />
! ''Für ältere Grafikkarten von Intel, AMD und Nvidia''<br />
!<br />
|-<br />
|'''xf86-video-ati'''<br />
|Grafikkarten älterer AMD / ATI Grafikkarten<br />
|[[ATI]]<br />
|-<br />
|'''xf86-video-nv'''<br />
|nvidia nv Videotreiber <br />
|<br />
|-<br />
|'''xf86-video-i128'''<br />
|Intel i128 Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-i740'''<br />
|Intel i740 Videotreiber<br />
|<br />
|-<br />
!<br />
! ''Grafiktreiber für Virtualisierungssoftware''<br />
!<br />
|-<br />
|'''xf86-video-vmware'''<br />
|vmware Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-voodoo'''<br />
|voodoo Videotreiber<br />
|<br />
|-<br />
|'''virtualbox-guest-utils'''<br />
|Virtualbox Videotreiber<br />
|<br />
|-<br />
!<br />
! ''Sonstige Treiber''<br />
!<br />
|-<br />
|'''xf86-video-vesa'''<br />
| Der allgemeinste Videotreiber welcher mit vielen modernem Chipsets funktioniert<br />
|<br />
|-<br />
|'''xf86-video-apm''' <br />
|Alliance ProMotion Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-ark'''<br />
|ark Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-chips'''<br />
|Chips and Technologies Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-cirrus'''<br />
|Cirrus Logic Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-glint'''<br />
|GLINT/Permedia Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-imstt'''<br />
|Integrated Micro Solutions Twin Turbo Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-mga'''<br />
|mga Videotreiber (Matrox Graphikadapter)<br />
|<br />
|-<br />
|'''xf86-video-neomagic'''<br />
|neomagic Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-rendition'''<br />
|Rendition Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-s3'''<br />
|S3 Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-s3virge'''<br />
|S3 Virge Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-savage'''<br />
|savage Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-siliconmotion'''<br />
|siliconmotion Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-sis'''<br />
|SiS Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-sisusb'''<br />
|SiS USB Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-tdfx'''<br />
|tdfx Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-trident'''<br />
|Trident Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-tseng'''<br />
|tseng Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-unichrome'''<br />
|unichrome Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-v4l'''<br />
|v4l Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-vga'''<br />
|VGA 16 color Videotreiber<br />
|<br />
|-<br />
|'''xf86-video-via'''<br />
|via Videotreiber<br />
|<br />
|}<br />
<br />
Beachte: Der '''vesa''' Treiber ist der allgemeinste und sollte mit fast jedem modernem Chipset funktionieren. Falls man keinen passenden Treiber für das Videochipset finden kann, '''sollte''' vesa funktionieren.<br />
<br />
Falls man eine nVIDIA oder ATI Videoadapter hat, besteht auch die Möglichkeit, die proprietären nVIDIA oder ATI Treiber zu installieren. Die Installation proprietärer Videotreiber wird unter [[Nvidia]] und unter [[ATI]] bzw für neuere AMD Karten auf [[AMDGPU]] beschrieben.<br />
<br />
Installieren des passenden Videotreibers z.B.:<br />
pacman -S xf86-video-nouveau<br />
<br />
*Falls man immer noch nicht weiß, welcher Videotreiber zu installieren ist, so kann man die gesamte Videotreiber-Pakete-Gruppe installieren. Xorg lädt dann selbst den passenden Treiber.<br />
pacman -S xorg-drivers<br />
<br />
====Sonstige Treiber====<br />
<br />
Bei manchen Laptops kann es mit dem Touchpad zu Problemen kommen. Xorg stellt hierfür auch einen Touchpad-Treiber zur Verfügung. Sollte das Touchpad nur eingeschränkt funktionieren, kann dieser auch ganz zum Schluss noch nachinstalliert werden.<br />
<br />
pacman -S xf86-input-synaptics<br />
<br />
====Deutsche Tastaturbelegung einstellen====<br />
<br />
{{hinweis|Seit der Einführung von systemd kann die Tastaturbelegung statt über Änderung der 20-keyboard.conf auch mit dem Befehl '''localectl set-x11-keymap <layout> <model> <variant> <options>''' eingestellt werden.}}<br />
<br />
'''Über 20-keyboard.conf'''<br />
<br />
Eine Datei erzeugen /etc/X11/xorg.conf.d/20-keyboard.conf und folgendes hinzufügen:<br />
<br />
Section "InputClass"<br />
Identifier "keyboard"<br />
MatchIsKeyboard "yes"<br />
Option "XkbLayout" "de"<br />
Option "XkbModel" "pc105"<br />
Option "XkbVariant" "nodeadkeys"<br />
EndSection<br />
<br />
'''Oder über localectl set-x11-keymap'''<br />
<br />
localectl list-x11-keymap-layouts |less<br />
<br />
Zeigt eine Liste mit allen verfügbaren Tastaturlayouts. Mehrere Layouts können durch Komma getrennt angegeben werden. de sollte für deutsche Tastaturen funktionieren.<br />
<br />
localectl list-x11-keymap-models |less<br />
<br />
Zeigt eine Liste mit allen verfügbaren Tastaturmodellen. pc104 oder pc105 sollte ohne zusätzliche Tasten standartmäßig funktionieren. Für Tastaturen mit speziellen zusätzlichen Tasten muss man um sie zu benutzen das richtige Model finden.<br />
<br />
localectl list-x11-keymap-variants |less<br />
<br />
Zeigt eine Liste mit allen verfügbaren Tastaturvarianten. nodeadkeys sollte für deutsche Tastaturen funktionieren.<br />
<br />
localectl list-x11-keymap-options |less<br />
<br />
Zeigt eine Liste mit allen verfügbaren zusätzlichen Tastaturoptionen. Muss nicht angegeben werden. Sollten mehrere Tastaturlayouts verwendet werden, können zum Beispiel Optionen zum hin- und herwechseln zwischen den Layouts über Tastenkombinationen angegeben werden. Mit grp:alt_shift_toggle wechselt man dann mit alt+shift zwischen den Layouts.<br />
<br />
localectl set-x11-keymap [layout] [model] [variant] [options]<br />
<br />
setzt die Parameter.<br />
<br />
Nach obigem Beispiel für eine deutsche Standardtastatur, einem einzelnen Layout, ohne zusätzliche Optionen oder Tasten folgende Eingabe:<br />
<br />
localectl set-x11-keymap de pc105 nodeadkeys<br />
<br />
===[Optional] Schönere Schriftarten installieren===<br />
<br />
pacman -S ttf-dejavu<br />
<br />
Empfehlenswert ist der Artikel über [[Schriftarten]].<br />
<br />
===Desktopumgebung und Fenstermanager installieren===<br />
Archlinux bietet viele Benutzeroberflächen zur Auswahl an. Eine Übersicht möchte diese [[Liste_von_Anwendungen#Fenstermanager | Seite]] geben.<br />
<br />
Die weiter unten aufgelisteten:<br />
* [https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Der_Xorg_Desktop Zum Punkt Xorg Desktop springen.]<br />
* [https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Der_Plasma_.28KDE.29_Desktop Zum Punkt Plasma Desktop(KDE) springen]<br />
* [https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Der_Gnome_Desktop Zum Punkt GNOME Desktop springen]<br />
* [https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Der_Xfce_Desktop Zum Punkt Xfce Desktop springen]<br />
* [https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Der_LXDE_Desktop Zum Punkt LXDE Desktop springen]<br />
<br />
====Der Xorg Desktop====<br />
Falls kein weiterer Windowmanager oder Desktop installiert werden soll, so kann man die Ressourcen von Xorg installieren um eine Uhr und ein Terminal zu erhalten:<br />
<br />
pacman -S xorg-twm xorg-xclock xterm<br />
<br />
=====Xserver starten=====<br />
Der Xorg-Startmanager muss in die .xinitrc eingetragen werden.<br />
<br />
Falls man keine ~/.xinitrc hat, so kann diese zuerst als '''als normaler Benutzer''' kopiert und danach angepasst werden:<br />
<br />
cp /etc/X11/xinit/xinitrc ~/.xinitrc<br />
<br />
*Anmerkung: ''Wenn die Datei ~/.xinitrc fehlt, wird automatisch auf /etc/X11/xinit/xinitrc zurückgegriffen. Diese Datei nutzt standardmäßig TWM und Xterm.''<br />
<br />
Bearbeiten der Datei /home/Benutzername/.xinitrc '''als normaler Benutzer''', um zu bestimmen, welches X-Server-Ereignis durch den 'startx'-Befehl aufgerufen werden soll.<br />
<br />
nano ~/.xinitrc<br />
<br />
Es könnte dann so aussehen, hier zum Beispiel start xservers:<br />
#!/bin/sh<br />
<br />
userresources=$HOME/.Xresources<br />
usermodmap=$HOME/.Xmodmap<br />
sysresources=/etc/X11/xinit/.Xresources<br />
sysmodmap=/etc/X11/xinit/.Xmodmap<br />
<br />
# merge in defaults and keymaps<br />
<br />
if [ -f $sysresources ]; then<br />
<br />
xrdb -merge $sysresources<br />
<br />
fi<br />
<br />
if [ -f $sysmodmap ]; then<br />
xmodmap $sysmodmap<br />
fi<br />
<br />
if [ -f "$userresources" ]; then<br />
<br />
xrdb -merge "$userresources"<br />
<br />
fi<br />
<br />
if [ -f "$usermodmap" ]; then<br />
xmodmap "$usermodmap"<br />
fi<br />
<br />
# start some nice programs<br />
<br />
if [ -d /etc/X11/xinit/xinitrc.d ] ; then<br />
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do<br />
[ -x "$f" ] && . "$f"<br />
done<br />
unset f<br />
fi<br />
<br />
# twm &<br />
# xclock -geometry 50x50-1+1 &<br />
# xterm -geometry 80x50+494+51 &<br />
# xterm -geometry 80x20+494-0 &<br />
# exec xterm -geometry 80x66+0+0 -name login<br />
<br />
## Für Xserver alleine:<br />
exec xterm<br />
#<br />
## Für andere GUI's:<br />
# exec gnome-session<br />
#<br />
# exec startplasma-x11<br />
# exec openbox-kde-session<br />
# exec startplasmacompositor<br />
#<br />
# exec startxfce4<br />
#<br />
# exec startlxde<br />
#<br />
# exec startlxqt<br />
#<br />
# exec icewm<br />
#<br />
# exec blackbox<br />
#<br />
# exec fluxbox <br />
<br />
''Sicherstellen, dass nur eine '''exec'''-Zeile in ~/.xinitrc auskommentiert ist!''<br />
<br />
Da man noch als root angemeldet ist, muss man sich erst abmelden.<br />
logout <br />
Ein neues Login wird angezeigt. Man kann sich jetzt als Benutzer anmelden.<br />
myhost login : duda<br />
<br />
xserver starten mit:<br />
startx<br />
<br />
Jetzt wird ein sehr spartanisches grafisches Bild mit einer Uhr und einem Terminal angezeigt.<br />
<br />
*Eine detaillierte Anleitung zum Xorg Server findet man hier: [[Xorg]].<br />
<br />
====Der Plasma (KDE) Desktop====<br />
<br />
<br />
=====Installation=====<br />
<br />
Mit diesem Befehl wird [[Plasma]] installiert:<br />
<br />
pacman -S plasma <br />
<br />
Will man plasma mit dem Display-Server Wayland betreiben wird dieses Paket zusätzlich installiert:<br />
pacman -S plasma-wayland-session<br />
<br />
Die KDE Softwaresammlung kann folgendermaßen installiert werden:<br />
<br />
pacman -S kde-applications-meta<br />
<br />
"plasma" und "kde-applications" sind Paketgruppen. Welche Pakete dieser Gruppen installiert werden sollen, wird während der Installation abgefragt.<br />
<br />
KDE empfiehlt SDDM (Simple Desktop Display Manager) als Display Manager. Um SDDM zu installieren, muss Folgendes ausgeführt werden:<br />
<br />
pacman -S sddm<br />
<br />
Es bietet sich an, SDDM mit den Systemeinstellungen von KDE zu konfigurieren. Dafür muss das entsprechende "KConfig Module" installiert werden:<br />
<br />
pacman -S sddm-kcm<br />
<br />
Danach kann SDDM unter<br />
Systemeinstellungen -> Starten und Beenden -> Anmeldebildschirm (SDDM)<br />
(aber auch in /etc/sddm.conf) konfiguriert werden.<br />
<br />
=====Start des Plasma (KDE) Desktops=====<br />
Der KDE desktop lässt sich entweder über den startx Befehl unter Änderung der ~/.xinitrc ändern oder komfortabler automatisch beim Start als Service von Systemd starten lassen.<br />
<br />
======Über startx======<br />
Wie oben beschrieben xserver starten jedoch auskommentieren der Zeile exec startplasma-x11<br />
<br />
nano ~/.xinitrc<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
...<br />
... exec startplasma-x11<br />
<br />
Da man noch als root angemeldet ist, muss man sich erst abmelden.<br />
logout <br />
Ein neues login wird angezeigt. Man kann sich jetzt als Benutzer anmelden.<br />
myhost login : duda<br />
<br />
KDE starten mit:<br />
startx<br />
<br />
======Über Service von Systemd automatisch starten======<br />
<br />
Befehl eingeben:<br />
<br />
systemctl enable sddm<br />
<br />
Beim Neustart wird KDE automatisch mit geladen.<br />
<br />
Mehr Informationen unter [[Plasma]] und [[Login-Manager]].<br />
<br />
====Der Gnome Desktop====<br />
<br />
<br />
=====Installation=====<br />
Mit diesem Befehl werden Gnome und seine Erweiterungen installiert:<br />
<br />
pacman -S gnome gnome-extra<br />
<br />
=====Start des Gnome Desktops=====<br />
<br />
Der Gnome Desktop lässt sich entweder über den startx Befehl unter Änderung der ~/.xinitrc ändern oder komfortabler automatisch beim Start als Service von Systemd starten lassen.<br />
<br />
======Über startx======<br />
<br />
Wie oben beschrieben xserver starten jedoch auskommentieren der Zeile exec gnome-session<br />
nano ~/.xinitrc<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
...<br />
exec gnome-session<br />
<br />
Da man noch als root angemeldet ist, muss man sich erst abmelden.<br />
logout <br />
Ein neues login wird angezeigt. Man kann sich jetzt als Benutzer anmelden.<br />
myhost login : duda<br />
<br />
Gnome starten mit:<br />
startx<br />
<br />
======Über Service von Systemd automatisch starten======<br />
<br />
Befehl eingeben:<br />
<br />
systemctl enable gdm<br />
<br />
Beim Neustart wird Gnome automatisch mit geladen.<br />
<br />
Mehr Informationen unter [[GNOME]] und [[Login-Manager]].<br />
<br />
====Der Xfce Desktop====<br />
<br />
<br />
=====Installation=====<br />
<br />
<br />
Mit diesem Befehl wird Xfce mit Extras und fehlenden Icons installiert:<br />
<br />
pacman -S xfce4 xfce4-goodies human-icon-theme<br />
<br />
'''Hinweis:''' Hier am besten alle Pakete (aktuell 23 Stück) installieren.<br />
<br />
=====Start des Xfce Desktops=====<br />
<br />
Der Xfce Desktop lässt sich über den 'startx'-Befehl unter Änderung der ~/.xinitrc starten.<br />
<br />
======Über startx======<br />
<br />
Falls man keine ~/.xinitrc hat, so kann man diese erstellen oder die Beispieldatei aus /etc/X11/xinit/ in das Home-Verzeichnis kopieren:<br />
<br />
cp /etc/X11/xinit/xinitrc ~/.xinitrc<br />
<br />
*Anmerkung: ''Wenn die Datei ~/.xinitrc fehlt, wird automatisch auf /etc/X11/xinit/xinitrc zurückgegriffen. Diese Datei nutzt standardmäßig TWM und Xterm.''<br />
<br />
Bearbeiten der Datei /home/Benutzername/.xinitrc '''als normaler Nutzer''', um zu bestimmen, welches X-Server-Ereignis durch den 'startx'-Befehl aufgerufen werden soll.<br />
<br />
nano ~/.xinitrc<br />
<br />
Es könnte dann so aussehen, hier zum Beispiel startet Xfce:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
...<br />
...<br />
exec startxfce4<br />
<br />
''Sicherstellen, dass nur eine '''exec'''-Zeile in ~/.xinitrc auskommentiert ist!''<br />
<br />
Da man noch als root angemeldet ist, muss man sich erst abmelden.<br />
logout <br />
Ein neues Login wird angezeigt. Man kann sich jetzt als Benutzer anmelden.<br />
myhost login : duda<br />
<br />
Xfce starten mit:<br />
startx<br />
====Der LXDE Desktop====<br />
<br />
<br />
=====Installation=====<br />
Mit diesem Befehl wird LXDE mit Extras und fehlenden Icons installiert:<br />
<br />
pacman -S lxde<br />
<br />
=====Start des LXDE Desktops=====<br />
Der LXDE Desktop lässt sich entweder über den startx Befehl unter Änderung der ~/.xinitrc ändern oder komfortabler automatisch beim Start als Service von Systemd starten lassen.<br />
<br />
======Über startx======<br />
Falls man keine ~/.xinitrc hat, so kann man diese erstellen oder die Beispieldatei aus /etc/X11/xinit/ in das Home-Verzeichnis kopieren:<br />
<br />
cp /etc/X11/xinit/xinitrc ~/.xinitrc<br />
<br />
*Anmerkung: ''Wenn die Datei ~/.xinitrc fehlt, wird automatisch auf /etc/X11/xinit/xinitrc zurückgegriffen. Diese Datei nutzt standardmäßig TWM und Xterm.''<br />
<br />
Bearbeiten der Datei /home/Benutzername/.xinitrc '''als normaler Nutzer''', um zu bestimmen, welches X-Server-Ereignis durch den 'startx'-Befehl aufgerufen werden soll.<br />
<br />
nano ~/.xinitrc<br />
<br />
Um LXDE zu starten, könnte die Datei so aussehen:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
# Für Xserver alleine:<br />
# exec xterm<br />
# Für Gnome:<br />
# exec gnome-session<br />
# Für KDE:<br />
# exec startplasma-x11<br />
# Für xfce:<br />
# exec startxfce4<br />
# Für LXDE:<br />
exec startlxde<br />
# und Andere:<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
<br />
''Sicherstellen, dass nur eine '''exec'''-Zeile in ~/.xinitrc auskommentiert ist!''<br />
<br />
Da man noch als Root angemeldet ist, muss man sich erst abmelden.<br />
logout <br />
Ein neues Login wird angezeigt. Man kann sich jetzt als Benutzer anmelden.<br />
myhost login : duda<br />
<br />
<br />
LXDE starten mit:<br />
startx<br />
<br />
======Über Service von Systemd automatisch starten======<br />
Befehl eingeben:<br />
<br />
systemctl enable lxdm<br />
<br />
Beim Neustart wird LXDM automatisch gestartet.<br />
Mehr Informationen unter [[LXDE]] und [[Login-Manager]].<br />
<br />
====Weitere Fenstermanager====<br />
<br />
Weitere Fenstermanager können hier angesehen werden:<br />
[https://wiki.archlinux.de/title/Kategorie:Fenstermanager Fenstermanager]<br />
<br />
== siehe auch ==<br />
*[[Arch Install Scripts]]<br />
*[[Installations-Kurzanleitung]]<br />
*[https://wiki.archlinux.org/index.php/Installation_guide Installation Guide] {{sprache|en}}<br />
<br />
[[ar:Installation guide]]<br />
[[bg:Installation guide]]<br />
[[cs:Installation guide]]<br />
[[da:Installation guide]]<br />
[[el:Installation guide]]<br />
[[en:Beginners' Guide]]<br />
[[es:Installation guide]]<br />
[[fi:Installation guide]]<br />
[[fr:Arch install scripts]]<br />
[[hr:Installation guide]]<br />
[[hu:Installation guide]]<br />
[[id:Installation guide]]<br />
[[it:Installation guide]]<br />
[[ja:インストールガイド]]<br />
[[ko:Installation guide]]<br />
[[lt:Installation guide]]<br />
[[nl:Installation guide]]<br />
[[pl:Installation guide]]<br />
[[pt:Installation guide]]<br />
[[ro:Ghid de instalare]]<br />
[[ru:Installation guide]]<br />
[[sk:Installation guide]]<br />
[[sr:Installation guide]]<br />
[[th:Installation guide]]<br />
[[tr:Installation guide]]<br />
<br />
[[Kategorie:Installation]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Pacman&diff=20793Pacman2018-06-20T17:17:39Z<p>Arisinfenix: /* Paccache */</p>
<hr />
<div>Der zentrale Paketmanager Pacman ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format {{ic|.pkg.tar.xz}} (bzw. {{ic|.pkg.tar.gz}} bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositorys stammen, oder vom Benutzer selbst über das [[Arch Build System]] (ABS) erstellt wurden. Auch selbst kompilierte Pakete sollten immer über Pacman installiert werden, damit sie in der zentralen Datenbank erfasst werden.<br />
<br />
Mittels Pacman wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem [[KISS-Prinzip]] wurde Pacman als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden.<br />
<br />
== Installation ==<br />
Pacman ist bereits Bestandteil jeder Arch Linux-Installation.<br />
<br />
== Die wichtigsten Pacman-Befehle ==<br />
Für neue Arch Linux-AnwenderInnen seien zunächst die wichtigsten Pacman-Befehle angeführt.<br />
<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket>''<br />
|Installiert ein Paket<br />
|-<br />
|pacman -R ''<Paket>''<br />
|Deinstalliert ein Paket<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Installation eines Paketes aus einer lokalen Datei (z.B. für ein Downgrade oder zur Installation selbst gebauter Pakete)<br />
|}<br />
Diese Befehle sind der Grundstock, um ein Arch-System einrichten und auf aktuellem Stand halten zu können.<br />
<br />
== Die Pacman-Syntax ==<br />
Der Aufruf der Optionen wird mit einem Minuszeichen eingeleitet und beginnt immer mit einem Großbuchstaben.<br />
<br />
*'''S''' – Synchronisation der lokalen Paketdatenbank mit den Repositorien, welche in der Datei {{ic|/etc/pacman.conf}} aktiviert sind (''Sync'')<br />
<br />
*'''Q''' – Bezieht sich immer auf die lokale Paketdatenbank des Systems (''Query'')<br />
<br />
*'''R''' – Dient zum Entfernen von installierten Paketen (''Remove'')<br />
<br />
*'''D''' – Bearbeitung der lokalen Paketdatenbank (''Database'')<br />
<br />
*'''U''' – Installiert Pakete aus einem lokalen Verzeichnis (''Upgrade'')<br />
<br />
*'''F''' – Sucht das Paket, welches eine Datei beinhaltet (''File'')<br />
<br />
Die vorangestellte Hauptoption kann mit weiteren Optionen in Kleinbuchstaben erweitert und spezifiziert werden, beispielsweise:<br />
*'''s''' – Bewirkt eine Suche. Bei {{ic|-Ss}} wird ein Paketname in der Paketdatenbank gesucht, Bei {{ic|-Rs}} werden die jeweils abhängigen Pakete gesucht und mit entfernt<br />
*'''y''' – Bewirkt eine Aktualisierung der Paketdatenbank (falls es tatsächlich Änderungen gibt)<br />
*'''yy''' – Erzwingt die Aktualisierung der Paketdatenbank auch dann, wenn keine Updates vorhanden sind<br />
<br />
=== Synchronisation und Installation von Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket1 Paket2>''<br />
|Eines oder mehrere Pakete installieren oder aktualisieren<br />
|-<br />
|pacman -Sy<br />
|Lokale Datenbank aktualisieren<br />
|-<br />
|pacman -Su<br />
|Alle installierten Pakete aktualisieren<br />
|-<br />
|pacman -Syy<br />
|Lokale Datenbank komplett neu aufbauen und aktualisieren<br />
|-<br />
|pacman -Syuu<br />
|Alle installierten Pakete downgraden (von Testing nach Core/Extra oder von Community-Testing nach Community)<br />
|-<br />
|pacman -S testing/''<Paket>''<br />
|Paket aus einem spezifischen Repo (hier: testing) installieren<br />
|-<br />
|pacman -Sw ''<Paket>''<br />
|Paket herunterladen, ohne es zu installieren<br />
|-<br />
|}<br />
<br />
=== Informationen zu installierbaren Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Ss ''<Paket>''<br />
|Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung<br />
|-<br />
|pacman -Sg<br />
|Sucht nach installierbaren Paketgruppen<br />
|-<br />
|pacman -Sg ''<Paketgruppe>''<br />
|Zeigt den Inhalt einer Paketgruppe<br />
|-<br />
|pacman -Si ''<Paket>''<br />
|Informationen zu (noch) nicht installierten Paketen anzeigen<br />
|-<br />
|}<br />
<br />
=== Verwaltung lokaler Pakete ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Ein lokales Paket installieren (nicht aus einem Repo)<br />
|-<br />
|pacman -D --asexplicit ''<Paket>''<br />
|Status eines installierten Paketes auf „Ausdrücklich installiert“ setzen<br />
|-<br />
|pacman -D ---asdeps ''<Paket>''<br />
|Status eines installierten Paketes auf „Installiert als Abhängigkeit“ setzen<br />
|-<br />
|pacman -Scc<br />
|Leert das lokale Paketarchiv von Pacman vollständig (''/var/cache/pacman/pkg'')<br />
|-<br />
|pacman -Sc<br />
|Löscht veraltete Pakete aus ''/var/cache/pacman/pkg'' sowie ungenutzte Repositorien aus ''/var/lib/pacman/sync''. <font color="red">Vorsicht</font>, behalten werden nur aktuell installierte Versionen – Vorversionen für ein Paket-Downgrade sind dann nicht mehr vorhanden.<br />
|-<br />
|}<br />
<br />
=== Pakete entfernen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -R ''<Paketname>''<br />
|Deinstallation eines oder mehrerer Pakete (aus AUR oder Repos)<br />
|-<br />
|pacman -Rs ''<Paketname>''<br />
|Wie oben, zusätzlich werden alle abhängige Pakete gesucht und mit entfernt, falls diese nicht von einer anderen Anwendung gebraucht werden<br />
|-<br />
|pacman -Rsc ''<Paketname>''<br />
|Wie oben. Abhängigkeiten werden kaskadierend entfernt<br />
|-<br />
|pacman -Rscn ''<Paketname>''<br />
|Wie oben. Die Konfigurationsdateien der Anwendung werden mit entfernt<br />
|-<br />
|pacman -Rdd ''<Paket>''<br />
|Deinstallation eines Paketes ohne Prüfung bestehender Paketabhängigkeiten. <font color="red">Vorsicht</font>, hierdurch kann die Konsistenz und Funktionstüchtigkeit der Systeminstallation beeinträchtigt werden!<br />
|-<br />
|pacman -Rss ''<Paket>''<br />
|Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen<br />
|-<br />
|}<br />
<br />
=== Abfragen der lokalen Paketdatenbank ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Q<br />
|Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an<br />
|-<br />
|pacman -Qi ''<Paket>''<br />
|Informationen zu bereits installiertem Paket anzeigen<br />
|-<br />
|pacman -Qs ''<Suchmuster>''<br />
|Installierte Pakete nach Name oder einem Begriff in der Beschreibung durchsuchen.<br />
|-<br />
|pacman -Qdt<br />
|Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden<br />
|-<br />
|pacman -Qet<br />
|Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden<br />
|-<br />
|pacman -Ql ''<Paket>''<br />
|Zeigt alle installierten Dateien des Pakets im System<br />
|-<br />
|pacman -Qm<br />
|Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden<br />
|-<br />
|pacman -Qo ''<Pfad zur Datei>''<br />
|Zeigt das Paket an, welches die gesuchte Datei enthält<br />
|-<br />
|pacman -Sy && pacman -Qu<br />
|Aktualisiert die lokale Paketdatenbank und zeigt verfügbare Updates an<br />
|-<br />
|<nowiki>pacman -Qk | grep warning</nowiki><br />
|Überprüft alle Pakete auf fehlende Dateien und schränkt die Ausgabe auf Problempakete ein<br />
|-<br />
|}<br />
<br />
=== Paketdateien suchen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Fy<br />
|Lokale Datenbank aktualisieren (wie ''-Sy'')<br />
|-<br />
|pacman -Fyy<br />
|Lokale Datenbank neu aufbauen und aktualisieren (wie ''-Syy'')<br />
|-<br />
|pacman -Fs ''<Datei>''<br />
|Paket suchen das die Datei enthält<br />
|-<br />
|pacman -Fsx ''<Regex>''<br />
|Wie -Fs, aber Suche mit regulären Ausdrücken (hilfreich, falls der vollständige Dateiname unbekannt ist)<br />
|-<br />
|pacman -Fl ''<Paket>''<br />
|Alle Dateien des Paketes anzeigen<br />
|-<br />
|pacman -Fo ''<Pfad zur Datei>''<br />
|Paketzugehörigkeit einer Datei abfragen<br />
|-<br />
|}<br />
<br />
Es können auch mehrere Befehlsaufrufe kombiniert werden; hier z.B. zur vorhergehenden Prüfung und anschließenden Deinstallation aller verwaisten Pakete:<br />
pacman -Qdtq<br />
pacman -Rsn $(pacman -Qdtq)<br />
<br />
=== Paccache ===<br />
''Paccache'' ist ein Werkzeug zur Bereinigung des Pacman-Cache {{ic|/var/cache/pacman/pkg}}.<br />
<br />
Archivierte Pakete können hiermit differenzierter als mit {{ic|pacman -Scc}} bereinigt werden. Eine Übersicht der Möglichkeiten erhält man mit dem Befehl {{ic|paccache -h}}. Zur Bereinigung des Paket-Cache kann man beispielsweise so vorgehen:<br />
<br />
du -sh /var/cache/pacman/pkg # Belegung des Cache-Speicherplatzes prüfen<br />
paccache -dk2 # Testdurchlauf; Wieviel Platz kann eingespart werden?<br />
paccache -vrk2 # Entfernt Pakete aus dem Cache, behält die jüngsten 2 Versionen<br />
paccache -ruk0 # Alle Pakete aus dem Cache entfernen, die nicht (mehr) installiert sind<br />
<br />
Zur automatischen Bereinugung gibt es einen [[Systemd]] Timer. Bei aktiviertem Timer wird der Cache wöchentlich mit {{ic|paccache -r}} bereinigt.<br />
systemctl enable paccache.timer<br />
<br />
=== Checkupdates ===<br />
Mit ''Checkupdates'' lässt sich prüfen, ob Aktualisierungen für installierte Pakete verfügbar sind, ohne eine komplette System-Aktualisierung ({{ic|pacman -Syu}}) durchzuführen.<br />
checkupdates<br />
Da die Prüfung auf Updates mit ''Checkupdates'' ohne Root-Rechte durchgeführt werden kann, eignet sich der Befehl sehr gut zur Verwendung in [[Conky]] und Scripts.<br />
<br />
=== Bacman ===<br />
Mit Hilfe der Paketdatenbank erstellt ''Bacman'' aus den installierten Dateien eines Paketes wieder ein Paketarchiv {{ic|*.pkg.tar.zx}}.<br />
bacman foobar<br />
<br />
{{hinweis| ''Paccache'' und ''Checkupdates'' sind Bestandteile des Paketes {{Paket|pacman-contrib}}, das mittels Pacman aus dem Repo {{ic|community}} nachinstalliert werden kann.<br />
''Bacman'' wurde nach der Entfernung aus Pacman (v.5.1.0) noch nicht in pacman-contrib eingepflegt und ist zur Zeit (Stand: 20.06.2018) nicht verfügbar.}}<br />
<br />
== Pacman-Datenbank ==<br />
Pacman speichert alle Paketinformationen in Form einer Vielzahl einzelner Dateien als logisch zusammengehörenden Datenbestand im Verzeichnis {{ic|/var/lib/pacman}}.<br />
<br />
<b>Installierbare Pakete:</b><br/><br />
Die Paketinformationen der in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} aktivierten Repositorien ([https://wiki.archlinux.de/title/Pacman#Konfiguration s.u.]) werden im Verzeichnis {{ic|/var/lib/pacman/sync}} gespeichert. Für diese Repos werden von Pacman Dateien mit folgenden Dateiendungen angelegt:<br />
* {{ic|<Repo>.sig}} – PGP-Sicherheitssignatur; diese ist nur für inoffizielle Repos erforderlich und vorhanden (''Textdatei'')<br />
* {{ic|<Repo>.files}} – Enthält die Textdateien {{ic|desc}} und {{ic|files}} mit den entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
* {{ic|<Repo>.db}} – Enthält die Datei {{ic|desc}} mit entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-S}} oder {{ic|-F}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank; er kann mit {{ic|-Sy}} aktualisiert und mit {{ic|-Syy}} neu generiert werden.<br />
<br />
<b>Installierte Pakete:</b><br/><br />
Die Paketinformationen der im System vorhandenen Pakete befinden sich im Unterverzeichnis {{ic|/var/lib/pacman/local}}. Für alle installierten Pakete werden dort gesonderte Verzeichnisse mit Namen und Version des Paketes angelegt; folgende Dateien sind darin enthalten:<br />
* {{ic|desc}} – Paketinformationen, welche mit dem Befehl {{ic|pacman -Qi <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|files}} – Pfadangaben aller mit dem Paket installierten Dateien, die mit dem Befehl {{ic|pacman -Fl <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|mtree}} – Zeit- und Größenangaben sowie Prüfsummen (Hashwerte) aller mit dem Paket installierten Dateien (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-Q}} oder {{ic|-D}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank. Bei Installationen und Deinstallationen erfolgt eine fortlaufende Aktualisierung. Dieser systembezogene Teil der Datenbank kann nicht neu generiert werden, da er Ausgangsreferenz der lokalen Paketverwaltung ist.<br />
<br />
== Konfiguration ==<br />
Die Einstellungen für Pacman sind in der Datei {{ic|/etc/pacman.conf}} gespeichert und können dort angepasst werden.<br />
<br />
=== Allgemeine Einstellungen ===<br />
#RootDir = /<br />
#DBPath = /var/lib/pacman/<br />
#CacheDir = /var/cache/pacman/pkg/<br />
#LogFile = /var/log/pacman.log<br />
#GPGDir = /etc/pacman.d/gnupg/<br />
HoldPkg = pacman glibc<br />
#XferCommand = /usr/bin/curl -C - -f %u > %o<br />
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
#CleanMethod = KeepInstalled<br />
#UseDelta = 0.7<br />
Architecture = auto<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
#IgnorePkg =<br />
#IgnoreGroup =<br />
<br />
#NoUpgrade =<br />
#NoExtract =<br />
* Pakete, die durch {{ic|HoldPkg}} markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.<br />
* Pakete, die mit {{ic|IgnorePkg}} markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.<br />
* Dateien, die durch {{ic|NoUpgrade}} markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format {{ic|datei.pacnew}} an.<br />
* Dateien, die durch {{ic|NoExtract}} markiert sind, werden bei der Installation oder einem Update nicht installiert.<br />
<br />
Seit der Version 4.1 unterstützt Pacman auch farbige Ausgaben. Dazu muss die Option {{ic|#Color}} auskommentiert werden.<br />
<br />
=== Repositorien ===<br />
Offizielle Arch Linux-Pakete sind einem von sechs unterschiedlichen Repositorien zugeordnet:<br />
<br />
* {{ic|[core]}} enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.<br />
* {{ic|[extra]}} enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von [[KDE]] und [[GNOME]].<br />
* {{ic|[testing]}} enthält neue Versionen, die noch nicht hinreichend getestet wurden – mit anderen Worten: Dinge, die etwas kaputt machen könnten.<br />
* {{ic|[community]}} enthält eine Vielzahl zusätzlicher Programme, die ursprünglich nur als PKGBUILD im [[AUR]] zur Verfügung standen, nach einer Testphase jedoch als Binärpakete übernommen wurden. Dieses Repo wird von den [https://wiki.archlinux.org/index.php/Trusted_Users Trusted Users] betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.<br />
* {{ic|[multilib]}} enthält 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
* {{ic|[multilib-testing]}} enthält noch nicht hinreichend getestete 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
<br />
==== Repos festlegen ====<br />
Die Konfiguration der {{ic|/etc/pacman.conf}} ist weitgehend selbsterklärend und erfolgt durch Ein- oder Auskommentierung bestehender Einträge sowie durch Hinzufügen zusätzlicher Einträge.<br />
<br />
==== Inoffizielle Repos verwenden ====<br />
Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Eine Liste inoffizieller Repos findet man im [http://wiki.archlinux.org/index.php/Unofficial_user_repositories engl. Wiki].<br />
<br />
=== Spiegelserver ===<br />
Die Spiegelserver, von welchen Pacman die Pakete zur Installation und für Updates herunterladen soll, werden in der Datei {{ic|/etc/pacman.d/mirrorlist}} gespeichert; ein Auschnitt als Beispiel:<br />
{{bc|<nowiki><br />
## Germany<br />
Server = http://mirror.23media.de/archlinux/$repo/os/$arch<br />
Server = http://mirror.gnomus.de/$repo/os/$arch<br />
#Server = https://mirror.bethselamin.de/$repo/os/$arch<br />
#Server = http://ftp.fau.de/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
Die Wahl der Architektur und der Zugriff auf die Repos ist mit den Variablen {{ic|$repo}} und {{ic|$arch}} gekennzeichnet.<br />
<br />
Pacman greift vorrangig auf den ersten einkommentierten Server-Eintrag zu. Sollte der Server nicht erreichbar sein oder ein Paket dort nicht vorgefunden werden, wird auf den nächsten Server zugegriffen. Für eine optimale Zugänglichkeit vom eigenen Standort aus ist die Wahl heimischer Spiegelserver ratsam.<br />
<br />
Bei Veränderungen der weltweiten Spiegelserver werden von Pacman bei System-Updates automatisch neue Mirrorlisten als {{ic|/etc/pacman.d/mirrorlist.pacnew}} hinterlegt. Bei Bedarf kann man die darin enthaltenen deutschen Server auslesen:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew<br />
<br />
'''Tipp:''' Es reicht aus, nur wenige Spiegelserver in der Mirrorliste zu aktivieren und ggf. weitere, aber auskommentierte Server darunterstehend zu belassen. So kann der favorisierte Server – falls er sich nicht bewähren sollte – leicht durch einen anderen aus der auskommentierten „Vorratsliste“ ersetzt werden.<br />
<br />
==== Optimale Spiegelserver ====<br />
Die Spiegelserver unterscheiden sich in ihrer Aktualität und Geschwindigkeit. Relevante Messwerte sind:<br />
* '''Completion:''' Die Anzahl erfolgreicher Verbindungen bei Tests des Spiegelservers in Prozent; bei weniger als 100% könnte der Server unzuverlässig sein<br />
* '''Delay:''' Durchschnittliche Verzögerungdauer der letzten Synchronisation, diese sollte unter einer Stunde liegen<br />
* '''Duration:''' Durchschnittliche Verbindungs- und Abbrufzeit in Sekunden(bruchteilen); ein hoher Wert kann auf eine Überlastung des Servers hindeuten<br />
* '''Mirror Score:''' Eine grobe Berechnung des Rankings, das sich aus den vorgenannten Werten ergibt<br />
<br />
Eine vollständige Übersicht an Messergebnissen findet man auf der Seite [https://www.archlinux.org/mirrors/status Mirror-Status].<br><br />
Da die dort gelisteten Messergebnisse nicht dem eigenen Standort entsprechen, ist es sinnvoll, selbst Messungen durchzuführen. Das Paket {{Paket|pacman-contrib}} stellt hierfür das Tool ''Rankmirrors'' zur Verfügung. Mit folgendem Befehl können die Antwortzeiten der in der Mirrorliste einkommentierten Server geprüft werden:<br />
rankmirrors -n 0 -t /etc/pacman.d/mirrorlist<br />
Falls man differenzierte Vergleichsergebnisse wie z.B. einen „Mirror Score“ wünscht, kann man das Python-Script [[Reflector]] verwenden.<br />
Eine Liste von 10&nbsp;deutschen Spiegelservern mit der schnellsten Downloadrate erhält man z.B. mit diesem Befehl:<br />
reflector -c Germany -p http -p https --sort rate -n 10<br />
Fügt man am Ende des Befehles die Option {{ic|--info}} hinzu, werden zusätzlich die auf der Seite „Mirror-Status“ verfügbaren Details angezeigt.<br />
<br />
==== Mirrorliste aktualisieren ====<br />
Solange die favorisierten Spiegelserver gut und verlässlich funktionieren, sind Aktualisierungen der Mirrorliste nicht erforderlich. Falls man die Datei {{ic|/etc/pacman.d/mirrorlist}} jedoch auf Basis möglichst optimaler Messwerte aktualisieren möchte, bieten sich die vorgenannten Verfahren an.<br />
<br />
* '''Rankmirrors:''' Man kann die Antwortzeiten der deutschen Spiegelserver aus der Datei {{ic|mirrorlist.pacnew}} messen, aus den Ergebnissen z.B. die 15&nbsp;schnellsten Server extrahieren und von diesen wiederum die 4&nbsp;besten Spiegelserver aktivieren – diese gründliche Messung dauert einen Moment:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew | sed 's/^#//' > /tmp/mirror && rankmirrors -n 15 /tmp/mirror | sed '2,5!s/^S/#S/'<br />
<br />
* '''Reflector:''' Man kann die deutschen Spiegelserver online abrufen, z.B. eine Kurzmessung der Downloadrate durchführen, 15&nbsp;Server mit dem schnellsten Datendurchsatz extrahieren und von diesen die 4&nbsp;besten Spiegelserver aktivieren:<br />
reflector -c Germany -p http -p https --sort rate -n 15 | sed '11,14!s/^S/#S/'<br />
Falls man eine Sortierung auf Basis des bei [https://www.archlinux.org/mirrors/status Mirror-Status] abgerufenen „Mirror Score“ vornehmen möchte, kann man die Anweisung {{ic|--sort rate}} durch {{ic|--sort score}} ersetzen.<br />
<br />
{{hinweis|Beide oben angeführten Befehle geben die Resultate im Terminal aus. Um die vorhandene Mirrorliste zu ersetzten, kann als Ausgabeumleitung '''{{ic|>&nbsp;/etc/pacman.d/mirrorlist}}''' angefügt werden.}}<br />
<br />
==== Mirrorliste erweitern ====<br />
Eine weitere Möglichkeit besteht darin, einen favorisierten Spiegelserver in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} vorzuschalten, zum Beispiel:<br />
[core]<br />
'''Server = <nowiki>http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch</nowiki>'''<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
{{hinweis|Wird ein Spiegelserver in {{ic|/etc/pacman.conf}} eingetragen, sollte unbedingt der gleiche Eintrag bei allen offiziellen Repos erfolgen ({{ic|[core]}}, {{ic|[extra]}}, {{ic|[community]}}, {{ic|[multilib]}}). Ansonsten besteht die Gefahr, dass aufgrund unterschiedlicher Aktualität der Server versucht wird, nicht kompatible Paketversionen zusammenzuführen.}}<br />
<br />
== Keine partiellen Upgrades ==<br />
Arch Linux wird als ''Rolling-Release'' forlaufend aktualisiert. Sobald neue Versionen von Programmbibliotheken {{wikipedia|Programmbibliothek#Unixartige_Systeme|<nowiki>[1]</nowiki>}} in den Repositorien erscheinen, werden vom Arch-Entwicklungsteam alle Pakete, die sich auf diese Bibliothek beziehen, neu (auf)gebaut. Auf diese Weise wird sicher gestellt, dass alle Pakete aus den offiziellen Repos mit der veränderten Schnittstelle der neuen Version funktionieren.<br />
<br />
Sollte man fälschlicherweise nur ein einzelnes Paket aktualisieren, werden mit diesem Paket bei Bedarf neue Versionen von Programmbibliotheken im System integriert. Andere bereits installierte und von einem Upgrade ausgenommene Pakete blieben jedoch weiterhin von älteren Versionen der Bibliotheken abhängig und kämen mit den veränderten Schnittstellen neuerer Versionen nicht zurecht. Aus diesem Grunde werden partielle Upgrades nicht unterstützt.<br />
<br />
Bevor ein neues Paket installiert wird, sollte immer zunächst mit {{ic|pacman -Syu}} eine Aktualisierung des kompletten Systems durchgeführt werden. Vor dem gleichen Hintergund sollte man auch bei Ausnahmen unter {{ic|IgnorePkg}} und {{ic|IgnoreGroup}} sehr umsichtig verfahren (s. [https://wiki.archlinux.de/title/Pacman#Konfiguration Konfiguration]).<br />
<br />
Pakete, die nicht aus den offiziellen Repositorien installiert worden sind (z.B. aus dem [[AUR]]) und sich auf Bibliotheken aus den Repos beziehen, müssen im Falle einer Änderung von {{ic|so}}-Namen (z.B. {{ic|libfoo.so.1}} → {{ic|libfoo.so.1.2}}) auf Anwenderseite neu gebaut werden.<br />
<br />
{{hinweis|Probleme, die auf Versionsunterschiede von Programmbibliotheken zurückzuführen sind, sollte man nicht durch „''Symlinking''“ verschlimmbessern. In der Regel lassen sich solche Probleme mit einem '{{ic|pacman -Syu}}' beheben.}}<br />
<br />
==Hilfe==<br />
=== Keine Verbindung zu einem Mirror===<br />
Aufgrund einer langsamen Internetverbindung oder nicht optimaler Pacman-Konfiguration kann es vorkommen, dass der Verbindungsaufbau zu einem Spiegelserver zu lange dauert und es so zu einem {{wikipedia|Timeout}} kommt. Um dieses Problem zu beheben, kann man – wie im Abschnitt [https://wiki.archlinux.de/title/Pacman#Optimale_Spiegelserver Optimale Spiegelserver] beschrieben – den schnellsten Server suchen und verwenden. Sollte auch das nicht zu gewünschtem Erfolg führen, kann versucht werden, einen alternativen Downloader einzusetzen. Dazu muss man die Datei {{ic|/etc/pacman.conf}} bearbeiten und einen der beiden Einträge durch Entfernen der Raute {{ic|#}} einkommentieren:<br />
{{bc|<nowiki><br />
#XferCommand = /usr/bin/{{Paket|curl}} -C - -f %u > %o<br />
#XferCommand = /usr/bin/{{Paket|wget}} --passive-ftp -c -O %o %u<br />
</nowiki>}}<br />
<br />
=== Bandbreite beschränken ===<br />
Um die Download-Bandbreite zu beschränken, kann in in der Konfigurationsdatei {{ic|/etc/pacman.conf}} innerhalb der Zeile …<br />
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
… dem ''wget''-Befehl die entsprechende Option hinzugefügt werden:<br />
XferCommand = /usr/bin/wget --passive-ftp '''--limit-rate=40k''' -c -O %o %u<br />
<br />
=== Pacman aus Versehen deinstalliert ===<br />
Wie kann Pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Manuelle Variante</span><br />
cd /<br />
bsdtar -x -f /var/cache/pacman/pkg/pacman-*.pkg.tar.xz<br />
<br />
Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist.<br />
Danach Pacman mittels des „neuen“ Pacman wieder installieren, damit der Datenbankeintrag für Pacman selbst wieder angelegt wird.<br />
pacman -S pacman<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Per Installationsmedium</span><br />
<br />
Vom Installationsmedium booten und die deutsche Tastaturbelegung {{ic|loadkeys de}} wählen. Anschließend Partitionen einhängen:<br />
Die Root-Partition nach {{ic|/mnt}} einhängen (Verzeichnis {{ic|/etc}} sollte darin enthalten sein)<br />
Für weitere Partitionen unterhalb {{ic|/mnt}} Ordner anlegen und entsprechend einhängen (bspw. {{ic|/mnt/usr}}). Eine Neuinstallation von Pacman kann nun mit diesem Befehl erfolgen:<br />
pacstrap /mnt pacman<br />
<br />
== Weitere Informationen ==<br />
*[https://www.archlinux.org/pacman/pacman.8.html man pacman]<br />
*[https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf]<br />
*[https://www.archlinux.org/pacman/repo-add.8.html man repo-add]<br />
<br />
== Siehe auch ==<br />
* [[Pacnew- und Pacsave-Dateien]]<br />
* [[Pacman beschleunigen]]<br />
* [[Pacman-Datenbank reparieren]]<br />
* [[Pacman-key]]<br />
* [[Paketliste archivieren]]<br />
* [[Eigene Repositories erstellen]]<br />
* [[Pacman-Tipps]]<br />
* [[Rosettastein Paketverwaltung ]]<br />
<br />
[[Kategorie:Paketverwaltung]]<br />
[[Kategorie:Systemverwaltung]]<br />
[[Kategorie:Befehle]]<br />
[[en:Pacman]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Pacman&diff=20792Pacman2018-06-20T16:31:42Z<p>Arisinfenix: /* Spiegelserver */ rankmirrors -> pacman-contrib</p>
<hr />
<div>Der zentrale Paketmanager Pacman ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format {{ic|.pkg.tar.xz}} (bzw. {{ic|.pkg.tar.gz}} bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositorys stammen, oder vom Benutzer selbst über das [[Arch Build System]] (ABS) erstellt wurden. Auch selbst kompilierte Pakete sollten immer über Pacman installiert werden, damit sie in der zentralen Datenbank erfasst werden.<br />
<br />
Mittels Pacman wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem [[KISS-Prinzip]] wurde Pacman als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden.<br />
<br />
== Installation ==<br />
Pacman ist bereits Bestandteil jeder Arch Linux-Installation.<br />
<br />
== Die wichtigsten Pacman-Befehle ==<br />
Für neue Arch Linux-AnwenderInnen seien zunächst die wichtigsten Pacman-Befehle angeführt.<br />
<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket>''<br />
|Installiert ein Paket<br />
|-<br />
|pacman -R ''<Paket>''<br />
|Deinstalliert ein Paket<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Installation eines Paketes aus einer lokalen Datei (z.B. für ein Downgrade oder zur Installation selbst gebauter Pakete)<br />
|}<br />
Diese Befehle sind der Grundstock, um ein Arch-System einrichten und auf aktuellem Stand halten zu können.<br />
<br />
== Die Pacman-Syntax ==<br />
Der Aufruf der Optionen wird mit einem Minuszeichen eingeleitet und beginnt immer mit einem Großbuchstaben.<br />
<br />
*'''S''' – Synchronisation der lokalen Paketdatenbank mit den Repositorien, welche in der Datei {{ic|/etc/pacman.conf}} aktiviert sind (''Sync'')<br />
<br />
*'''Q''' – Bezieht sich immer auf die lokale Paketdatenbank des Systems (''Query'')<br />
<br />
*'''R''' – Dient zum Entfernen von installierten Paketen (''Remove'')<br />
<br />
*'''D''' – Bearbeitung der lokalen Paketdatenbank (''Database'')<br />
<br />
*'''U''' – Installiert Pakete aus einem lokalen Verzeichnis (''Upgrade'')<br />
<br />
*'''F''' – Sucht das Paket, welches eine Datei beinhaltet (''File'')<br />
<br />
Die vorangestellte Hauptoption kann mit weiteren Optionen in Kleinbuchstaben erweitert und spezifiziert werden, beispielsweise:<br />
*'''s''' – Bewirkt eine Suche. Bei {{ic|-Ss}} wird ein Paketname in der Paketdatenbank gesucht, Bei {{ic|-Rs}} werden die jeweils abhängigen Pakete gesucht und mit entfernt<br />
*'''y''' – Bewirkt eine Aktualisierung der Paketdatenbank (falls es tatsächlich Änderungen gibt)<br />
*'''yy''' – Erzwingt die Aktualisierung der Paketdatenbank auch dann, wenn keine Updates vorhanden sind<br />
<br />
=== Synchronisation und Installation von Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket1 Paket2>''<br />
|Eines oder mehrere Pakete installieren oder aktualisieren<br />
|-<br />
|pacman -Sy<br />
|Lokale Datenbank aktualisieren<br />
|-<br />
|pacman -Su<br />
|Alle installierten Pakete aktualisieren<br />
|-<br />
|pacman -Syy<br />
|Lokale Datenbank komplett neu aufbauen und aktualisieren<br />
|-<br />
|pacman -Syuu<br />
|Alle installierten Pakete downgraden (von Testing nach Core/Extra oder von Community-Testing nach Community)<br />
|-<br />
|pacman -S testing/''<Paket>''<br />
|Paket aus einem spezifischen Repo (hier: testing) installieren<br />
|-<br />
|pacman -Sw ''<Paket>''<br />
|Paket herunterladen, ohne es zu installieren<br />
|-<br />
|}<br />
<br />
=== Informationen zu installierbaren Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Ss ''<Paket>''<br />
|Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung<br />
|-<br />
|pacman -Sg<br />
|Sucht nach installierbaren Paketgruppen<br />
|-<br />
|pacman -Sg ''<Paketgruppe>''<br />
|Zeigt den Inhalt einer Paketgruppe<br />
|-<br />
|pacman -Si ''<Paket>''<br />
|Informationen zu (noch) nicht installierten Paketen anzeigen<br />
|-<br />
|}<br />
<br />
=== Verwaltung lokaler Pakete ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Ein lokales Paket installieren (nicht aus einem Repo)<br />
|-<br />
|pacman -D --asexplicit ''<Paket>''<br />
|Status eines installierten Paketes auf „Ausdrücklich installiert“ setzen<br />
|-<br />
|pacman -D ---asdeps ''<Paket>''<br />
|Status eines installierten Paketes auf „Installiert als Abhängigkeit“ setzen<br />
|-<br />
|pacman -Scc<br />
|Leert das lokale Paketarchiv von Pacman vollständig (''/var/cache/pacman/pkg'')<br />
|-<br />
|pacman -Sc<br />
|Löscht veraltete Pakete aus ''/var/cache/pacman/pkg'' sowie ungenutzte Repositorien aus ''/var/lib/pacman/sync''. <font color="red">Vorsicht</font>, behalten werden nur aktuell installierte Versionen – Vorversionen für ein Paket-Downgrade sind dann nicht mehr vorhanden.<br />
|-<br />
|}<br />
<br />
=== Pakete entfernen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -R ''<Paketname>''<br />
|Deinstallation eines oder mehrerer Pakete (aus AUR oder Repos)<br />
|-<br />
|pacman -Rs ''<Paketname>''<br />
|Wie oben, zusätzlich werden alle abhängige Pakete gesucht und mit entfernt, falls diese nicht von einer anderen Anwendung gebraucht werden<br />
|-<br />
|pacman -Rsc ''<Paketname>''<br />
|Wie oben. Abhängigkeiten werden kaskadierend entfernt<br />
|-<br />
|pacman -Rscn ''<Paketname>''<br />
|Wie oben. Die Konfigurationsdateien der Anwendung werden mit entfernt<br />
|-<br />
|pacman -Rdd ''<Paket>''<br />
|Deinstallation eines Paketes ohne Prüfung bestehender Paketabhängigkeiten. <font color="red">Vorsicht</font>, hierdurch kann die Konsistenz und Funktionstüchtigkeit der Systeminstallation beeinträchtigt werden!<br />
|-<br />
|pacman -Rss ''<Paket>''<br />
|Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen<br />
|-<br />
|}<br />
<br />
=== Abfragen der lokalen Paketdatenbank ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Q<br />
|Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an<br />
|-<br />
|pacman -Qi ''<Paket>''<br />
|Informationen zu bereits installiertem Paket anzeigen<br />
|-<br />
|pacman -Qs ''<Suchmuster>''<br />
|Installierte Pakete nach Name oder einem Begriff in der Beschreibung durchsuchen.<br />
|-<br />
|pacman -Qdt<br />
|Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden<br />
|-<br />
|pacman -Qet<br />
|Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden<br />
|-<br />
|pacman -Ql ''<Paket>''<br />
|Zeigt alle installierten Dateien des Pakets im System<br />
|-<br />
|pacman -Qm<br />
|Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden<br />
|-<br />
|pacman -Qo ''<Pfad zur Datei>''<br />
|Zeigt das Paket an, welches die gesuchte Datei enthält<br />
|-<br />
|pacman -Sy && pacman -Qu<br />
|Aktualisiert die lokale Paketdatenbank und zeigt verfügbare Updates an<br />
|-<br />
|<nowiki>pacman -Qk | grep warning</nowiki><br />
|Überprüft alle Pakete auf fehlende Dateien und schränkt die Ausgabe auf Problempakete ein<br />
|-<br />
|}<br />
<br />
=== Paketdateien suchen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Fy<br />
|Lokale Datenbank aktualisieren (wie ''-Sy'')<br />
|-<br />
|pacman -Fyy<br />
|Lokale Datenbank neu aufbauen und aktualisieren (wie ''-Syy'')<br />
|-<br />
|pacman -Fs ''<Datei>''<br />
|Paket suchen das die Datei enthält<br />
|-<br />
|pacman -Fsx ''<Regex>''<br />
|Wie -Fs, aber Suche mit regulären Ausdrücken (hilfreich, falls der vollständige Dateiname unbekannt ist)<br />
|-<br />
|pacman -Fl ''<Paket>''<br />
|Alle Dateien des Paketes anzeigen<br />
|-<br />
|pacman -Fo ''<Pfad zur Datei>''<br />
|Paketzugehörigkeit einer Datei abfragen<br />
|-<br />
|}<br />
<br />
Es können auch mehrere Befehlsaufrufe kombiniert werden; hier z.B. zur vorhergehenden Prüfung und anschließenden Deinstallation aller verwaisten Pakete:<br />
pacman -Qdtq<br />
pacman -Rsn $(pacman -Qdtq)<br />
<br />
=== Paccache ===<br />
''Paccache'' ist ein Werkzeug zur Bereinigung des Pacman-Cache {{ic|/var/cache/pacman/pkg}}.<br />
<br />
Archivierte Pakete können hiermit differenzierter als mit {{ic|pacman -Scc}} bereinigt werden. Eine Übersicht der Möglichkeiten erhält man mit dem Befehl {{ic|paccache -h}}. Zur Bereinigung des Paket-Cache kann man beispielsweise so vorgehen:<br />
<br />
du -sh /var/cache/pacman/pkg # Belegung des Cache-Speicherplatzes prüfen<br />
paccache -dk2 # Testdurchlauf; Wieviel Platz kann eingespart werden?<br />
paccache -vrk2 # Entfernt Pakete aus dem Cache, behält die jüngsten 2 Versionen<br />
paccache -ruk0 # Alle Pakete aus dem Cache entfernen, die nicht (mehr) installiert sind<br />
<br />
Zur automatischen Bereinugung gibt es einen [[Systemd]] Timer. Bei aktiviertem Timer wird der Cache wöchentlich mit {{ic|paccache -r}} bereinigt.<br />
# systemctl enable paccache.timer<br />
<br />
=== Checkupdates ===<br />
Mit ''Checkupdates'' lässt sich prüfen, ob Aktualisierungen für installierte Pakete verfügbar sind, ohne eine komplette System-Aktualisierung ({{ic|pacman -Syu}}) durchzuführen.<br />
checkupdates<br />
Da die Prüfung auf Updates mit ''Checkupdates'' ohne Root-Rechte durchgeführt werden kann, eignet sich der Befehl sehr gut zur Verwendung in [[Conky]] und Scripts.<br />
<br />
=== Bacman ===<br />
Mit Hilfe der Paketdatenbank erstellt ''Bacman'' aus den installierten Dateien eines Paketes wieder ein Paketarchiv {{ic|*.pkg.tar.zx}}.<br />
bacman foobar<br />
<br />
{{hinweis| ''Paccache'' und ''Checkupdates'' sind Bestandteile des Paketes {{Paket|pacman-contrib}}, das mittels Pacman aus dem Repo {{ic|community}} nachinstalliert werden kann.<br />
''Bacman'' wurde nach der Entfernung aus Pacman (v.5.1.0) noch nicht in pacman-contrib eingepflegt und ist zur Zeit (Stand: 20.06.2018) nicht verfügbar.}}<br />
<br />
== Pacman-Datenbank ==<br />
Pacman speichert alle Paketinformationen in Form einer Vielzahl einzelner Dateien als logisch zusammengehörenden Datenbestand im Verzeichnis {{ic|/var/lib/pacman}}.<br />
<br />
<b>Installierbare Pakete:</b><br/><br />
Die Paketinformationen der in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} aktivierten Repositorien ([https://wiki.archlinux.de/title/Pacman#Konfiguration s.u.]) werden im Verzeichnis {{ic|/var/lib/pacman/sync}} gespeichert. Für diese Repos werden von Pacman Dateien mit folgenden Dateiendungen angelegt:<br />
* {{ic|<Repo>.sig}} – PGP-Sicherheitssignatur; diese ist nur für inoffizielle Repos erforderlich und vorhanden (''Textdatei'')<br />
* {{ic|<Repo>.files}} – Enthält die Textdateien {{ic|desc}} und {{ic|files}} mit den entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
* {{ic|<Repo>.db}} – Enthält die Datei {{ic|desc}} mit entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-S}} oder {{ic|-F}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank; er kann mit {{ic|-Sy}} aktualisiert und mit {{ic|-Syy}} neu generiert werden.<br />
<br />
<b>Installierte Pakete:</b><br/><br />
Die Paketinformationen der im System vorhandenen Pakete befinden sich im Unterverzeichnis {{ic|/var/lib/pacman/local}}. Für alle installierten Pakete werden dort gesonderte Verzeichnisse mit Namen und Version des Paketes angelegt; folgende Dateien sind darin enthalten:<br />
* {{ic|desc}} – Paketinformationen, welche mit dem Befehl {{ic|pacman -Qi <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|files}} – Pfadangaben aller mit dem Paket installierten Dateien, die mit dem Befehl {{ic|pacman -Fl <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|mtree}} – Zeit- und Größenangaben sowie Prüfsummen (Hashwerte) aller mit dem Paket installierten Dateien (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-Q}} oder {{ic|-D}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank. Bei Installationen und Deinstallationen erfolgt eine fortlaufende Aktualisierung. Dieser systembezogene Teil der Datenbank kann nicht neu generiert werden, da er Ausgangsreferenz der lokalen Paketverwaltung ist.<br />
<br />
== Konfiguration ==<br />
Die Einstellungen für Pacman sind in der Datei {{ic|/etc/pacman.conf}} gespeichert und können dort angepasst werden.<br />
<br />
=== Allgemeine Einstellungen ===<br />
#RootDir = /<br />
#DBPath = /var/lib/pacman/<br />
#CacheDir = /var/cache/pacman/pkg/<br />
#LogFile = /var/log/pacman.log<br />
#GPGDir = /etc/pacman.d/gnupg/<br />
HoldPkg = pacman glibc<br />
#XferCommand = /usr/bin/curl -C - -f %u > %o<br />
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
#CleanMethod = KeepInstalled<br />
#UseDelta = 0.7<br />
Architecture = auto<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
#IgnorePkg =<br />
#IgnoreGroup =<br />
<br />
#NoUpgrade =<br />
#NoExtract =<br />
* Pakete, die durch {{ic|HoldPkg}} markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.<br />
* Pakete, die mit {{ic|IgnorePkg}} markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.<br />
* Dateien, die durch {{ic|NoUpgrade}} markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format {{ic|datei.pacnew}} an.<br />
* Dateien, die durch {{ic|NoExtract}} markiert sind, werden bei der Installation oder einem Update nicht installiert.<br />
<br />
Seit der Version 4.1 unterstützt Pacman auch farbige Ausgaben. Dazu muss die Option {{ic|#Color}} auskommentiert werden.<br />
<br />
=== Repositorien ===<br />
Offizielle Arch Linux-Pakete sind einem von sechs unterschiedlichen Repositorien zugeordnet:<br />
<br />
* {{ic|[core]}} enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.<br />
* {{ic|[extra]}} enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von [[KDE]] und [[GNOME]].<br />
* {{ic|[testing]}} enthält neue Versionen, die noch nicht hinreichend getestet wurden – mit anderen Worten: Dinge, die etwas kaputt machen könnten.<br />
* {{ic|[community]}} enthält eine Vielzahl zusätzlicher Programme, die ursprünglich nur als PKGBUILD im [[AUR]] zur Verfügung standen, nach einer Testphase jedoch als Binärpakete übernommen wurden. Dieses Repo wird von den [https://wiki.archlinux.org/index.php/Trusted_Users Trusted Users] betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.<br />
* {{ic|[multilib]}} enthält 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
* {{ic|[multilib-testing]}} enthält noch nicht hinreichend getestete 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
<br />
==== Repos festlegen ====<br />
Die Konfiguration der {{ic|/etc/pacman.conf}} ist weitgehend selbsterklärend und erfolgt durch Ein- oder Auskommentierung bestehender Einträge sowie durch Hinzufügen zusätzlicher Einträge.<br />
<br />
==== Inoffizielle Repos verwenden ====<br />
Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Eine Liste inoffizieller Repos findet man im [http://wiki.archlinux.org/index.php/Unofficial_user_repositories engl. Wiki].<br />
<br />
=== Spiegelserver ===<br />
Die Spiegelserver, von welchen Pacman die Pakete zur Installation und für Updates herunterladen soll, werden in der Datei {{ic|/etc/pacman.d/mirrorlist}} gespeichert; ein Auschnitt als Beispiel:<br />
{{bc|<nowiki><br />
## Germany<br />
Server = http://mirror.23media.de/archlinux/$repo/os/$arch<br />
Server = http://mirror.gnomus.de/$repo/os/$arch<br />
#Server = https://mirror.bethselamin.de/$repo/os/$arch<br />
#Server = http://ftp.fau.de/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
Die Wahl der Architektur und der Zugriff auf die Repos ist mit den Variablen {{ic|$repo}} und {{ic|$arch}} gekennzeichnet.<br />
<br />
Pacman greift vorrangig auf den ersten einkommentierten Server-Eintrag zu. Sollte der Server nicht erreichbar sein oder ein Paket dort nicht vorgefunden werden, wird auf den nächsten Server zugegriffen. Für eine optimale Zugänglichkeit vom eigenen Standort aus ist die Wahl heimischer Spiegelserver ratsam.<br />
<br />
Bei Veränderungen der weltweiten Spiegelserver werden von Pacman bei System-Updates automatisch neue Mirrorlisten als {{ic|/etc/pacman.d/mirrorlist.pacnew}} hinterlegt. Bei Bedarf kann man die darin enthaltenen deutschen Server auslesen:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew<br />
<br />
'''Tipp:''' Es reicht aus, nur wenige Spiegelserver in der Mirrorliste zu aktivieren und ggf. weitere, aber auskommentierte Server darunterstehend zu belassen. So kann der favorisierte Server – falls er sich nicht bewähren sollte – leicht durch einen anderen aus der auskommentierten „Vorratsliste“ ersetzt werden.<br />
<br />
==== Optimale Spiegelserver ====<br />
Die Spiegelserver unterscheiden sich in ihrer Aktualität und Geschwindigkeit. Relevante Messwerte sind:<br />
* '''Completion:''' Die Anzahl erfolgreicher Verbindungen bei Tests des Spiegelservers in Prozent; bei weniger als 100% könnte der Server unzuverlässig sein<br />
* '''Delay:''' Durchschnittliche Verzögerungdauer der letzten Synchronisation, diese sollte unter einer Stunde liegen<br />
* '''Duration:''' Durchschnittliche Verbindungs- und Abbrufzeit in Sekunden(bruchteilen); ein hoher Wert kann auf eine Überlastung des Servers hindeuten<br />
* '''Mirror Score:''' Eine grobe Berechnung des Rankings, das sich aus den vorgenannten Werten ergibt<br />
<br />
Eine vollständige Übersicht an Messergebnissen findet man auf der Seite [https://www.archlinux.org/mirrors/status Mirror-Status].<br><br />
Da die dort gelisteten Messergebnisse nicht dem eigenen Standort entsprechen, ist es sinnvoll, selbst Messungen durchzuführen. Das Paket {{Paket|pacman-contrib}} stellt hierfür das Tool ''Rankmirrors'' zur Verfügung. Mit folgendem Befehl können die Antwortzeiten der in der Mirrorliste einkommentierten Server geprüft werden:<br />
rankmirrors -n 0 -t /etc/pacman.d/mirrorlist<br />
Falls man differenzierte Vergleichsergebnisse wie z.B. einen „Mirror Score“ wünscht, kann man das Python-Script [[Reflector]] verwenden.<br />
Eine Liste von 10&nbsp;deutschen Spiegelservern mit der schnellsten Downloadrate erhält man z.B. mit diesem Befehl:<br />
reflector -c Germany -p http -p https --sort rate -n 10<br />
Fügt man am Ende des Befehles die Option {{ic|--info}} hinzu, werden zusätzlich die auf der Seite „Mirror-Status“ verfügbaren Details angezeigt.<br />
<br />
==== Mirrorliste aktualisieren ====<br />
Solange die favorisierten Spiegelserver gut und verlässlich funktionieren, sind Aktualisierungen der Mirrorliste nicht erforderlich. Falls man die Datei {{ic|/etc/pacman.d/mirrorlist}} jedoch auf Basis möglichst optimaler Messwerte aktualisieren möchte, bieten sich die vorgenannten Verfahren an.<br />
<br />
* '''Rankmirrors:''' Man kann die Antwortzeiten der deutschen Spiegelserver aus der Datei {{ic|mirrorlist.pacnew}} messen, aus den Ergebnissen z.B. die 15&nbsp;schnellsten Server extrahieren und von diesen wiederum die 4&nbsp;besten Spiegelserver aktivieren – diese gründliche Messung dauert einen Moment:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew | sed 's/^#//' > /tmp/mirror && rankmirrors -n 15 /tmp/mirror | sed '2,5!s/^S/#S/'<br />
<br />
* '''Reflector:''' Man kann die deutschen Spiegelserver online abrufen, z.B. eine Kurzmessung der Downloadrate durchführen, 15&nbsp;Server mit dem schnellsten Datendurchsatz extrahieren und von diesen die 4&nbsp;besten Spiegelserver aktivieren:<br />
reflector -c Germany -p http -p https --sort rate -n 15 | sed '11,14!s/^S/#S/'<br />
Falls man eine Sortierung auf Basis des bei [https://www.archlinux.org/mirrors/status Mirror-Status] abgerufenen „Mirror Score“ vornehmen möchte, kann man die Anweisung {{ic|--sort rate}} durch {{ic|--sort score}} ersetzen.<br />
<br />
{{hinweis|Beide oben angeführten Befehle geben die Resultate im Terminal aus. Um die vorhandene Mirrorliste zu ersetzten, kann als Ausgabeumleitung '''{{ic|>&nbsp;/etc/pacman.d/mirrorlist}}''' angefügt werden.}}<br />
<br />
==== Mirrorliste erweitern ====<br />
Eine weitere Möglichkeit besteht darin, einen favorisierten Spiegelserver in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} vorzuschalten, zum Beispiel:<br />
[core]<br />
'''Server = <nowiki>http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch</nowiki>'''<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
{{hinweis|Wird ein Spiegelserver in {{ic|/etc/pacman.conf}} eingetragen, sollte unbedingt der gleiche Eintrag bei allen offiziellen Repos erfolgen ({{ic|[core]}}, {{ic|[extra]}}, {{ic|[community]}}, {{ic|[multilib]}}). Ansonsten besteht die Gefahr, dass aufgrund unterschiedlicher Aktualität der Server versucht wird, nicht kompatible Paketversionen zusammenzuführen.}}<br />
<br />
== Keine partiellen Upgrades ==<br />
Arch Linux wird als ''Rolling-Release'' forlaufend aktualisiert. Sobald neue Versionen von Programmbibliotheken {{wikipedia|Programmbibliothek#Unixartige_Systeme|<nowiki>[1]</nowiki>}} in den Repositorien erscheinen, werden vom Arch-Entwicklungsteam alle Pakete, die sich auf diese Bibliothek beziehen, neu (auf)gebaut. Auf diese Weise wird sicher gestellt, dass alle Pakete aus den offiziellen Repos mit der veränderten Schnittstelle der neuen Version funktionieren.<br />
<br />
Sollte man fälschlicherweise nur ein einzelnes Paket aktualisieren, werden mit diesem Paket bei Bedarf neue Versionen von Programmbibliotheken im System integriert. Andere bereits installierte und von einem Upgrade ausgenommene Pakete blieben jedoch weiterhin von älteren Versionen der Bibliotheken abhängig und kämen mit den veränderten Schnittstellen neuerer Versionen nicht zurecht. Aus diesem Grunde werden partielle Upgrades nicht unterstützt.<br />
<br />
Bevor ein neues Paket installiert wird, sollte immer zunächst mit {{ic|pacman -Syu}} eine Aktualisierung des kompletten Systems durchgeführt werden. Vor dem gleichen Hintergund sollte man auch bei Ausnahmen unter {{ic|IgnorePkg}} und {{ic|IgnoreGroup}} sehr umsichtig verfahren (s. [https://wiki.archlinux.de/title/Pacman#Konfiguration Konfiguration]).<br />
<br />
Pakete, die nicht aus den offiziellen Repositorien installiert worden sind (z.B. aus dem [[AUR]]) und sich auf Bibliotheken aus den Repos beziehen, müssen im Falle einer Änderung von {{ic|so}}-Namen (z.B. {{ic|libfoo.so.1}} → {{ic|libfoo.so.1.2}}) auf Anwenderseite neu gebaut werden.<br />
<br />
{{hinweis|Probleme, die auf Versionsunterschiede von Programmbibliotheken zurückzuführen sind, sollte man nicht durch „''Symlinking''“ verschlimmbessern. In der Regel lassen sich solche Probleme mit einem '{{ic|pacman -Syu}}' beheben.}}<br />
<br />
==Hilfe==<br />
=== Keine Verbindung zu einem Mirror===<br />
Aufgrund einer langsamen Internetverbindung oder nicht optimaler Pacman-Konfiguration kann es vorkommen, dass der Verbindungsaufbau zu einem Spiegelserver zu lange dauert und es so zu einem {{wikipedia|Timeout}} kommt. Um dieses Problem zu beheben, kann man – wie im Abschnitt [https://wiki.archlinux.de/title/Pacman#Optimale_Spiegelserver Optimale Spiegelserver] beschrieben – den schnellsten Server suchen und verwenden. Sollte auch das nicht zu gewünschtem Erfolg führen, kann versucht werden, einen alternativen Downloader einzusetzen. Dazu muss man die Datei {{ic|/etc/pacman.conf}} bearbeiten und einen der beiden Einträge durch Entfernen der Raute {{ic|#}} einkommentieren:<br />
{{bc|<nowiki><br />
#XferCommand = /usr/bin/{{Paket|curl}} -C - -f %u > %o<br />
#XferCommand = /usr/bin/{{Paket|wget}} --passive-ftp -c -O %o %u<br />
</nowiki>}}<br />
<br />
=== Bandbreite beschränken ===<br />
Um die Download-Bandbreite zu beschränken, kann in in der Konfigurationsdatei {{ic|/etc/pacman.conf}} innerhalb der Zeile …<br />
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
… dem ''wget''-Befehl die entsprechende Option hinzugefügt werden:<br />
XferCommand = /usr/bin/wget --passive-ftp '''--limit-rate=40k''' -c -O %o %u<br />
<br />
=== Pacman aus Versehen deinstalliert ===<br />
Wie kann Pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Manuelle Variante</span><br />
cd /<br />
bsdtar -x -f /var/cache/pacman/pkg/pacman-*.pkg.tar.xz<br />
<br />
Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist.<br />
Danach Pacman mittels des „neuen“ Pacman wieder installieren, damit der Datenbankeintrag für Pacman selbst wieder angelegt wird.<br />
pacman -S pacman<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Per Installationsmedium</span><br />
<br />
Vom Installationsmedium booten und die deutsche Tastaturbelegung {{ic|loadkeys de}} wählen. Anschließend Partitionen einhängen:<br />
Die Root-Partition nach {{ic|/mnt}} einhängen (Verzeichnis {{ic|/etc}} sollte darin enthalten sein)<br />
Für weitere Partitionen unterhalb {{ic|/mnt}} Ordner anlegen und entsprechend einhängen (bspw. {{ic|/mnt/usr}}). Eine Neuinstallation von Pacman kann nun mit diesem Befehl erfolgen:<br />
pacstrap /mnt pacman<br />
<br />
== Weitere Informationen ==<br />
*[https://www.archlinux.org/pacman/pacman.8.html man pacman]<br />
*[https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf]<br />
*[https://www.archlinux.org/pacman/repo-add.8.html man repo-add]<br />
<br />
== Siehe auch ==<br />
* [[Pacnew- und Pacsave-Dateien]]<br />
* [[Pacman beschleunigen]]<br />
* [[Pacman-Datenbank reparieren]]<br />
* [[Pacman-key]]<br />
* [[Paketliste archivieren]]<br />
* [[Eigene Repositories erstellen]]<br />
* [[Pacman-Tipps]]<br />
* [[Rosettastein Paketverwaltung ]]<br />
<br />
[[Kategorie:Paketverwaltung]]<br />
[[Kategorie:Systemverwaltung]]<br />
[[Kategorie:Befehle]]<br />
[[en:Pacman]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Pacman&diff=20791Pacman2018-06-20T16:19:50Z<p>Arisinfenix: /* Paccache */ systemd timer</p>
<hr />
<div>Der zentrale Paketmanager Pacman ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format {{ic|.pkg.tar.xz}} (bzw. {{ic|.pkg.tar.gz}} bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositorys stammen, oder vom Benutzer selbst über das [[Arch Build System]] (ABS) erstellt wurden. Auch selbst kompilierte Pakete sollten immer über Pacman installiert werden, damit sie in der zentralen Datenbank erfasst werden.<br />
<br />
Mittels Pacman wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem [[KISS-Prinzip]] wurde Pacman als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden.<br />
<br />
== Installation ==<br />
Pacman ist bereits Bestandteil jeder Arch Linux-Installation.<br />
<br />
== Die wichtigsten Pacman-Befehle ==<br />
Für neue Arch Linux-AnwenderInnen seien zunächst die wichtigsten Pacman-Befehle angeführt.<br />
<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket>''<br />
|Installiert ein Paket<br />
|-<br />
|pacman -R ''<Paket>''<br />
|Deinstalliert ein Paket<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Installation eines Paketes aus einer lokalen Datei (z.B. für ein Downgrade oder zur Installation selbst gebauter Pakete)<br />
|}<br />
Diese Befehle sind der Grundstock, um ein Arch-System einrichten und auf aktuellem Stand halten zu können.<br />
<br />
== Die Pacman-Syntax ==<br />
Der Aufruf der Optionen wird mit einem Minuszeichen eingeleitet und beginnt immer mit einem Großbuchstaben.<br />
<br />
*'''S''' – Synchronisation der lokalen Paketdatenbank mit den Repositorien, welche in der Datei {{ic|/etc/pacman.conf}} aktiviert sind (''Sync'')<br />
<br />
*'''Q''' – Bezieht sich immer auf die lokale Paketdatenbank des Systems (''Query'')<br />
<br />
*'''R''' – Dient zum Entfernen von installierten Paketen (''Remove'')<br />
<br />
*'''D''' – Bearbeitung der lokalen Paketdatenbank (''Database'')<br />
<br />
*'''U''' – Installiert Pakete aus einem lokalen Verzeichnis (''Upgrade'')<br />
<br />
*'''F''' – Sucht das Paket, welches eine Datei beinhaltet (''File'')<br />
<br />
Die vorangestellte Hauptoption kann mit weiteren Optionen in Kleinbuchstaben erweitert und spezifiziert werden, beispielsweise:<br />
*'''s''' – Bewirkt eine Suche. Bei {{ic|-Ss}} wird ein Paketname in der Paketdatenbank gesucht, Bei {{ic|-Rs}} werden die jeweils abhängigen Pakete gesucht und mit entfernt<br />
*'''y''' – Bewirkt eine Aktualisierung der Paketdatenbank (falls es tatsächlich Änderungen gibt)<br />
*'''yy''' – Erzwingt die Aktualisierung der Paketdatenbank auch dann, wenn keine Updates vorhanden sind<br />
<br />
=== Synchronisation und Installation von Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket1 Paket2>''<br />
|Eines oder mehrere Pakete installieren oder aktualisieren<br />
|-<br />
|pacman -Sy<br />
|Lokale Datenbank aktualisieren<br />
|-<br />
|pacman -Su<br />
|Alle installierten Pakete aktualisieren<br />
|-<br />
|pacman -Syy<br />
|Lokale Datenbank komplett neu aufbauen und aktualisieren<br />
|-<br />
|pacman -Syuu<br />
|Alle installierten Pakete downgraden (von Testing nach Core/Extra oder von Community-Testing nach Community)<br />
|-<br />
|pacman -S testing/''<Paket>''<br />
|Paket aus einem spezifischen Repo (hier: testing) installieren<br />
|-<br />
|pacman -Sw ''<Paket>''<br />
|Paket herunterladen, ohne es zu installieren<br />
|-<br />
|}<br />
<br />
=== Informationen zu installierbaren Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Ss ''<Paket>''<br />
|Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung<br />
|-<br />
|pacman -Sg<br />
|Sucht nach installierbaren Paketgruppen<br />
|-<br />
|pacman -Sg ''<Paketgruppe>''<br />
|Zeigt den Inhalt einer Paketgruppe<br />
|-<br />
|pacman -Si ''<Paket>''<br />
|Informationen zu (noch) nicht installierten Paketen anzeigen<br />
|-<br />
|}<br />
<br />
=== Verwaltung lokaler Pakete ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Ein lokales Paket installieren (nicht aus einem Repo)<br />
|-<br />
|pacman -D --asexplicit ''<Paket>''<br />
|Status eines installierten Paketes auf „Ausdrücklich installiert“ setzen<br />
|-<br />
|pacman -D ---asdeps ''<Paket>''<br />
|Status eines installierten Paketes auf „Installiert als Abhängigkeit“ setzen<br />
|-<br />
|pacman -Scc<br />
|Leert das lokale Paketarchiv von Pacman vollständig (''/var/cache/pacman/pkg'')<br />
|-<br />
|pacman -Sc<br />
|Löscht veraltete Pakete aus ''/var/cache/pacman/pkg'' sowie ungenutzte Repositorien aus ''/var/lib/pacman/sync''. <font color="red">Vorsicht</font>, behalten werden nur aktuell installierte Versionen – Vorversionen für ein Paket-Downgrade sind dann nicht mehr vorhanden.<br />
|-<br />
|}<br />
<br />
=== Pakete entfernen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -R ''<Paketname>''<br />
|Deinstallation eines oder mehrerer Pakete (aus AUR oder Repos)<br />
|-<br />
|pacman -Rs ''<Paketname>''<br />
|Wie oben, zusätzlich werden alle abhängige Pakete gesucht und mit entfernt, falls diese nicht von einer anderen Anwendung gebraucht werden<br />
|-<br />
|pacman -Rsc ''<Paketname>''<br />
|Wie oben. Abhängigkeiten werden kaskadierend entfernt<br />
|-<br />
|pacman -Rscn ''<Paketname>''<br />
|Wie oben. Die Konfigurationsdateien der Anwendung werden mit entfernt<br />
|-<br />
|pacman -Rdd ''<Paket>''<br />
|Deinstallation eines Paketes ohne Prüfung bestehender Paketabhängigkeiten. <font color="red">Vorsicht</font>, hierdurch kann die Konsistenz und Funktionstüchtigkeit der Systeminstallation beeinträchtigt werden!<br />
|-<br />
|pacman -Rss ''<Paket>''<br />
|Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen<br />
|-<br />
|}<br />
<br />
=== Abfragen der lokalen Paketdatenbank ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Q<br />
|Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an<br />
|-<br />
|pacman -Qi ''<Paket>''<br />
|Informationen zu bereits installiertem Paket anzeigen<br />
|-<br />
|pacman -Qs ''<Suchmuster>''<br />
|Installierte Pakete nach Name oder einem Begriff in der Beschreibung durchsuchen.<br />
|-<br />
|pacman -Qdt<br />
|Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden<br />
|-<br />
|pacman -Qet<br />
|Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden<br />
|-<br />
|pacman -Ql ''<Paket>''<br />
|Zeigt alle installierten Dateien des Pakets im System<br />
|-<br />
|pacman -Qm<br />
|Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden<br />
|-<br />
|pacman -Qo ''<Pfad zur Datei>''<br />
|Zeigt das Paket an, welches die gesuchte Datei enthält<br />
|-<br />
|pacman -Sy && pacman -Qu<br />
|Aktualisiert die lokale Paketdatenbank und zeigt verfügbare Updates an<br />
|-<br />
|<nowiki>pacman -Qk | grep warning</nowiki><br />
|Überprüft alle Pakete auf fehlende Dateien und schränkt die Ausgabe auf Problempakete ein<br />
|-<br />
|}<br />
<br />
=== Paketdateien suchen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Fy<br />
|Lokale Datenbank aktualisieren (wie ''-Sy'')<br />
|-<br />
|pacman -Fyy<br />
|Lokale Datenbank neu aufbauen und aktualisieren (wie ''-Syy'')<br />
|-<br />
|pacman -Fs ''<Datei>''<br />
|Paket suchen das die Datei enthält<br />
|-<br />
|pacman -Fsx ''<Regex>''<br />
|Wie -Fs, aber Suche mit regulären Ausdrücken (hilfreich, falls der vollständige Dateiname unbekannt ist)<br />
|-<br />
|pacman -Fl ''<Paket>''<br />
|Alle Dateien des Paketes anzeigen<br />
|-<br />
|pacman -Fo ''<Pfad zur Datei>''<br />
|Paketzugehörigkeit einer Datei abfragen<br />
|-<br />
|}<br />
<br />
Es können auch mehrere Befehlsaufrufe kombiniert werden; hier z.B. zur vorhergehenden Prüfung und anschließenden Deinstallation aller verwaisten Pakete:<br />
pacman -Qdtq<br />
pacman -Rsn $(pacman -Qdtq)<br />
<br />
=== Paccache ===<br />
''Paccache'' ist ein Werkzeug zur Bereinigung des Pacman-Cache {{ic|/var/cache/pacman/pkg}}.<br />
<br />
Archivierte Pakete können hiermit differenzierter als mit {{ic|pacman -Scc}} bereinigt werden. Eine Übersicht der Möglichkeiten erhält man mit dem Befehl {{ic|paccache -h}}. Zur Bereinigung des Paket-Cache kann man beispielsweise so vorgehen:<br />
<br />
du -sh /var/cache/pacman/pkg # Belegung des Cache-Speicherplatzes prüfen<br />
paccache -dk2 # Testdurchlauf; Wieviel Platz kann eingespart werden?<br />
paccache -vrk2 # Entfernt Pakete aus dem Cache, behält die jüngsten 2 Versionen<br />
paccache -ruk0 # Alle Pakete aus dem Cache entfernen, die nicht (mehr) installiert sind<br />
<br />
Zur automatischen Bereinugung gibt es einen [[Systemd]] Timer. Bei aktiviertem Timer wird der Cache wöchentlich mit {{ic|paccache -r}} bereinigt.<br />
# systemctl enable paccache.timer<br />
<br />
=== Checkupdates ===<br />
Mit ''Checkupdates'' lässt sich prüfen, ob Aktualisierungen für installierte Pakete verfügbar sind, ohne eine komplette System-Aktualisierung ({{ic|pacman -Syu}}) durchzuführen.<br />
checkupdates<br />
Da die Prüfung auf Updates mit ''Checkupdates'' ohne Root-Rechte durchgeführt werden kann, eignet sich der Befehl sehr gut zur Verwendung in [[Conky]] und Scripts.<br />
<br />
=== Bacman ===<br />
Mit Hilfe der Paketdatenbank erstellt ''Bacman'' aus den installierten Dateien eines Paketes wieder ein Paketarchiv {{ic|*.pkg.tar.zx}}.<br />
bacman foobar<br />
<br />
{{hinweis| ''Paccache'' und ''Checkupdates'' sind Bestandteile des Paketes {{Paket|pacman-contrib}}, das mittels Pacman aus dem Repo {{ic|community}} nachinstalliert werden kann.<br />
''Bacman'' wurde nach der Entfernung aus Pacman (v.5.1.0) noch nicht in pacman-contrib eingepflegt und ist zur Zeit (Stand: 20.06.2018) nicht verfügbar.}}<br />
<br />
== Pacman-Datenbank ==<br />
Pacman speichert alle Paketinformationen in Form einer Vielzahl einzelner Dateien als logisch zusammengehörenden Datenbestand im Verzeichnis {{ic|/var/lib/pacman}}.<br />
<br />
<b>Installierbare Pakete:</b><br/><br />
Die Paketinformationen der in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} aktivierten Repositorien ([https://wiki.archlinux.de/title/Pacman#Konfiguration s.u.]) werden im Verzeichnis {{ic|/var/lib/pacman/sync}} gespeichert. Für diese Repos werden von Pacman Dateien mit folgenden Dateiendungen angelegt:<br />
* {{ic|<Repo>.sig}} – PGP-Sicherheitssignatur; diese ist nur für inoffizielle Repos erforderlich und vorhanden (''Textdatei'')<br />
* {{ic|<Repo>.files}} – Enthält die Textdateien {{ic|desc}} und {{ic|files}} mit den entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
* {{ic|<Repo>.db}} – Enthält die Datei {{ic|desc}} mit entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-S}} oder {{ic|-F}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank; er kann mit {{ic|-Sy}} aktualisiert und mit {{ic|-Syy}} neu generiert werden.<br />
<br />
<b>Installierte Pakete:</b><br/><br />
Die Paketinformationen der im System vorhandenen Pakete befinden sich im Unterverzeichnis {{ic|/var/lib/pacman/local}}. Für alle installierten Pakete werden dort gesonderte Verzeichnisse mit Namen und Version des Paketes angelegt; folgende Dateien sind darin enthalten:<br />
* {{ic|desc}} – Paketinformationen, welche mit dem Befehl {{ic|pacman -Qi <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|files}} – Pfadangaben aller mit dem Paket installierten Dateien, die mit dem Befehl {{ic|pacman -Fl <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|mtree}} – Zeit- und Größenangaben sowie Prüfsummen (Hashwerte) aller mit dem Paket installierten Dateien (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-Q}} oder {{ic|-D}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank. Bei Installationen und Deinstallationen erfolgt eine fortlaufende Aktualisierung. Dieser systembezogene Teil der Datenbank kann nicht neu generiert werden, da er Ausgangsreferenz der lokalen Paketverwaltung ist.<br />
<br />
== Konfiguration ==<br />
Die Einstellungen für Pacman sind in der Datei {{ic|/etc/pacman.conf}} gespeichert und können dort angepasst werden.<br />
<br />
=== Allgemeine Einstellungen ===<br />
#RootDir = /<br />
#DBPath = /var/lib/pacman/<br />
#CacheDir = /var/cache/pacman/pkg/<br />
#LogFile = /var/log/pacman.log<br />
#GPGDir = /etc/pacman.d/gnupg/<br />
HoldPkg = pacman glibc<br />
#XferCommand = /usr/bin/curl -C - -f %u > %o<br />
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
#CleanMethod = KeepInstalled<br />
#UseDelta = 0.7<br />
Architecture = auto<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
#IgnorePkg =<br />
#IgnoreGroup =<br />
<br />
#NoUpgrade =<br />
#NoExtract =<br />
* Pakete, die durch {{ic|HoldPkg}} markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.<br />
* Pakete, die mit {{ic|IgnorePkg}} markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.<br />
* Dateien, die durch {{ic|NoUpgrade}} markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format {{ic|datei.pacnew}} an.<br />
* Dateien, die durch {{ic|NoExtract}} markiert sind, werden bei der Installation oder einem Update nicht installiert.<br />
<br />
Seit der Version 4.1 unterstützt Pacman auch farbige Ausgaben. Dazu muss die Option {{ic|#Color}} auskommentiert werden.<br />
<br />
=== Repositorien ===<br />
Offizielle Arch Linux-Pakete sind einem von sechs unterschiedlichen Repositorien zugeordnet:<br />
<br />
* {{ic|[core]}} enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.<br />
* {{ic|[extra]}} enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von [[KDE]] und [[GNOME]].<br />
* {{ic|[testing]}} enthält neue Versionen, die noch nicht hinreichend getestet wurden – mit anderen Worten: Dinge, die etwas kaputt machen könnten.<br />
* {{ic|[community]}} enthält eine Vielzahl zusätzlicher Programme, die ursprünglich nur als PKGBUILD im [[AUR]] zur Verfügung standen, nach einer Testphase jedoch als Binärpakete übernommen wurden. Dieses Repo wird von den [https://wiki.archlinux.org/index.php/Trusted_Users Trusted Users] betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.<br />
* {{ic|[multilib]}} enthält 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
* {{ic|[multilib-testing]}} enthält noch nicht hinreichend getestete 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
<br />
==== Repos festlegen ====<br />
Die Konfiguration der {{ic|/etc/pacman.conf}} ist weitgehend selbsterklärend und erfolgt durch Ein- oder Auskommentierung bestehender Einträge sowie durch Hinzufügen zusätzlicher Einträge.<br />
<br />
==== Inoffizielle Repos verwenden ====<br />
Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Eine Liste inoffizieller Repos findet man im [http://wiki.archlinux.org/index.php/Unofficial_user_repositories engl. Wiki].<br />
<br />
=== Spiegelserver ===<br />
Die Spiegelserver, von welchen Pacman die Pakete zur Installation und für Updates herunterladen soll, werden in der Datei {{ic|/etc/pacman.d/mirrorlist}} gespeichert; ein Auschnitt als Beispiel:<br />
{{bc|<nowiki><br />
## Germany<br />
Server = http://mirror.23media.de/archlinux/$repo/os/$arch<br />
Server = http://mirror.gnomus.de/$repo/os/$arch<br />
#Server = https://mirror.bethselamin.de/$repo/os/$arch<br />
#Server = http://ftp.fau.de/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
Die Wahl der Architektur und der Zugriff auf die Repos ist mit den Variablen {{ic|$repo}} und {{ic|$arch}} gekennzeichnet.<br />
<br />
Pacman greift vorrangig auf den ersten einkommentierten Server-Eintrag zu. Sollte der Server nicht erreichbar sein oder ein Paket dort nicht vorgefunden werden, wird auf den nächsten Server zugegriffen. Für eine optimale Zugänglichkeit vom eigenen Standort aus ist die Wahl heimischer Spiegelserver ratsam.<br />
<br />
Bei Veränderungen der weltweiten Spiegelserver werden von Pacman bei System-Updates automatisch neue Mirrorlisten als {{ic|/etc/pacman.d/mirrorlist.pacnew}} hinterlegt. Bei Bedarf kann man die darin enthaltenen deutschen Server auslesen:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew<br />
<br />
'''Tipp:''' Es reicht aus, nur wenige Spiegelserver in der Mirrorliste zu aktivieren und ggf. weitere, aber auskommentierte Server darunterstehend zu belassen. So kann der favorisierte Server – falls er sich nicht bewähren sollte – leicht durch einen anderen aus der auskommentierten „Vorratsliste“ ersetzt werden.<br />
<br />
==== Optimale Spiegelserver ====<br />
Die Spiegelserver unterscheiden sich in ihrer Aktualität und Geschwindigkeit. Relevante Messwerte sind:<br />
* '''Completion:''' Die Anzahl erfolgreicher Verbindungen bei Tests des Spiegelservers in Prozent; bei weniger als 100% könnte der Server unzuverlässig sein<br />
* '''Delay:''' Durchschnittliche Verzögerungdauer der letzten Synchronisation, diese sollte unter einer Stunde liegen<br />
* '''Duration:''' Durchschnittliche Verbindungs- und Abbrufzeit in Sekunden(bruchteilen); ein hoher Wert kann auf eine Überlastung des Servers hindeuten<br />
* '''Mirror Score:''' Eine grobe Berechnung des Rankings, das sich aus den vorgenannten Werten ergibt<br />
<br />
Eine vollständige Übersicht an Messergebnissen findet man auf der Seite [https://www.archlinux.org/mirrors/status Mirror-Status].<br><br />
Da die dort gelisteten Messergebnisse nicht dem eigenen Standort entsprechen, ist es sinnvoll, selbst Messungen durchzuführen. Pacman stellt hierfür das Tool ''Rankmirrors'' zur Verfügung. Mit folgendem Befehl können die Antwortzeiten der in der Mirrorliste einkommentierten Server geprüft werden:<br />
rankmirrors -n 0 -t /etc/pacman.d/mirrorlist<br />
Falls man differenzierte Vergleichsergebnisse wie z.B. einen „Mirror Score“ wünscht, kann man das Python-Script [[Reflector]] verwenden.<br />
Eine Liste von 10&nbsp;deutschen Spiegelservern mit der schnellsten Downloadrate erhält man z.B. mit diesem Befehl:<br />
reflector -c Germany -p http -p https --sort rate -n 10<br />
Fügt man am Ende des Befehles die Option {{ic|--info}} hinzu, werden zusätzlich die auf der Seite „Mirror-Status“ verfügbaren Details angezeigt.<br />
<br />
==== Mirrorliste aktualisieren ====<br />
Solange die favorisierten Spiegelserver gut und verlässlich funktionieren, sind Aktualisierungen der Mirrorliste nicht erforderlich. Falls man die Datei {{ic|/etc/pacman.d/mirrorlist}} jedoch auf Basis möglichst optimaler Messwerte aktualisieren möchte, bieten sich die vorgenannten Verfahren an.<br />
<br />
* '''Rankmirrors:''' Man kann die Antwortzeiten der deutschen Spiegelserver aus der Datei {{ic|mirrorlist.pacnew}} messen, aus den Ergebnissen z.B. die 15&nbsp;schnellsten Server extrahieren und von diesen wiederum die 4&nbsp;besten Spiegelserver aktivieren – diese gründliche Messung dauert einen Moment:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew | sed 's/^#//' > /tmp/mirror && rankmirrors -n 15 /tmp/mirror | sed '2,5!s/^S/#S/'<br />
<br />
* '''Reflector:''' Man kann die deutschen Spiegelserver online abrufen, z.B. eine Kurzmessung der Downloadrate durchführen, 15&nbsp;Server mit dem schnellsten Datendurchsatz extrahieren und von diesen die 4&nbsp;besten Spiegelserver aktivieren:<br />
reflector -c Germany -p http -p https --sort rate -n 15 | sed '11,14!s/^S/#S/'<br />
Falls man eine Sortierung auf Basis des bei [https://www.archlinux.org/mirrors/status Mirror-Status] abgerufenen „Mirror Score“ vornehmen möchte, kann man die Anweisung {{ic|--sort rate}} durch {{ic|--sort score}} ersetzen.<br />
<br />
{{hinweis|Beide oben angeführten Befehle geben die Resultate im Terminal aus. Um die vorhandene Mirrorliste zu ersetzten, kann als Ausgabeumleitung '''{{ic|>&nbsp;/etc/pacman.d/mirrorlist}}''' angefügt werden.}}<br />
<br />
==== Mirrorliste erweitern ====<br />
Eine weitere Möglichkeit besteht darin, einen favorisierten Spiegelserver in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} vorzuschalten, zum Beispiel:<br />
[core]<br />
'''Server = <nowiki>http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch</nowiki>'''<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
{{hinweis|Wird ein Spiegelserver in {{ic|/etc/pacman.conf}} eingetragen, sollte unbedingt der gleiche Eintrag bei allen offiziellen Repos erfolgen ({{ic|[core]}}, {{ic|[extra]}}, {{ic|[community]}}, {{ic|[multilib]}}). Ansonsten besteht die Gefahr, dass aufgrund unterschiedlicher Aktualität der Server versucht wird, nicht kompatible Paketversionen zusammenzuführen.}}<br />
<br />
== Keine partiellen Upgrades ==<br />
Arch Linux wird als ''Rolling-Release'' forlaufend aktualisiert. Sobald neue Versionen von Programmbibliotheken {{wikipedia|Programmbibliothek#Unixartige_Systeme|<nowiki>[1]</nowiki>}} in den Repositorien erscheinen, werden vom Arch-Entwicklungsteam alle Pakete, die sich auf diese Bibliothek beziehen, neu (auf)gebaut. Auf diese Weise wird sicher gestellt, dass alle Pakete aus den offiziellen Repos mit der veränderten Schnittstelle der neuen Version funktionieren.<br />
<br />
Sollte man fälschlicherweise nur ein einzelnes Paket aktualisieren, werden mit diesem Paket bei Bedarf neue Versionen von Programmbibliotheken im System integriert. Andere bereits installierte und von einem Upgrade ausgenommene Pakete blieben jedoch weiterhin von älteren Versionen der Bibliotheken abhängig und kämen mit den veränderten Schnittstellen neuerer Versionen nicht zurecht. Aus diesem Grunde werden partielle Upgrades nicht unterstützt.<br />
<br />
Bevor ein neues Paket installiert wird, sollte immer zunächst mit {{ic|pacman -Syu}} eine Aktualisierung des kompletten Systems durchgeführt werden. Vor dem gleichen Hintergund sollte man auch bei Ausnahmen unter {{ic|IgnorePkg}} und {{ic|IgnoreGroup}} sehr umsichtig verfahren (s. [https://wiki.archlinux.de/title/Pacman#Konfiguration Konfiguration]).<br />
<br />
Pakete, die nicht aus den offiziellen Repositorien installiert worden sind (z.B. aus dem [[AUR]]) und sich auf Bibliotheken aus den Repos beziehen, müssen im Falle einer Änderung von {{ic|so}}-Namen (z.B. {{ic|libfoo.so.1}} → {{ic|libfoo.so.1.2}}) auf Anwenderseite neu gebaut werden.<br />
<br />
{{hinweis|Probleme, die auf Versionsunterschiede von Programmbibliotheken zurückzuführen sind, sollte man nicht durch „''Symlinking''“ verschlimmbessern. In der Regel lassen sich solche Probleme mit einem '{{ic|pacman -Syu}}' beheben.}}<br />
<br />
==Hilfe==<br />
=== Keine Verbindung zu einem Mirror===<br />
Aufgrund einer langsamen Internetverbindung oder nicht optimaler Pacman-Konfiguration kann es vorkommen, dass der Verbindungsaufbau zu einem Spiegelserver zu lange dauert und es so zu einem {{wikipedia|Timeout}} kommt. Um dieses Problem zu beheben, kann man – wie im Abschnitt [https://wiki.archlinux.de/title/Pacman#Optimale_Spiegelserver Optimale Spiegelserver] beschrieben – den schnellsten Server suchen und verwenden. Sollte auch das nicht zu gewünschtem Erfolg führen, kann versucht werden, einen alternativen Downloader einzusetzen. Dazu muss man die Datei {{ic|/etc/pacman.conf}} bearbeiten und einen der beiden Einträge durch Entfernen der Raute {{ic|#}} einkommentieren:<br />
{{bc|<nowiki><br />
#XferCommand = /usr/bin/{{Paket|curl}} -C - -f %u > %o<br />
#XferCommand = /usr/bin/{{Paket|wget}} --passive-ftp -c -O %o %u<br />
</nowiki>}}<br />
<br />
=== Bandbreite beschränken ===<br />
Um die Download-Bandbreite zu beschränken, kann in in der Konfigurationsdatei {{ic|/etc/pacman.conf}} innerhalb der Zeile …<br />
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
… dem ''wget''-Befehl die entsprechende Option hinzugefügt werden:<br />
XferCommand = /usr/bin/wget --passive-ftp '''--limit-rate=40k''' -c -O %o %u<br />
<br />
=== Pacman aus Versehen deinstalliert ===<br />
Wie kann Pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Manuelle Variante</span><br />
cd /<br />
bsdtar -x -f /var/cache/pacman/pkg/pacman-*.pkg.tar.xz<br />
<br />
Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist.<br />
Danach Pacman mittels des „neuen“ Pacman wieder installieren, damit der Datenbankeintrag für Pacman selbst wieder angelegt wird.<br />
pacman -S pacman<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Per Installationsmedium</span><br />
<br />
Vom Installationsmedium booten und die deutsche Tastaturbelegung {{ic|loadkeys de}} wählen. Anschließend Partitionen einhängen:<br />
Die Root-Partition nach {{ic|/mnt}} einhängen (Verzeichnis {{ic|/etc}} sollte darin enthalten sein)<br />
Für weitere Partitionen unterhalb {{ic|/mnt}} Ordner anlegen und entsprechend einhängen (bspw. {{ic|/mnt/usr}}). Eine Neuinstallation von Pacman kann nun mit diesem Befehl erfolgen:<br />
pacstrap /mnt pacman<br />
<br />
== Weitere Informationen ==<br />
*[https://www.archlinux.org/pacman/pacman.8.html man pacman]<br />
*[https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf]<br />
*[https://www.archlinux.org/pacman/repo-add.8.html man repo-add]<br />
<br />
== Siehe auch ==<br />
* [[Pacnew- und Pacsave-Dateien]]<br />
* [[Pacman beschleunigen]]<br />
* [[Pacman-Datenbank reparieren]]<br />
* [[Pacman-key]]<br />
* [[Paketliste archivieren]]<br />
* [[Eigene Repositories erstellen]]<br />
* [[Pacman-Tipps]]<br />
* [[Rosettastein Paketverwaltung ]]<br />
<br />
[[Kategorie:Paketverwaltung]]<br />
[[Kategorie:Systemverwaltung]]<br />
[[Kategorie:Befehle]]<br />
[[en:Pacman]]</div>Arisinfenixhttps://wiki.archlinux.de/index.php?title=Pacman&diff=20790Pacman2018-06-20T16:06:32Z<p>Arisinfenix: Bacman zur Zeit nicht verfügbar</p>
<hr />
<div>Der zentrale Paketmanager Pacman ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format {{ic|.pkg.tar.xz}} (bzw. {{ic|.pkg.tar.gz}} bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositorys stammen, oder vom Benutzer selbst über das [[Arch Build System]] (ABS) erstellt wurden. Auch selbst kompilierte Pakete sollten immer über Pacman installiert werden, damit sie in der zentralen Datenbank erfasst werden.<br />
<br />
Mittels Pacman wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem [[KISS-Prinzip]] wurde Pacman als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden.<br />
<br />
== Installation ==<br />
Pacman ist bereits Bestandteil jeder Arch Linux-Installation.<br />
<br />
== Die wichtigsten Pacman-Befehle ==<br />
Für neue Arch Linux-AnwenderInnen seien zunächst die wichtigsten Pacman-Befehle angeführt.<br />
<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket>''<br />
|Installiert ein Paket<br />
|-<br />
|pacman -R ''<Paket>''<br />
|Deinstalliert ein Paket<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Installation eines Paketes aus einer lokalen Datei (z.B. für ein Downgrade oder zur Installation selbst gebauter Pakete)<br />
|}<br />
Diese Befehle sind der Grundstock, um ein Arch-System einrichten und auf aktuellem Stand halten zu können.<br />
<br />
== Die Pacman-Syntax ==<br />
Der Aufruf der Optionen wird mit einem Minuszeichen eingeleitet und beginnt immer mit einem Großbuchstaben.<br />
<br />
*'''S''' – Synchronisation der lokalen Paketdatenbank mit den Repositorien, welche in der Datei {{ic|/etc/pacman.conf}} aktiviert sind (''Sync'')<br />
<br />
*'''Q''' – Bezieht sich immer auf die lokale Paketdatenbank des Systems (''Query'')<br />
<br />
*'''R''' – Dient zum Entfernen von installierten Paketen (''Remove'')<br />
<br />
*'''D''' – Bearbeitung der lokalen Paketdatenbank (''Database'')<br />
<br />
*'''U''' – Installiert Pakete aus einem lokalen Verzeichnis (''Upgrade'')<br />
<br />
*'''F''' – Sucht das Paket, welches eine Datei beinhaltet (''File'')<br />
<br />
Die vorangestellte Hauptoption kann mit weiteren Optionen in Kleinbuchstaben erweitert und spezifiziert werden, beispielsweise:<br />
*'''s''' – Bewirkt eine Suche. Bei {{ic|-Ss}} wird ein Paketname in der Paketdatenbank gesucht, Bei {{ic|-Rs}} werden die jeweils abhängigen Pakete gesucht und mit entfernt<br />
*'''y''' – Bewirkt eine Aktualisierung der Paketdatenbank (falls es tatsächlich Änderungen gibt)<br />
*'''yy''' – Erzwingt die Aktualisierung der Paketdatenbank auch dann, wenn keine Updates vorhanden sind<br />
<br />
=== Synchronisation und Installation von Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Syu<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|pacman -S ''<Paket1 Paket2>''<br />
|Eines oder mehrere Pakete installieren oder aktualisieren<br />
|-<br />
|pacman -Sy<br />
|Lokale Datenbank aktualisieren<br />
|-<br />
|pacman -Su<br />
|Alle installierten Pakete aktualisieren<br />
|-<br />
|pacman -Syy<br />
|Lokale Datenbank komplett neu aufbauen und aktualisieren<br />
|-<br />
|pacman -Syuu<br />
|Alle installierten Pakete downgraden (von Testing nach Core/Extra oder von Community-Testing nach Community)<br />
|-<br />
|pacman -S testing/''<Paket>''<br />
|Paket aus einem spezifischen Repo (hier: testing) installieren<br />
|-<br />
|pacman -Sw ''<Paket>''<br />
|Paket herunterladen, ohne es zu installieren<br />
|-<br />
|}<br />
<br />
=== Informationen zu installierbaren Paketen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Ss ''<Paket>''<br />
|Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung<br />
|-<br />
|pacman -Sg<br />
|Sucht nach installierbaren Paketgruppen<br />
|-<br />
|pacman -Sg ''<Paketgruppe>''<br />
|Zeigt den Inhalt einer Paketgruppe<br />
|-<br />
|pacman -Si ''<Paket>''<br />
|Informationen zu (noch) nicht installierten Paketen anzeigen<br />
|-<br />
|}<br />
<br />
=== Verwaltung lokaler Pakete ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -U ''<Paket-Dateiname>''<br />
|Ein lokales Paket installieren (nicht aus einem Repo)<br />
|-<br />
|pacman -D --asexplicit ''<Paket>''<br />
|Status eines installierten Paketes auf „Ausdrücklich installiert“ setzen<br />
|-<br />
|pacman -D ---asdeps ''<Paket>''<br />
|Status eines installierten Paketes auf „Installiert als Abhängigkeit“ setzen<br />
|-<br />
|pacman -Scc<br />
|Leert das lokale Paketarchiv von Pacman vollständig (''/var/cache/pacman/pkg'')<br />
|-<br />
|pacman -Sc<br />
|Löscht veraltete Pakete aus ''/var/cache/pacman/pkg'' sowie ungenutzte Repositorien aus ''/var/lib/pacman/sync''. <font color="red">Vorsicht</font>, behalten werden nur aktuell installierte Versionen – Vorversionen für ein Paket-Downgrade sind dann nicht mehr vorhanden.<br />
|-<br />
|}<br />
<br />
=== Pakete entfernen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -R ''<Paketname>''<br />
|Deinstallation eines oder mehrerer Pakete (aus AUR oder Repos)<br />
|-<br />
|pacman -Rs ''<Paketname>''<br />
|Wie oben, zusätzlich werden alle abhängige Pakete gesucht und mit entfernt, falls diese nicht von einer anderen Anwendung gebraucht werden<br />
|-<br />
|pacman -Rsc ''<Paketname>''<br />
|Wie oben. Abhängigkeiten werden kaskadierend entfernt<br />
|-<br />
|pacman -Rscn ''<Paketname>''<br />
|Wie oben. Die Konfigurationsdateien der Anwendung werden mit entfernt<br />
|-<br />
|pacman -Rdd ''<Paket>''<br />
|Deinstallation eines Paketes ohne Prüfung bestehender Paketabhängigkeiten. <font color="red">Vorsicht</font>, hierdurch kann die Konsistenz und Funktionstüchtigkeit der Systeminstallation beeinträchtigt werden!<br />
|-<br />
|pacman -Rss ''<Paket>''<br />
|Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen<br />
|-<br />
|}<br />
<br />
=== Abfragen der lokalen Paketdatenbank ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Q<br />
|Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an<br />
|-<br />
|pacman -Qi ''<Paket>''<br />
|Informationen zu bereits installiertem Paket anzeigen<br />
|-<br />
|pacman -Qs ''<Suchmuster>''<br />
|Installierte Pakete nach Name oder einem Begriff in der Beschreibung durchsuchen.<br />
|-<br />
|pacman -Qdt<br />
|Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden<br />
|-<br />
|pacman -Qet<br />
|Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden<br />
|-<br />
|pacman -Ql ''<Paket>''<br />
|Zeigt alle installierten Dateien des Pakets im System<br />
|-<br />
|pacman -Qm<br />
|Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden<br />
|-<br />
|pacman -Qo ''<Pfad zur Datei>''<br />
|Zeigt das Paket an, welches die gesuchte Datei enthält<br />
|-<br />
|pacman -Sy && pacman -Qu<br />
|Aktualisiert die lokale Paketdatenbank und zeigt verfügbare Updates an<br />
|-<br />
|<nowiki>pacman -Qk | grep warning</nowiki><br />
|Überprüft alle Pakete auf fehlende Dateien und schränkt die Ausgabe auf Problempakete ein<br />
|-<br />
|}<br />
<br />
=== Paketdateien suchen ===<br />
{|border="1" style="width:100%"<br />
|style="width:25%;background-color:#E5E5E5"|'''Befehl'''<br />
|style="width:75%;background-color:#E5E5E5"|'''Beschreibung'''<br />
|-<br />
|pacman -Fy<br />
|Lokale Datenbank aktualisieren (wie ''-Sy'')<br />
|-<br />
|pacman -Fyy<br />
|Lokale Datenbank neu aufbauen und aktualisieren (wie ''-Syy'')<br />
|-<br />
|pacman -Fs ''<Datei>''<br />
|Paket suchen das die Datei enthält<br />
|-<br />
|pacman -Fsx ''<Regex>''<br />
|Wie -Fs, aber Suche mit regulären Ausdrücken (hilfreich, falls der vollständige Dateiname unbekannt ist)<br />
|-<br />
|pacman -Fl ''<Paket>''<br />
|Alle Dateien des Paketes anzeigen<br />
|-<br />
|pacman -Fo ''<Pfad zur Datei>''<br />
|Paketzugehörigkeit einer Datei abfragen<br />
|-<br />
|}<br />
<br />
Es können auch mehrere Befehlsaufrufe kombiniert werden; hier z.B. zur vorhergehenden Prüfung und anschließenden Deinstallation aller verwaisten Pakete:<br />
pacman -Qdtq<br />
pacman -Rsn $(pacman -Qdtq)<br />
<br />
=== Paccache ===<br />
''Paccache'' ist ein Werkzeug zur Bereinigung des Pacman-Cache {{ic|/var/cache/pacman/pkg}}.<br />
<br />
Archivierte Pakete können hiermit differenzierter als mit {{ic|pacman -Scc}} bereinigt werden. Eine Übersicht der Möglichkeiten erhält man mit dem Befehl {{ic|paccache -h}}. Zur Bereinigung des Paket-Cache kann man beispielsweise so vorgehen:<br />
<br />
du -sh /var/cache/pacman/pkg # Belegung des Cache-Speicherplatzes prüfen<br />
paccache -dk2 # Testdurchlauf; Wieviel Platz kann eingespart werden?<br />
paccache -vrk2 # Entfernt Pakete aus dem Cache, behält die jüngsten 2 Versionen<br />
paccache -ruk0 # Alle Pakete aus dem Cache entfernen, die nicht (mehr) installiert sind<br />
<br />
=== Checkupdates ===<br />
Mit ''Checkupdates'' lässt sich prüfen, ob Aktualisierungen für installierte Pakete verfügbar sind, ohne eine komplette System-Aktualisierung ({{ic|pacman -Syu}}) durchzuführen.<br />
checkupdates<br />
Da die Prüfung auf Updates mit ''Checkupdates'' ohne Root-Rechte durchgeführt werden kann, eignet sich der Befehl sehr gut zur Verwendung in [[Conky]] und Scripts.<br />
<br />
=== Bacman ===<br />
Mit Hilfe der Paketdatenbank erstellt ''Bacman'' aus den installierten Dateien eines Paketes wieder ein Paketarchiv {{ic|*.pkg.tar.zx}}.<br />
bacman foobar<br />
<br />
{{hinweis| ''Paccache'' und ''Checkupdates'' sind Bestandteile des Paketes {{Paket|pacman-contrib}}, das mittels Pacman aus dem Repo {{ic|community}} nachinstalliert werden kann.<br />
''Bacman'' wurde nach der Entfernung aus Pacman (v.5.1.0) noch nicht in pacman-contrib eingepflegt und ist zur Zeit (Stand: 20.06.2018) nicht verfügbar.}}<br />
<br />
== Pacman-Datenbank ==<br />
Pacman speichert alle Paketinformationen in Form einer Vielzahl einzelner Dateien als logisch zusammengehörenden Datenbestand im Verzeichnis {{ic|/var/lib/pacman}}.<br />
<br />
<b>Installierbare Pakete:</b><br/><br />
Die Paketinformationen der in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} aktivierten Repositorien ([https://wiki.archlinux.de/title/Pacman#Konfiguration s.u.]) werden im Verzeichnis {{ic|/var/lib/pacman/sync}} gespeichert. Für diese Repos werden von Pacman Dateien mit folgenden Dateiendungen angelegt:<br />
* {{ic|<Repo>.sig}} – PGP-Sicherheitssignatur; diese ist nur für inoffizielle Repos erforderlich und vorhanden (''Textdatei'')<br />
* {{ic|<Repo>.files}} – Enthält die Textdateien {{ic|desc}} und {{ic|files}} mit den entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
* {{ic|<Repo>.db}} – Enthält die Datei {{ic|desc}} mit entsprechenden Informationen für jedes einzelne im Repo verfügbare Paket (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-S}} oder {{ic|-F}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank; er kann mit {{ic|-Sy}} aktualisiert und mit {{ic|-Syy}} neu generiert werden.<br />
<br />
<b>Installierte Pakete:</b><br/><br />
Die Paketinformationen der im System vorhandenen Pakete befinden sich im Unterverzeichnis {{ic|/var/lib/pacman/local}}. Für alle installierten Pakete werden dort gesonderte Verzeichnisse mit Namen und Version des Paketes angelegt; folgende Dateien sind darin enthalten:<br />
* {{ic|desc}} – Paketinformationen, welche mit dem Befehl {{ic|pacman -Qi <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|files}} – Pfadangaben aller mit dem Paket installierten Dateien, die mit dem Befehl {{ic|pacman -Fl <Paketname>}} abgerufen werden können (''Textdatei'')<br />
* {{ic|mtree}} – Zeit- und Größenangaben sowie Prüfsummen (Hashwerte) aller mit dem Paket installierten Dateien (''Gzip-Datei'')<br />
Pacman-Befehle, die mit {{ic|-Q}} oder {{ic|-D}} eingeleitet werden, beziehen sich auf diesen Bereich der Datenbank. Bei Installationen und Deinstallationen erfolgt eine fortlaufende Aktualisierung. Dieser systembezogene Teil der Datenbank kann nicht neu generiert werden, da er Ausgangsreferenz der lokalen Paketverwaltung ist.<br />
<br />
== Konfiguration ==<br />
Die Einstellungen für Pacman sind in der Datei {{ic|/etc/pacman.conf}} gespeichert und können dort angepasst werden.<br />
<br />
=== Allgemeine Einstellungen ===<br />
#RootDir = /<br />
#DBPath = /var/lib/pacman/<br />
#CacheDir = /var/cache/pacman/pkg/<br />
#LogFile = /var/log/pacman.log<br />
#GPGDir = /etc/pacman.d/gnupg/<br />
HoldPkg = pacman glibc<br />
#XferCommand = /usr/bin/curl -C - -f %u > %o<br />
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
#CleanMethod = KeepInstalled<br />
#UseDelta = 0.7<br />
Architecture = auto<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
#IgnorePkg =<br />
#IgnoreGroup =<br />
<br />
#NoUpgrade =<br />
#NoExtract =<br />
* Pakete, die durch {{ic|HoldPkg}} markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.<br />
* Pakete, die mit {{ic|IgnorePkg}} markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.<br />
* Dateien, die durch {{ic|NoUpgrade}} markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format {{ic|datei.pacnew}} an.<br />
* Dateien, die durch {{ic|NoExtract}} markiert sind, werden bei der Installation oder einem Update nicht installiert.<br />
<br />
Seit der Version 4.1 unterstützt Pacman auch farbige Ausgaben. Dazu muss die Option {{ic|#Color}} auskommentiert werden.<br />
<br />
=== Repositorien ===<br />
Offizielle Arch Linux-Pakete sind einem von sechs unterschiedlichen Repositorien zugeordnet:<br />
<br />
* {{ic|[core]}} enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.<br />
* {{ic|[extra]}} enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von [[KDE]] und [[GNOME]].<br />
* {{ic|[testing]}} enthält neue Versionen, die noch nicht hinreichend getestet wurden – mit anderen Worten: Dinge, die etwas kaputt machen könnten.<br />
* {{ic|[community]}} enthält eine Vielzahl zusätzlicher Programme, die ursprünglich nur als PKGBUILD im [[AUR]] zur Verfügung standen, nach einer Testphase jedoch als Binärpakete übernommen wurden. Dieses Repo wird von den [https://wiki.archlinux.org/index.php/Trusted_Users Trusted Users] betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.<br />
* {{ic|[multilib]}} enthält 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
* {{ic|[multilib-testing]}} enthält noch nicht hinreichend getestete 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.<br />
<br />
==== Repos festlegen ====<br />
Die Konfiguration der {{ic|/etc/pacman.conf}} ist weitgehend selbsterklärend und erfolgt durch Ein- oder Auskommentierung bestehender Einträge sowie durch Hinzufügen zusätzlicher Einträge.<br />
<br />
==== Inoffizielle Repos verwenden ====<br />
Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Eine Liste inoffizieller Repos findet man im [http://wiki.archlinux.org/index.php/Unofficial_user_repositories engl. Wiki].<br />
<br />
=== Spiegelserver ===<br />
Die Spiegelserver, von welchen Pacman die Pakete zur Installation und für Updates herunterladen soll, werden in der Datei {{ic|/etc/pacman.d/mirrorlist}} gespeichert; ein Auschnitt als Beispiel:<br />
{{bc|<nowiki><br />
## Germany<br />
Server = http://mirror.23media.de/archlinux/$repo/os/$arch<br />
Server = http://mirror.gnomus.de/$repo/os/$arch<br />
#Server = https://mirror.bethselamin.de/$repo/os/$arch<br />
#Server = http://ftp.fau.de/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
Die Wahl der Architektur und der Zugriff auf die Repos ist mit den Variablen {{ic|$repo}} und {{ic|$arch}} gekennzeichnet.<br />
<br />
Pacman greift vorrangig auf den ersten einkommentierten Server-Eintrag zu. Sollte der Server nicht erreichbar sein oder ein Paket dort nicht vorgefunden werden, wird auf den nächsten Server zugegriffen. Für eine optimale Zugänglichkeit vom eigenen Standort aus ist die Wahl heimischer Spiegelserver ratsam.<br />
<br />
Bei Veränderungen der weltweiten Spiegelserver werden von Pacman bei System-Updates automatisch neue Mirrorlisten als {{ic|/etc/pacman.d/mirrorlist.pacnew}} hinterlegt. Bei Bedarf kann man die darin enthaltenen deutschen Server auslesen:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew<br />
<br />
'''Tipp:''' Es reicht aus, nur wenige Spiegelserver in der Mirrorliste zu aktivieren und ggf. weitere, aber auskommentierte Server darunterstehend zu belassen. So kann der favorisierte Server – falls er sich nicht bewähren sollte – leicht durch einen anderen aus der auskommentierten „Vorratsliste“ ersetzt werden.<br />
<br />
==== Optimale Spiegelserver ====<br />
Die Spiegelserver unterscheiden sich in ihrer Aktualität und Geschwindigkeit. Relevante Messwerte sind:<br />
* '''Completion:''' Die Anzahl erfolgreicher Verbindungen bei Tests des Spiegelservers in Prozent; bei weniger als 100% könnte der Server unzuverlässig sein<br />
* '''Delay:''' Durchschnittliche Verzögerungdauer der letzten Synchronisation, diese sollte unter einer Stunde liegen<br />
* '''Duration:''' Durchschnittliche Verbindungs- und Abbrufzeit in Sekunden(bruchteilen); ein hoher Wert kann auf eine Überlastung des Servers hindeuten<br />
* '''Mirror Score:''' Eine grobe Berechnung des Rankings, das sich aus den vorgenannten Werten ergibt<br />
<br />
Eine vollständige Übersicht an Messergebnissen findet man auf der Seite [https://www.archlinux.org/mirrors/status Mirror-Status].<br><br />
Da die dort gelisteten Messergebnisse nicht dem eigenen Standort entsprechen, ist es sinnvoll, selbst Messungen durchzuführen. Pacman stellt hierfür das Tool ''Rankmirrors'' zur Verfügung. Mit folgendem Befehl können die Antwortzeiten der in der Mirrorliste einkommentierten Server geprüft werden:<br />
rankmirrors -n 0 -t /etc/pacman.d/mirrorlist<br />
Falls man differenzierte Vergleichsergebnisse wie z.B. einen „Mirror Score“ wünscht, kann man das Python-Script [[Reflector]] verwenden.<br />
Eine Liste von 10&nbsp;deutschen Spiegelservern mit der schnellsten Downloadrate erhält man z.B. mit diesem Befehl:<br />
reflector -c Germany -p http -p https --sort rate -n 10<br />
Fügt man am Ende des Befehles die Option {{ic|--info}} hinzu, werden zusätzlich die auf der Seite „Mirror-Status“ verfügbaren Details angezeigt.<br />
<br />
==== Mirrorliste aktualisieren ====<br />
Solange die favorisierten Spiegelserver gut und verlässlich funktionieren, sind Aktualisierungen der Mirrorliste nicht erforderlich. Falls man die Datei {{ic|/etc/pacman.d/mirrorlist}} jedoch auf Basis möglichst optimaler Messwerte aktualisieren möchte, bieten sich die vorgenannten Verfahren an.<br />
<br />
* '''Rankmirrors:''' Man kann die Antwortzeiten der deutschen Spiegelserver aus der Datei {{ic|mirrorlist.pacnew}} messen, aus den Ergebnissen z.B. die 15&nbsp;schnellsten Server extrahieren und von diesen wiederum die 4&nbsp;besten Spiegelserver aktivieren – diese gründliche Messung dauert einen Moment:<br />
awk '/Germany/{i=1;next}/^##/{i=0}i{print}' /etc/pacman.d/mirrorlist.pacnew | sed 's/^#//' > /tmp/mirror && rankmirrors -n 15 /tmp/mirror | sed '2,5!s/^S/#S/'<br />
<br />
* '''Reflector:''' Man kann die deutschen Spiegelserver online abrufen, z.B. eine Kurzmessung der Downloadrate durchführen, 15&nbsp;Server mit dem schnellsten Datendurchsatz extrahieren und von diesen die 4&nbsp;besten Spiegelserver aktivieren:<br />
reflector -c Germany -p http -p https --sort rate -n 15 | sed '11,14!s/^S/#S/'<br />
Falls man eine Sortierung auf Basis des bei [https://www.archlinux.org/mirrors/status Mirror-Status] abgerufenen „Mirror Score“ vornehmen möchte, kann man die Anweisung {{ic|--sort rate}} durch {{ic|--sort score}} ersetzen.<br />
<br />
{{hinweis|Beide oben angeführten Befehle geben die Resultate im Terminal aus. Um die vorhandene Mirrorliste zu ersetzten, kann als Ausgabeumleitung '''{{ic|>&nbsp;/etc/pacman.d/mirrorlist}}''' angefügt werden.}}<br />
<br />
==== Mirrorliste erweitern ====<br />
Eine weitere Möglichkeit besteht darin, einen favorisierten Spiegelserver in der Pacman-Konfigurationsdatei {{ic|/etc/pacman.conf}} vorzuschalten, zum Beispiel:<br />
[core]<br />
'''Server = <nowiki>http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch</nowiki>'''<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
{{hinweis|Wird ein Spiegelserver in {{ic|/etc/pacman.conf}} eingetragen, sollte unbedingt der gleiche Eintrag bei allen offiziellen Repos erfolgen ({{ic|[core]}}, {{ic|[extra]}}, {{ic|[community]}}, {{ic|[multilib]}}). Ansonsten besteht die Gefahr, dass aufgrund unterschiedlicher Aktualität der Server versucht wird, nicht kompatible Paketversionen zusammenzuführen.}}<br />
<br />
== Keine partiellen Upgrades ==<br />
Arch Linux wird als ''Rolling-Release'' forlaufend aktualisiert. Sobald neue Versionen von Programmbibliotheken {{wikipedia|Programmbibliothek#Unixartige_Systeme|<nowiki>[1]</nowiki>}} in den Repositorien erscheinen, werden vom Arch-Entwicklungsteam alle Pakete, die sich auf diese Bibliothek beziehen, neu (auf)gebaut. Auf diese Weise wird sicher gestellt, dass alle Pakete aus den offiziellen Repos mit der veränderten Schnittstelle der neuen Version funktionieren.<br />
<br />
Sollte man fälschlicherweise nur ein einzelnes Paket aktualisieren, werden mit diesem Paket bei Bedarf neue Versionen von Programmbibliotheken im System integriert. Andere bereits installierte und von einem Upgrade ausgenommene Pakete blieben jedoch weiterhin von älteren Versionen der Bibliotheken abhängig und kämen mit den veränderten Schnittstellen neuerer Versionen nicht zurecht. Aus diesem Grunde werden partielle Upgrades nicht unterstützt.<br />
<br />
Bevor ein neues Paket installiert wird, sollte immer zunächst mit {{ic|pacman -Syu}} eine Aktualisierung des kompletten Systems durchgeführt werden. Vor dem gleichen Hintergund sollte man auch bei Ausnahmen unter {{ic|IgnorePkg}} und {{ic|IgnoreGroup}} sehr umsichtig verfahren (s. [https://wiki.archlinux.de/title/Pacman#Konfiguration Konfiguration]).<br />
<br />
Pakete, die nicht aus den offiziellen Repositorien installiert worden sind (z.B. aus dem [[AUR]]) und sich auf Bibliotheken aus den Repos beziehen, müssen im Falle einer Änderung von {{ic|so}}-Namen (z.B. {{ic|libfoo.so.1}} → {{ic|libfoo.so.1.2}}) auf Anwenderseite neu gebaut werden.<br />
<br />
{{hinweis|Probleme, die auf Versionsunterschiede von Programmbibliotheken zurückzuführen sind, sollte man nicht durch „''Symlinking''“ verschlimmbessern. In der Regel lassen sich solche Probleme mit einem '{{ic|pacman -Syu}}' beheben.}}<br />
<br />
==Hilfe==<br />
=== Keine Verbindung zu einem Mirror===<br />
Aufgrund einer langsamen Internetverbindung oder nicht optimaler Pacman-Konfiguration kann es vorkommen, dass der Verbindungsaufbau zu einem Spiegelserver zu lange dauert und es so zu einem {{wikipedia|Timeout}} kommt. Um dieses Problem zu beheben, kann man – wie im Abschnitt [https://wiki.archlinux.de/title/Pacman#Optimale_Spiegelserver Optimale Spiegelserver] beschrieben – den schnellsten Server suchen und verwenden. Sollte auch das nicht zu gewünschtem Erfolg führen, kann versucht werden, einen alternativen Downloader einzusetzen. Dazu muss man die Datei {{ic|/etc/pacman.conf}} bearbeiten und einen der beiden Einträge durch Entfernen der Raute {{ic|#}} einkommentieren:<br />
{{bc|<nowiki><br />
#XferCommand = /usr/bin/{{Paket|curl}} -C - -f %u > %o<br />
#XferCommand = /usr/bin/{{Paket|wget}} --passive-ftp -c -O %o %u<br />
</nowiki>}}<br />
<br />
=== Bandbreite beschränken ===<br />
Um die Download-Bandbreite zu beschränken, kann in in der Konfigurationsdatei {{ic|/etc/pacman.conf}} innerhalb der Zeile …<br />
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
… dem ''wget''-Befehl die entsprechende Option hinzugefügt werden:<br />
XferCommand = /usr/bin/wget --passive-ftp '''--limit-rate=40k''' -c -O %o %u<br />
<br />
=== Pacman aus Versehen deinstalliert ===<br />
Wie kann Pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Manuelle Variante</span><br />
cd /<br />
bsdtar -x -f /var/cache/pacman/pkg/pacman-*.pkg.tar.xz<br />
<br />
Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist.<br />
Danach Pacman mittels des „neuen“ Pacman wieder installieren, damit der Datenbankeintrag für Pacman selbst wieder angelegt wird.<br />
pacman -S pacman<br />
<br />
* <span style="font-weight:bold;font-size:1.05em"> Per Installationsmedium</span><br />
<br />
Vom Installationsmedium booten und die deutsche Tastaturbelegung {{ic|loadkeys de}} wählen. Anschließend Partitionen einhängen:<br />
Die Root-Partition nach {{ic|/mnt}} einhängen (Verzeichnis {{ic|/etc}} sollte darin enthalten sein)<br />
Für weitere Partitionen unterhalb {{ic|/mnt}} Ordner anlegen und entsprechend einhängen (bspw. {{ic|/mnt/usr}}). Eine Neuinstallation von Pacman kann nun mit diesem Befehl erfolgen:<br />
pacstrap /mnt pacman<br />
<br />
== Weitere Informationen ==<br />
*[https://www.archlinux.org/pacman/pacman.8.html man pacman]<br />
*[https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf]<br />
*[https://www.archlinux.org/pacman/repo-add.8.html man repo-add]<br />
<br />
== Siehe auch ==<br />
* [[Pacnew- und Pacsave-Dateien]]<br />
* [[Pacman beschleunigen]]<br />
* [[Pacman-Datenbank reparieren]]<br />
* [[Pacman-key]]<br />
* [[Paketliste archivieren]]<br />
* [[Eigene Repositories erstellen]]<br />
* [[Pacman-Tipps]]<br />
* [[Rosettastein Paketverwaltung ]]<br />
<br />
[[Kategorie:Paketverwaltung]]<br />
[[Kategorie:Systemverwaltung]]<br />
[[Kategorie:Befehle]]<br />
[[en:Pacman]]</div>Arisinfenix