From de14cf2e00a03b8c8430235e10a164d23027886c Mon Sep 17 00:00:00 2001 From: Nikolai Milenko <nikolai.milenko@informatik.hs-fulda.de> Date: Wed, 12 Feb 2025 04:14:01 +0100 Subject: [PATCH] Upload New File --- Lerntagebuch/Woche_12.md | 235 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 Lerntagebuch/Woche_12.md diff --git a/Lerntagebuch/Woche_12.md b/Lerntagebuch/Woche_12.md new file mode 100644 index 0000000..726a550 --- /dev/null +++ b/Lerntagebuch/Woche_12.md @@ -0,0 +1,235 @@ +# 📖 Lerntagebuch - Woche 12 + +--- + +### **Thema: Paketmanagement mit apt und apt-get** + +#### **Vorbereitungen** +- **Hilfefunktion genutzt**: `apt --help` +- Interessante Befehle: + - `apt list --upgradable` → zeigt alle aktualisierbaren Pakete an. + - `apt show <paketname>` → zeigt detaillierte Informationen zu einem Paket. + +#### **Systemaktualisierung** +```bash +┌─[user@parrot]─[~] +└──╼ $sudo apt update +Get:1 https://deb.parrot.sh/parrot lory InRelease [29.8 kB] +Get:2 https://deb.parrot.sh/direct/parrot lory-security InRelease [29.4 kB] +Get:3 https://deb.parrot.sh/parrot lory-backports InRelease [29.7 kB] +Get:4 https://deb.parrot.sh/parrot lory/main amd64 Packages [19.2 MB] +Get:5 https://deb.parrot.sh/direct/parrot lory-security/main amd64 Packages [476 kB] +Get:6 https://deb.parrot.sh/parrot lory-backports/main amd64 Packages [658 kB] +Get:7 https://deb.parrot.sh/parrot lory-backports/contrib amd64 Packages [10.9 kB] +Fetched 20.4 MB in 6s (3596 kB/s) +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +20 packages can be upgraded. Run 'apt list --upgradable' to see them. +``` +Also, 20 Paketen können aktualisiert werden. +```bash +sudo apt upgrade +... +The following packages will be upgraded: + bind9-dnsutils bind9-host bind9-libs buildah dnsutils firefox-esr golang-go golang-src iproute2 libdw1 libelf1 libtasn1-6 openjdk-17-jdk openjdk-17-jdk-headless openjdk-17-jre + openjdk-17-jre-headless vim-common vim-tiny xxd yt-dlp +20 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +... +``` + +#### **Paketinstallation und -entfernung** +- **Suche nach einem Paket mit „transfer“** +```bash +apt search transfer +... +curl/parrot6-backports,now 8.11.1-1~bpo12+1 amd64 [installed,automatic] + command line tool for transferring data with URL syntax +... +``` +- **Installation von `curl`** +```bash +┌─[user@parrot]─[~] +└──╼ $sudo apt install curl +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +curl is already the newest version (8.11.1-1~bpo12+1). +curl set to manually installed. +``` + +Also Paket curl war schon installiert. + +- **Entfernen von `tree`** +```bash +┌─[user@parrot]─[~] +└──╼ $sudo apt remove tree +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +The following packages were automatically installed and are no longer required: + golang-1.22-go golang-1.22-src +Use 'sudo apt autoremove' to remove them. +The following packages will be REMOVED: + tree +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +After this operation, 116 kB disk space will be freed. +Do you want to continue? [Y/n] y +(Reading database ... 353458 files and directories currently installed.) +Removing tree (2.1.0-1) ... +Processing triggers for man-db (2.11.2-2) ... +Scanning application launchers +Removing duplicate launchers or broken launchers +Launchers are updated +``` + +Überprüfung der Entfernung: +```bash +┌─[user@parrot]─[~] +└──╼ $apt-cache policy tree +tree: + Installed: (none) + Candidate: 2.1.0-1 + Version table: + 2.1.0-1 600 + 600 https://deb.parrot.sh/parrot lory/main amd64 Packages +``` +- **Neuinstallation von `tree`** +```bash +┌─[user@parrot]─[~] +└──╼ $sudo apt install tree +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +The following packages were automatically installed and are no longer required: + golang-1.22-go golang-1.22-src +Use 'sudo apt autoremove' to remove them. +The following NEW packages will be installed: + tree +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +``` +- **System von nicht mehr benötigten Abhängigkeiten bereinigen** +```bash +# Liste der entfernten Pakete: +┌─[user@parrot]─[~] +└──╼ $sudo apt autoremove +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +The following packages will be REMOVED: + golang-1.22-go golang-1.22-src +0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. +After this operation, 228 MB disk space will be freed. +Do you want to continue? [Y/n] y +(Reading database ... 353458 files and directories currently installed.) +Removing golang-1.22-go (1.22.11-1~bpo12+1) ... +Removing golang-1.22-src (1.22.11-1~bpo12+1) ... +Scanning application launchers +Removing duplicate launchers or broken launchers +Launchers are updated + +``` + +#### **Abhängigkeitsverwaltung** +- **Untersuchung der Abhängigkeiten von `curl`** +```bash +┌─[user@parrot]─[~] +└──╼ $apt-cache depends curl +curl + Depends: libc6 + Depends: libcurl3-gnutls + Depends: zlib1g +``` +--------------------------- +In der Ausgabe des Befehls `apt-cache depends curl` sehen wir die zwingenden Abhängigkeiten (Depends) für das Paket curl. + +#### Zwingende Abhängigkeiten (Depends) + +Diese Pakete müssen installiert sein, damit curl funktioniert: + - libc6 – Die Standard-C-Bibliothek für Linux + - libcurl3-gnutls – Die Bibliothek, die curl die Fähigkeit gibt, Netzwerkverbindungen über verschiedene Protokolle (HTTP, FTP, etc.) herzustellen. + - zlib1g – Eine Bibliothek zur Datenkompression + +#### Optionale Abhängigkeiten (Recommends oder Suggests) + +Diese werden nicht automatisch benötigt, können aber nützlich sein: + +- Recommends: Automatisch mitinstalliert, aber entfernbar. +- Suggests: Werden empfohlen, sind aber nicht zwingend. +---- +- **Defekte Abhängigkeiten reparieren** +```bash +# Simuliert die Reparatur +┌─[user@parrot]─[~] +└──╼ $sudo apt-get -s install -f +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +``` + +#### **Erweiterte Paketverwaltung** +- **Verfügbare Versionen von `curl` anzeigen** +```bash +┌─[user@parrot]─[~] +└──╼ $apt-cache policy curl +curl: + Installed: 8.11.1-1~bpo12+1 + Candidate: 8.11.1-1~bpo12+1 + Version table: + *** 8.11.1-1~bpo12+1 599 + 599 https://deb.parrot.sh/parrot lory-backports/main amd64 Packages + 100 /var/lib/dpkg/status + 7.88.1-10+deb12u9 600 + 600 https://deb.parrot.sh/parrot lory/main amd64 Packages + 7.88.1-10+deb12u5 600 + 600 https://deb.parrot.sh/direct/parrot lory-security/main amd64 Packages +``` +- **Spezifische Version installieren** +```bash +┌─[✗]─[user@parrot]─[~] +└──╼ $sudo apt-get install curl=7.88.1-10+deb12u5 +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + curl : Depends: libcurl4 (= 7.88.1-10+deb12u5) but 8.11.1-1~bpo12+1 is to be installed +E: Unable to correct problems, you have held broken packages. +``` + +Also es erscheint nur möglich, die letzte Version zu installieren. + +- **`curl` für automatische Updates sperren** +```bash +┌─[✗]─[user@parrot]─[~] +└──╼ $sudo apt-mark hold curl +curl set on hold. + +# Überprüfung der Sperrung +┌─[user@parrot]─[~] +└──╼ $apt-mark showhold +curl +``` +- **Sperrung aufheben** +```bash +┌─[user@parrot]─[~] +└──╼ $sudo apt-mark unhold curl +Canceled hold on curl. +``` + +#### **Wichtige Befehle und ihre Bedeutung** +| Befehl | Bedeutung | +|-----------------------------|-----------| +| `sudo apt update` | Aktualisiert die Paketlisten | +| `sudo apt upgrade` | Aktualisiert alle installierten Pakete | +| `sudo apt install <paket>` | Installiert ein Paket | +| `sudo apt remove <paket>` | Entfernt ein Paket | +| `apt-cache depends <paket>` | Zeigt Abhängigkeiten eines Pakets | +| `sudo apt-mark hold <paket>` | Verhindert automatische Updates für ein Paket | +| `sudo apt autoremove` | Entfernt ungenutzte Abhängigkeiten | -- GitLab