% master: software_installieren.tex
% Software installieren v0.5
% 2022-05-09 (Rx)

\section{Software installieren}
%------------------------------
\subsection{rpm-Format}
\begin{verbatim}
http://www.rpm.org/             weiterführende Informationen
http://www.rpmfind.net/         Hilfe zu fehlenden rpms oder Merkmalen

/var/lib/rpm/Packages           rpm-Datenbank
/var/lib/rpm/packages.rpm       -> /var/lib/rpm/Packages
\end{verbatim}

Geänderte Konfigurationsdateien überschreibt rpm beim Update nicht, sondern
hebt sie als Datei.rpmsave auf. diff hilft die Unterschiede anzuzeigen.

\index{rpm}
\begin{verbatim}
rpm -i Paketname.rpm            Installiert mit Prüfung auf Abhängigkeiten
rpm -i --nodeps Paketname.rpm   Installiert ohne Prüfung auf Abhängigkeiten
rpm -i --test Paketname.rpm     Testet die Installation ohne Daten zu verändern
rpm -iv Paketname.rpm           Installiert mit Prüfung auf Abhängigkeiten
                                und Rückmeldung
rpm -ivh Paketname.rpm          Installiert, prüft, meldet und
                                zeigt den Vorgang an

rpm -Uvh Paketname.rpm          Update eines rpm-Binärpaketes

rpm -Fvh Paketname.rpm          Aktualisiert rpm-Binärpaket
rpm -Fvh *.rpm                  Aktualisiert alle rpm-Binärpakete im .
rpm -e Paket                    Deinstalliert mit Prüfung auf Abhängigkeiten

rpm -qa                         zeigt die installierten rpm-Pakete an
rpm -qa | grep -i Paket         zeigt ob das Paket installiert ist
rpm -qi Paket                   zeigt Informationen über das installierte Paket
rpm -qip Paketname.rpm          zeigt Informationen über das rpm-Binärpaket
rpm -ql Paket                   zeigt die enthaltenen Dateien des installierten
                                Paketes an
rpm -qlp Paketname.rpm          zeigt die enthaltenen Dateien des
                                rpm-Binärpaketes
rpm -qf /Pfad/Datei             zeigt das Paket aus dem die Datei stammt
rpm -q --requires Paket         zeigt die geforderten Merkmale des installierten
                                Paketes an
rpm -qp --requires Paketname.rpm        zeigt die geforderten Merkmale des
                                rpm-Binärpaketes
\end{verbatim}

\subsection{deb-Format}
\index{dpkg}\index{apt-get}\index{apt}
\begin{verbatim}
dpkg -i Paketname.deb           Installation eines deb-Binärpaketes
dpkg -P Paket                   Deinstalliert mit Prüfung auf Abhängigkeiten

dpkg -l                         zeigt die installierten deb-Pakete an
dpkg -l "*Paket*"               zeigt ob das Paket installiert ist
dpkg -p Paket                   zeigt Informationen über das installierte Paket
dpkg -I Paketname.deb           zeigt Informationen über das deb-Binärpaket
dpkg -L Paket                   zeigt die enthaltenen Dateien des installierten
                                Paketes an
dpkg -c Paketname.deb           zeigt die enthaltenen Dateien des
                                deb-Binärpaketes
dpkg -S /Pfad/Datei             zeigt das Paket aus dem die Datei stammt

apt                             neue Alternative für apt-get
apt-get autoclean               Veraltete Pakete aus dem Cache löschen
apt-get clean                   alle Pakete aus dem Cache löschen
apt-get install Paket           Installiert mit Prüfung auf Abhängigkeiten
apt-get remove Paket            Deinstalliert mit Prüfung auf Abhängigkeiten
apt-get --purge remove Paket    Deinstalliert vollständig
apt-get autoremove              Deinstalliert nicht benötigte Pakete
apt-get dist-upgrade            aktualisiert die gesamte Distribution
apt-cache search Name           durchsucht die gesamte Distribution
apt-get update                  APT-Datenbank auf den aktuellen Stand bringen

dpkg --get-selections > Paketliste              Paketliste exportieren
###sudo dpkg --set-selections < Paketliste         Paketliste importieren geht nicht
\end{verbatim}

\subsection{Portage Gentoo}
\index{emerge}\index{revdep-rebuild}\index{etc-update}\index{equery}\index{euse}
\begin{verbatim}
emerge --sync                   Aktualisieren des Portage-Tree mit rsync
emerge --webrsync               Aktualisieren mit dem Portage-Snapshots

emerge --search Pragrammname    Nach Software suchen
emerge --searchdesc Name        Suche nach Paketen im Zusammenhang mit dem Namen

emerge Programmname             Software installieren
emerge -pv Programmname         Installation von Programmen simulieren, USE-Flags anzeigen
emerge --fetchonly Programmname Quellen herunterzuladen, noch nicht kompilieren

emerge --unmerge Programmname   Entfernung von Programm aus dem System

emerge --update --ask world     Aktualisierung des Systems
emerge -f -u -a world           Aktualisierung herunterzuladen, aber nicht
                                kompilieren und installieren
emerge --update --deep world    Aktualisierung des gesamten Systems
emerge --update --newuse world  Neuerstellung des gesamten System

emerge --depclean		verweiste Abhängigkeiten entfernen
revdep-rebuild                  reverse Abhängigkeiten neu erstellen
etc-update                      Konfigurationsdateien zusammenzuführen

equery belongs /Pfad/Datei      zeigt das Paket aus dem die Datei stammt
equery depends Programmname     Abhängigkeiten anzeigen
equery depgraph Programmname    Abhängigkeiten als Baum anzeigen
equery files Programmname       Dateien auflisten, die zu einem Ebuild gehören
equery hasuse USE-Flag          Pakete suchen, die ein spezifisches USE-Flag
                                benutzen
equery size Programmname        Paketgröße anzeigen
equery uses Programmname        Gesetzte und nicht gesetzte USE-Flags
equery which Programmname       Anzeigen des Ebuildpfads
euse -a                         Alle aktiven USE-Flags anschauen
euse -a -l                      Aktive lokale USE-Flags anschauen
euse -E USE-Flag                Setzen von USE-Flags
euse -D USE-Flag                Deaktivieren von USE-Flags
\end{verbatim}

\subsection{Quelltexte}
\index{make}
\begin{verbatim}
tar xvfz Source.tgz             Quelltext entpacken
./configure                     Makefile konfigurieren
make                            Programm übersetzen,
                                wenn Makefile vorhanden
make install                    Programm installieren
make uninstall                  Programm deinstallieren
\end{verbatim}

\subsection{Hilfe}
\index{ldd}\index{strace}
\begin{verbatim}
ldd Programm                    zeigt die zu ladenen Bibliotheken des Programms
strace -eopen Programm          zeigt die geladenen Bibliotheken des Programms
\end{verbatim}

