Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux_paketmanager

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux_paketmanager [2024-02-12 00:16:17] – [APT Einstellungen] manfredlinux_paketmanager [2025-09-17 18:59:32] (aktuell) – [Debian/Ubuntu] david
Zeile 1: Zeile 1:
 +====== Linux Paketmanager ======
 +
 +
 +===== Links =====
 +
 +  * http://wiki.kubuntu-de.org/Konfiguration/Programme_installieren/Paketmanagement
 +  * http://de.wikipedia.org/wiki/Debian_Package_Manager
 +
 +
 +===== RPM-Hölle =====
 +
 +[[http://linuxwiki.de/yum]]
 +
 +Ist eine Paketinstallation oder -deinstallation schief gegangen, kann es passieren,
 +das man dann mit der Installation eines Paketes nicht mehr weiter kommt, da RPM
 +dann beim installieren meint, es sei schon installiert und beim deinstallieren
 +meint, es sei ja gar nicht installiert...
 +
 +Das nennt man dann **RPM-Hölle**.
 +
 +Dieses Problem ist sehr unangenehm, kann aber recht einfach gelöst werden.
 +
 +Bei RedHat/Fedora geht das so:
 +
 +  # killall -9 rpm
 +  # rm -f /var/lib/rpm/__db.*
 +  # rpm --rebuilddb
 +
 +
 +===== APT (Debian/Ubuntu) =====
 +
 +**siehe: [[apt]]**
 +
 +  * Debian: [[https://wiki.debian.org/DebianReleases]]
 +  * Ubuntu: [[https://ubuntu.com/about/release-cycle]]
 +
 +
 +==== nützliches ====
 +
 +so kann man sehen, ob APT gerade läuft:
 +  > lsof /var/lib/dpkg/lock
 +
 +so bekommt man die Paker-Abhängigkeiten zu einem bestimmten Paket raus:
 +  > apt-cache depends -i mc
 +  mc
 +    Depends: libc6
 +    Depends: libext2fs2
 +    Depends: libglib2.0-0
 +    Depends: libgpm2
 +    Depends: libslang2
 +    Depends: libssh2-1
 +    Depends: mc-data
 +
 +
 +==== aufräumen ====
 +
 +  # dpkg --configure -a
 +  # apt-get check
 +  # apt-get -f install
 +  # apt-get autoremove
 +
 +<code bash>
 +#!/bin/bash
 +
 +#apt update ; apt --fix-broken install ; apt full-upgrade ; apt autoremove
 +
 +time (locale-gen ; apt update ; apt -y full-upgrade ; apt -y autoremove ; apt -y autoclean ; flatpak repair ; flatpak -y update) && echo OK || echo Fehler
 +dpkg --configure -a
 +pihole -up
 +
 +dpkg -l | sed "s/^ii[ ]*//;s/ .*//" | grep -E ^linux-
 +uname -a
 +sync
 +cat /var/run/reboot-required
 +</code>
 +
 +
 +==== Deprecated: apt-key ====
 +
 +  * ''add-apt-repository'' ist lediglich ein wrapper um ''apt-key'', also keine sichere Alternative!
 +  * Allen Keys in ''/etc/apt/trusted.gpg.d/'' wird bedingungslos vertraut (cross signing), deshalb ist es nicht sicherer als ''/etc/apt/trusted.gpg'', was von ''apt-key'' verwendet wird
 +  * Keys sollten deshalb an einem "nicht besonderen" Ort abgelegt werden, der laut ''man sources.list'' empfohlene Ort befindet sich für...
 +    * **selbst verwaltete Keys** unter: ''/etc/apt/keyrings/''
 +    * von Paketen verwaltete Keys unter: ''/usr/share/keyrings/''
 +  * weitere Infos: [[https://askubuntu.com/a/1307181]]
 +
 +  ### bis Debian 11 / Ubuntu 22.04
 +  curl -Ls https://packages.element.io/debian/element-io-archive-keyring.asc | apt-key add -
 +  
 +  ### ab Debian 12 / Ubuntu 22.10
 +  curl -Lso /etc/apt/keyrings/element-desktop.asc https://packages.element.io/debian/element-io-archive-keyring.asc
 +
 +
 +==== apt policy und pinning ====
 +
 +Paketquellen und ihre Priorität anzeigen, außerdem werden angepinnte (pinned) Pakete aufgelistet
 +
 +  apt-cache policy
 +
 +
 +Verfügbare Paketquellen für das angegebene Paket anzeigen
 +
 +  apt-cache policy git
 +
 +
 +==== URL-Liste der benötigten Pakete ====
 +
 +Dieser Befehl liefert eine URL für alle zu installierenden Pakete.
 +
 +In diesem Fall, um "gnome" zu installieren:
 +  # apt-get -q -y --print-uris install gnome | grep ^\' | awk '{print $1}' | tr -d "'" > wget.list
 +
 +
 +==== DEB-Hölle ====
 +
 +Leider gibt es unter Debian und Ubuntu auch diesen leidigen Zustand, der im RPM-Paketsystem berüchtigt ist.
 +
 +Aber viel schlimmer ist die Tatsache, dass es hier nicht so leicht repariert werden kann.  :-(
 +
 +Unter der URL [[http://ubuntuforums.org/showthread.php?t=474587]] wird ein Script vorgestellt,
 +mit dem man sich seine Paket-Datenbank, oder wie man es unter Debian nennen will, neu generieren kann.
 +
 +Leider kann das Script die Datei ///var/lib/dpkg/status// nicht in vollem Umfang neu generieren,
 +es fehlen die "Confiles"-Felder und ausserdem hat jedes Paket den Status "installed",
 +auch die deinstallierten Pakete!
 +
 +  #!/bin/bash
 +  
 +  get_control_info ()
 +  {
 +        for i in /var/lib/apt/lists/*_Packages
 +        do
 +                sed '/Package: '"$1"'$/,/^$/!d' $i
 +        done
 +  }
 +  
 +  for i in /var/lib/dpkg/info/*.list
 +  do
 +        package_name=`basename $i | sed 's/.list$//'`
 +        get_control_info $package_name >> status-new
 +  done
 +  
 +  sed -i -e '/^Filename: .*/d' -e '/^MD5sum:/d' -e '/^SHA1:/d' -e '/^SHA256:/d' status-new
 +  sed -i '/^Package: /a\Status: install ok installed' status-new
 +
 +Das Feld "Confiles" muss man aus der alten Datei von Hand rekonstruieren, ebenso wie der Status bei deinstallierten Paketen.
 +
 +
 +==== Paket ist in einem sehr schlechten inkonsistenten Zustand ====
 +
 +das defekte Paket lässt sich nicht entfernen:
 +<file>
 +# aptitude purge -f dropbear
 +Die folgenden Pakete werden ENTFERNT:           
 +  dropbear{p} 
 +0 Pakete aktualisiert, 0 zusätzlich installiert, 1 werden entfernt und 0 nicht aktualisiert.
 +0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 748 kB frei werden.
 +Möchten Sie fortsetzen? [Y/n/?
 +dpkg: Fehler beim Bearbeiten des Paketes dropbear (--purge):
 + Paket ist in einem sehr schlechten inkonsistenten Zustand - Sie sollten
 + es erneut installieren, bevor Sie es zu entfernen versuchen.
 +Fehler traten auf beim Bearbeiten von:
 + dropbear
 +E: Sub-process /usr/bin/dpkg returned an error code (1)
 +Ein Paket konnte nicht installiert werden. Versuch, dies zu lösen:
 +</file>
 +
 +man kann es aber auch nicht erneut installieren (wir bei PURGE empfohlen):
 +<file>
 +# aptitude install dropbear
 +Die folgenden teilweise installierten Pakete werden konfiguriert:
 +  dropbear 
 +Es werden keine Pakete installiert, aktualisiert oder entfernt.
 +0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
 +0 B/137 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.
 +dpkg: Fehler beim Bearbeiten des Paketes dropbear (--configure):
 + Paket ist in einem sehr schlechten inkonsistenten Zustand - Sie sollten es
 + nochmal installieren, bevor Sie die Konfiguration versuchen.
 +E: Sub-process /usr/bin/dpkg returned an error code (1)
 +Ein Paket konnte nicht installiert werden. Versuch, dies zu lösen:
 +</file>
 +
 +=== die Lösung ===
 +
 +damit er beim entfernen keine Zicken macht:
 +<file>
 +# rm /var/lib/dpkg/info/dropbear.prerm
 +</file>
 +
 +entfernen:
 +<file>
 +# dpkg --remove --force-remove-reinstreq dropbear
 +dpkg: Warnung: Problem wird übergangen, weil --force angegeben ist: 
 +dpkg: Warnung: Paket ist in einem sehr schlechten inkonsistenten Zustand - Sie sollten
 + es erneut installieren, bevor Sie es zu entfernen versuchen.
 +(Lese Datenbank ... 91885 Dateien und Verzeichnisse sind derzeit installiert.)
 +Entfernen von dropbear (2013.60-1ubuntu2.1) ...
 +Trigger für man-db (2.6.7.1-1ubuntu1) werden verarbeitet ...
 +</file>
 +
 +sauber machen:
 +<file>
 +# dpkg --purge --force-remove-reinstreq dropbear
 +(Lese Datenbank ... 91862 Dateien und Verzeichnisse sind derzeit installiert.)
 +Entfernen von dropbear (2013.60-1ubuntu2.1) ...
 +Löschen der Konfigurationsdateien von dropbear (2013.60-1ubuntu2.1) ...
 +</file>
 +
 +zur Probe nocheinmal mit Aptitude:
 +<file>
 +# aptitude purge -f dropbear
 +Es werden keine Pakete installiert, aktualisiert oder entfernt.
 +0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
 +0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.
 +</file>
 +
 +erneut sauber installieren:
 +<file>
 +# aptitude install dropbear
 +Die folgenden NEUEN Pakete werden zusätzlich installiert:
 +  dropbear 
 +0 Pakete aktualisiert, 1 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
 +0 B/137 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 748 kB zusätzlich belegt sein.
 +Vormals nicht ausgewähltes Paket dropbear wird gewählt.
 +(Lese Datenbank ... 91857 Dateien und Verzeichnisse sind derzeit installiert.)
 +Vorbereitung zum Entpacken von .../dropbear_2013.60-1ubuntu2.1_amd64.deb ...
 +Entpacken von dropbear (2013.60-1ubuntu2.1) ...
 +Trigger für man-db (2.6.7.1-1ubuntu1) werden verarbeitet ...
 +Trigger für ureadahead (0.100.0-16) werden verarbeitet ...
 +dropbear (2013.60-1ubuntu2.1) wird eingerichtet ...
 +Converting existing OpenSSH RSA host key to Dropbear format.
 +Key is a RSA key
 +Wrote key to '/etc/dropbear/dropbear_rsa_host_key'
 +Converting existing OpenSSH RSA host key to Dropbear format.
 +Key is a DSS key
 +Wrote key to '/etc/dropbear/dropbear_dss_host_key'
 +OpenSSH appears to be installed.  Setting /etc/default/dropbear so that
 +Dropbear will not start by default.  Edit this file to change this behaviour.
 +
 +update-initramfs: deferring update (trigger activated)
 +Dropbear has been added to the initramfs. Don't forget to check
 +your "ip=" kernel bootparameter to match your desired initramfs
 +ip configuration.
 +
 +Restarting Dropbear SSH server: [abort] NO_START is not set to zero in /etc/default/dropbear
 +Trigger für ureadahead (0.100.0-16) werden verarbeitet ...
 +Trigger für initramfs-tools (0.103ubuntu4.2) werden verarbeitet ...
 +update-initramfs: Generating /boot/initrd.img-3.19.0-49-generic
 +dropbear: NOTICE: Skipping dropbear installation because /etc/crypttab has no entries.
 +</file>
 +
 +
 +===== Proxy konfigurieren =====
 +
 +
 +==== Fedora (RedHat/CentOS 5.x) ====
 +
 +  vi /etc/yum.conf
 +        proxy=http://192.168.1.1:3128
 +
 +Nicht in Anführungszeichen setzen!
 +
 +
 +==== Debian (Ubuntu) ====
 +
 +  vi /etc/apt/apt.conf
 +        Acquire::http::Proxy "http://192.168.1.1:3128";
 +
 +----
 +
 +
 +===== Paketmanager bedienen =====
 +
 +
 +=== PKG_Cache aktuallisieren ===
 +
 +  * Fedora (RedHat/CentOS 5.x)
 +
 +  # yum clean all
 +  # yum makecache
 +
 +  * Debian
 +
 +  # apt-get update
 +  # aptitude update
 +
 +
 +=== Pakete aktuallisieren ===
 +
 +  * Fedora (RedHat/CentOS 5.x)
 +
 +  # yum safe-upgrade
 +
 +  * Debian
 +
 +  # apt-get safe-upgrade
 +  # aptitude safe-upgrade
 +
 +
 +=== Pakete installieren ===
 +
 +  * Fedora (RedHat/CentOS 5.x)
 +
 +  # yum install elinks
 +
 +  * Debian
 +
 +  # apt-get install links
 +  # aptitude install links
 +
 +
 +=== Paket suchen ===
 +
 +  * Fedora (RedHat/CentOS 5.x)
 +
 +  # yum search elinks
 +
 +  * Debian
 +
 +  aptitude search links
 +
 +
 +=== Paket entfernen ===
 +
 +  * Fedora (RedHat/CentOS 5.x)
 +
 +  # yum remove elinks
 +
 +  * Debian
 +
 +  # aptitude remove links
 +
 +
 +=== Paket mit seinen Konfigurationsdateien entfernen ===
 +
 +  * Fedora
 +
 +  <gibts in dieser Form nicht>
 +
 +  * Debian
 +
 +  # aptitude purge links
 +  # aptitude remove links_
 +
 +Entweder "purge" oder mit dem normalen "remove" aber mit einem "_" hinten an den Paketnamen angehängt.
 +
 +
 +=== installierte Pakete anzeigen ===
 +
 +  * Fedora
 +
 +  # rpm -qa
 +
 +  * Debian
 +
 +  # dpkg -l
 +
 +
 +=== installierte Dateien eines Paketes anzeigen ===
 +
 +  * Fedora (RedHat/CentOS 5.x)
 +
 +  # yum provides links
 +  # rpm -ql elinks
 +
 +  * Debian
 +
 +  # dpkg -L links
 +
 +
 +=== Paket zeigen welches eine bestimmte Datei installierte ===
 +
 +  * Fedora
 +
 +  # rpm -qf /usr/bin/links
 +
 +  * Debian
 +
 +  # dpkg -S /usr/bin/links
 +
 +
 +=== lokale Datei installieren ===
 +
 +  * Fedora
 +
 +  # rpm -Uhv paket.rpm
 +
 +  * Debian
 +
 +  # dpkg -i paket.deb
 +
 +
 +=== installiertes Paket neu konfigurieren ===
 +
 +  * Fedora
 +
 +  <gibts nicht in dieser Form>
 +
 +  * Debian
 +
 +  # dpkg-reconfigure krb5-config
 +
 +
 +=== Abhängigkeiten zu einem Paket ermitteln ===
 +
 +  Fedora
 +
 +  <das geht, aber frag mich nicht wie; das brauchte ich noch nie>
 +
 +  * Debian
 +
 +  # apt-cache depends -i mc
 +
 +
 +=== veraltete Pakete aus dem Paket-Cache entfernen ===
 +
 +  * Debian
 +
 +  # aptitude update
 +  # aptitude autoclean
 +