249 lines
15 KiB
TeX
Executable File
249 lines
15 KiB
TeX
Executable File
\section{Pacman (Arch Linux)}
|
|
\begin{justify}
|
|
Unter Arch Linux wird Software mit Kommandozeilen Werkzeug {\ttfamily pacman} eingespielt. Sollen Pakete aus dem AUR-Repository installiert werden, so nimmt man hierzu den Befehl {\ttfamily yaourt}. Ebenso kann man das Programm {\ttfamily yay} installieren, um Pakete aus dem AUR-Repository zu installieren und aktualisieren. Um zu prüfen, ob es es Updates gibt, kann man {\ttfamily pacman-contrib} nachinstallieren. In diesem Paket befindet sich dann das Programm {\ttfamily checkupdates}.
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Konfiguration
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Konfiguration}
|
|
F"ur die Konfiguration von {\ttfamily Pacman} gibt es in dem Verzeichnis {\ttfamily /etc} die Datei {\ttfamily pacman.conf}. Eine Farbige Ausgabe der Meldungen erh"alt man, wenn die Option {\ttfamily color} eingeschaltet wurde. Seit der Version 6 von Pacman kann man parallele Downloads definieren. Ebenso kann man die Ausgabe der Progressbar als Pacman darstellen
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Auszug pacman.conf]
|
|
uws@tux>egrep -i "download|color|candy" /etc/pacman.conf
|
|
Color
|
|
ParallelDownloads=5
|
|
ILoveCandy # Pacman Progressbar
|
|
\end{lstlisting}
|
|
Die Download-Geschwindigkeit l"asst sich mit der Option {\ttfamily \verb|--|limit-rate}
|
|
festlegen. Diese Option wird dem Parameter {\ttfamily XferCommand} hinzugef"ugt.\\
|
|
{\ttfamily XferCommand = /usr/bin/wger \verb|--|passive-ftp \verb|--|limit-rate=40k -c -o \%o \%u}
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Repositories
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Repositories}
|
|
Es gibt f"ur Offizielle Arch Linux Pakete sechs verschiedene Repositories, wo die Pakete zugeordnet wurden.
|
|
\begin{table}[ht]
|
|
\begin{tabular}{p{3cm}p{13cm}} % l => Text left, c => center, r => right, p => zeilenumbruch
|
|
\hline \rowcolor{hellgrau}\emph{\textbf{Repo Name}} & \emph{\textbf{Beschreibung}}\\
|
|
\hline
|
|
\hline
|
|
Core & Enth"alt Grundlegende Programme\\
|
|
Extra & Enth"alt zus"atzliche Programme, wie z.B. KDE oder Gnome\\
|
|
Testing & Enth"alt neuere Versionen, die aber noch nicht getestet worden sind\\
|
|
Community & Enth"alt Programme, die urspr"unglich nur als PKGBUILD im AUR zu Verf"ugung standen und nach einer Testphase "ubernommen wurden\\
|
|
Multilib & Enth"alt 32 Bit Programme f"ur 64 Bit Systeme\\
|
|
Multilib-testing & Wie Multilib, jedoch sind die Programme noch nicht ausreichend getestet worden\\
|
|
\end{tabular}
|
|
\caption{Repository Namen}
|
|
\end{table}
|
|
Weitere Repositories kann man sich in der Datei {\ttfamily /etc/pacman.conf} definieren, indem man dort einen Repo-Namen und Server spezifiziert. Eine Liste von {\ttfamily inoffizieller} Repositories findet man im englischen Wiki http://wiki.archlinux.org/index.php/Unofficial\_user\_repositories.
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Spiegel-Server
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Spiegel-Server}
|
|
Es gibt verschiedene Spiegel-Server von dem Hauptserver ftp.archlinux.org. Die Liste der Spiegel-Server befindet sich unter {\ttfamily /etc/pacman.d} und hat den Namen {\ttfamily mirrorlist}. Unter https://www.archlinux.de/?page=MirrorStatus kann man sich die Geschwindigkeit der Spiegelserver anzeigen lassen. Eine aktuelle Liste der Spiegel-Server kann man sich unter https://www.archlinux.org/mirrorlist erstellen lassen. Die Antwortzeiten der Spiegel-Server kann man mit {\ttfamily rankmirrors} oder auch mit {\ttfamily pacman-mirrors -g} testen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Spiegelserver, label=lst:bash]
|
|
uws@tux>sudo pacman-mirrors -c Germany # update Germany Mirror Server
|
|
\end{lstlisting}
|
|
Die {\ttfamily mirrorlist} wird vom System immer wieder mal aktualisiert. Man kann sich auch eine eigene Mirroliste erstellen und diese in der {\ttfamily pacman.conf} in den entsprechenden Repositories Abschnitten einf"ugen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Eigene Mirrorliste, label=lst:bash]
|
|
[core]
|
|
Include = /etc/pacman.d/mirrorlist
|
|
Include = /etc/pacman.d/myMirrorlist
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Update
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Update}
|
|
Mit dem Befehl {\ttfamily pacman -Syu} kann man eine komplette System Aktualisierung vornehmen. M"ochte man aber nur eine Aktualisierungen f"ur die installierten Pakete vornehmen, so kann das mit {\ttfamily checkupdates} geschehen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Update, label=lst:bash]
|
|
uws@tux>sudo pacman -Syu
|
|
|
|
uws@tux>sudo checkupdates
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Paket decline
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Paket decline}
|
|
M"ochte man ein Paket von der Aktualisierung ausschlie"sen, so kann man das mit {\ttfamily \verb|--|ignore} machen. Eine ganze Paketgruppe wird mit {\ttfamily \verb|--|ignoregroup} ausgeschlossen. Soll ein Paket dauerhaft von einer Aktualisierung ausgeschlossen werden, so gibt man in der {\ttfamily /etc/pacman.conf} unter {\ttfamily IgnorePkg} die Pakete an, die nicht aktualisiert werden sollen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Ignore Paket, label=lst:bash]
|
|
uws@tux>sudo pacman -Syu --ignore=<PaketName> # einzelne Pakete ausschliessen
|
|
|
|
uws@tux>sudo pacman -Syu ..ignoregroup=<PaketName> # ganze Paket Gruppe ausschliessen
|
|
|
|
uws@tux>grep -i "IgnorePkg" /etc/pacman.conf
|
|
IgnorePkg=<PaketName>
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Paket Neuinstallieren
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Paket Neuinstallieren}
|
|
M"ochte man ein Programm neu installieren, aber es sind noch Fragmente auf der Festplatte und die Installation schl"agt fehl, so kann man die Installation mit {\ttfamily overwrite} erzwingen. Als Option wird dann ein =true oder '*' angegeben.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Programm Neuinstallation]
|
|
uws@tux>sudo pacman -S <PaketName> --overwrite '*'
|
|
\end{lstlisting}
|
|
Kommt bei einem Update des Systems zum Beispiel die Meldung: \
|
|
Fehler: Konnte den Vorgang nicht durchf"uhren (In Konflikt stehende Dateien). \
|
|
nss: /usr/lib/pll-kit-trust.so existiert im Dateisystem \
|
|
Fehler sind aufgetreten, keine Pakete wurden aktualisiert \
|
|
Error installing repo package \
|
|
So kann das Update auch mit der overwrite Option erzwingen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Programm Neuinstallation]
|
|
uws@tux>sudo pacman -Syu --overwrite=true /usr/lib\*/pll-kit-trust.so
|
|
\end{lstlisting}
|
|
\newpage
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Paket downgrade
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Paket downgrade}
|
|
Wird ein Paket von einer bestimmten Version benötigt, so kann man das Paket {\ttfamily manjaro-downgrade} installieren. Damit kann man ein Paket mit der benötigten Version installiert werden.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Paket downgrade]
|
|
uws@tux>pamac install manjaro-downgrade
|
|
|
|
uws@tux>#sudo manjaro-downgrade thunderbirdq
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Paket auflisten
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Paket auflisten}
|
|
Ein installiertes Paket / Programm kann man mit {\ttfamily pacman -Q} sich anzeigen lassen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Paket Anzeige]
|
|
uws@tux>pacman -Q | grep -i fire
|
|
firefox 93.0-1
|
|
firefox-i18n-de 93.0-1
|
|
firefox-i18n-en-us 93.0-1
|
|
|
|
uws@tux># Detail Ausgabe
|
|
uws@tux>pacman -Qi | grep -i fire
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Cache leeren
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Cache leeren}
|
|
Um den Cache zu leeren, wird pacman mit der Option -Sc[c] aufgerufen. Den AUR-Cache im Home Verzeichnis wird mit yay -Scc geleert.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Cache leeren]
|
|
uws@tux># AUR-Cache im home Verzeichnis leeren
|
|
uws@tux>yay -Scc
|
|
Cache directory: /var/cache/pacman/pkg/
|
|
:: Do you want to remove ALL files from cache? [y/N] N
|
|
Database directory: /var/lib/pacman
|
|
:: Do you want to remove unused repositories? [y/N] N
|
|
Build directory: /home/uws/.cache/yay
|
|
:: Do you want to remove ALL AUR packages from cache? [Y/n] Y
|
|
removing AUR packages from cache ...
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Solutions
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Solutions}
|
|
Hier werden Lösungen zu Problemen beschrieben.
|
|
%-------------------------------------------------------------------------------
|
|
\subsubsection{Kann Datenbank nicht sperren}
|
|
Kommt bei einem {\ttfamily sudo pacman -Syu} die Meldung: {\ttfamily Kann Datenbank nicht sperren}, so muss man die Lock-Datei der DB löschen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Lock löschen]
|
|
uws@tux>sudo rm /var/lib/pacman/db.lck
|
|
uws@tux># oder
|
|
uws@tux>sudo rm /var/tmp/pamac/dbs/db.lck
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
\subsubsection{Schlüssel konnte nicht importiert werden}
|
|
Kommt bei einem Update des Systems die Meldung: \\
|
|
{\ttfamily Fehler: Schlüssel "c06096.." konnte nicht importiert werden}\\
|
|
so ist folgendes zu machen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=gnupg neu]
|
|
uws@tux>sudo mv /etc/pacman.d/gnupg /etc/pacman.d/gnupg.defekt
|
|
uws@tux>sudo pacman-key --init
|
|
uws@tux>sudo pacman-key --populate archlinux manjaro
|
|
uws@tux>sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
\subsubsection{jre-openjdk und jre-openjdk-headless stehen in Konflikt}
|
|
Damit man diesen Konflikt lösen kann, muss man jdk-openjdk neu installieren.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=jdk-openjdk install]
|
|
uws@tux>sudo pacman -Sy jdk-openjdk
|
|
... jre-openjdk entfernen [j/N] j
|
|
... jre-openjdk-headless entfernen [j/N] j
|
|
\end{lstlisting}
|
|
%-------------------------------------------------------------------------------
|
|
\subsubsection{Installation von icu(75.1-1) verletzt Abhängigkeit >>libicuuc.so=73-64<<}
|
|
Diese Meldung kommt, wenn man ein Systemupdate macht. Dieses Problem kann mit dem löschen von nicht mehr benötigten Abhängikkeiten lösen.
|
|
\listBash
|
|
\begin{lstlisting}[captionpos=b, caption=Abhängigkeiten anzeigen / löschen]
|
|
uws@tux># Anzeigen
|
|
uws@tux>sudo pacman -Qdti | less
|
|
|
|
uws@tux># Löschen
|
|
uws@tux>sudo pacman -Qdtq | pacman -Rns -
|
|
\end{lstlisting}
|
|
\newpage
|
|
%-------------------------------------------------------------------------------
|
|
% Section: Befehle
|
|
%-------------------------------------------------------------------------------
|
|
\subsection{Befehle}
|
|
In der nachfolgenden Tabelle sind einige der wichtigsten Befehle aufgelistet. Die Angabe der Paketnamen muss immer {\ttfamily klein} geschrieben werden.
|
|
\begin{longtable}[l]{p{4cm}p{11cm}}
|
|
\rowcolor{hellgrau}\multicolumn{1}{l}{\textbf{Befehl}} & \multicolumn {1}{l}{\textbf{Beschreibung}} \\
|
|
\hline
|
|
\hline
|
|
\endfirsthead
|
|
%\multicolumn{2}{c}{{\bfseries \tablename \thetable{} continued from previous page.}} \\
|
|
\multicolumn{2}{r}{{\bfseries continued from previous page.}} \\
|
|
\rowcolor{hellgrau}\multicolumn{1}{l}{\textbf{befehl}} & \multicolumn {1}{l}{\textbf{Beschreibung}} \\
|
|
\hline
|
|
\hline
|
|
\endhead
|
|
%\multicolumn{2}{r}{{\bfseries \tablename \thetable{} Continued on next page}} \\
|
|
\multicolumn{2}{r}{{\bfseries Continued on next page}} \\
|
|
\endfoot
|
|
\caption{Pacman Befehle} \\
|
|
\endlastfoot
|
|
pacman -Syu & Eine komplette Systemaktualisierung wird durchgef"uhrt\\
|
|
pacman -S <paket1> <paket2> & Ein oder auch mehrere Pakete installieren\\
|
|
pacman -Sy & Lokale DB aktualisieren\\
|
|
pacman -Su & Alle installieren Pakete aktualisieren\\
|
|
pacman -Syy & Loakle DB neu aufbauen\\
|
|
pacman -Syuu & Alle installierten Pakete downgraden (z.B. von Testing nach Core/Extra)\\
|
|
pacman -Ss <paket> & Nach Paketen suchen. Es wird nach Name oder Beschreibung gesucht\\
|
|
pacman -Sg & Suche nach Paketgruppen\\
|
|
pacman -Sg <paketgruppe> & Inhalt einer Paketgruppe anzeigen\\
|
|
pacman -Q & Alle installierten Paket incl. der Versionsnummer anzeigen\\
|
|
pacman -Qs <paket> & Nach installierten Paketen suchen\\
|
|
pacman -R & Paket deinstallieren\\
|
|
pacman -Rd <paket> & Pakete deinstallieren, ohne auf Abh"angigkeiten zu achten\\
|
|
pacman -Rdd <paket> & Pakete deinstallieren und alle Abh"angigkeitspr"ufungen abschalten\\
|
|
pacman -Rs <paket> & Paket mit allen Abh"angigkeiten deinstallieren\\
|
|
pacman -Rss <paket> & Paket mit allen Abh"angigkeiten und deren Abh"angigkeiten deinstallieren\\
|
|
pacman -D <paket> & Status eines installierten Programms "andern ohne eine Neuinstallation\\
|
|
pacman -Qi <paket> & Info "uber ein installiertes Paket anzeigen\\
|
|
pacman -Si <paket> & Info "uber ein zu installierendes Paket anzeigen\\
|
|
pacman -Sw <paket> & Paket herunterladen und noch nicht installieren\\
|
|
pacman -S testing/<paket> & Ein Paket aus einem bestimmten Repositorie installieren\\
|
|
pacman -U <paket> & Ein lokales Paket installieren\\
|
|
pacman -Runs <paket> & Ein Paket mit allen Anbh"angigkeiten deinstallieren\\
|
|
pacman -Qdt & Verwaiste Pakete anzeigen, die nicht mehr von anderen Paketen ben"otigt werden\\
|
|
pacman -Qet & Pakete anzeigen, die ausdr"ucklich installiert wurden, aber nicht von anderen ben"otigt werden\\
|
|
pacman -Scc & Leert den lokalen Speicher /var/cache/pacman/pkg\\
|
|
pacman -Sc & L"oscht nicht mehr ben"otigte oder alte Pakete aus /var/cache/pacman/pkg und aus /var/lib/pacman\\
|
|
pacman -Qi <paket> & Alle installierten Dateien des Paketes anzeigen\\
|
|
pacman -Qm & Pakete anzeigen, die sich in keinem aktivierten Repository sich befinden\\
|
|
pacman -Qu & Anzeige, f"ur welche von den Installierten Paketen Updates gibt\\
|
|
pacman -Qk & "Uberpr"uft alle Pakete auf fehlende Dateien\\
|
|
pacman -Fy & Die lokale Datenbank wird aktualisiert\\
|
|
pacman -Fs <paket> & Das Paket suchen, das die Datei enth"alt\\
|
|
pacman -Fsx <regex> & Suche nach regul"aren Ausdr"ucken, sonst wie -Fs\\
|
|
pacman -Fi <paket> & Alle Dateien des Paketes anzeigen\\
|
|
pacman-optimize & Die Pacman DB optimieren\\
|
|
\end{longtable}
|
|
\end{justify}
|