APT/Fehlerbehebung: Unterschied zwischen den Versionen

Aus Foxwiki
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== ''Key is stored in legacy trusted.gpg keyring'' ==
== Beschreibung ==
; Schlüssel ist im veralteten Schlüsselbund trusted.gpg gespeichert
{| class="wikitable options"
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))
|-
Diese Fehlermeldung erscheint seit Debian 11, wenn man versucht, einen neuen GnuPG-Schlüssel hinzuzufügen
! Fehler !! Beschreibung
 
|-
Bislang wurde für Drittanbieter-Paketquellen von APT-Paketen der öffentliche Schlüssel heruntergeladen und an '''apt-key add''' übergeben
| [[APT/Fehlerbehebung/Legacy keyring|Legacy keyring]] ||
# '''wget -q -O - <nowiki>https://download.bell-sw.com/pki/GnuPG-KEY-bellsoft</nowiki> | apt-key add -'''
|-
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))
| [[APT/Fehlerbehebung/Permission denied|Permission denied]] ||
OK
|-
 
| [[dpkg error]] ||
=== Hintergrund ===
|-
Per APT verteilte Softwarepakete werden signiert
| [[APT/Fehlerbehebung/dependencies error libc|Dependencies error libc]] ||
* Damit soll sichergestellt werden, dass ihr wirklich die originalen Pakete von der jeweiligen Organisation wie Debian erhaltet
|}
* Wie das im Detail funktioniert, hängt mit asymmetrischer Kryptografie und der Funktionsweise von PGP zusammen
** Das würde hier den Rahmen sprengen
** Wir belassen es daher an der Stelle dabei, dass sich mit der Signatur die Integrität der Pakete sicherstellen lässt – was grundsätzlich eine sinnvolle Sache ist und die Sicherheit erhöht
 
Mit '''apt-key add''' wird der öffentlichen Schlüssel des Repositorys gespeichert und ihm vertraut
* Ansonsten hätte das System kein Vertrauensverhältnis – die Installation von Paketen aus nicht vertrauenswürdigen Quellen würde abgewiesen
* Kann man selbst testen, indem man eine Drittanbieter-Paketquelle hinzufügt, ohne vorher deren öffentlichen Schlüssel zu importieren
 
==== apt-key ist veraltet ====
* Fügt ihr einen neuen Schlüssel mit apt-key hinzu, wird dieser in einen Ordner von vertrauenswürdigen Schlüsseln (konkret '''/etc/apt/trusted.gpg.d''') abgelegt
* Wenn man ein Paket installiert, prüft apt, ob es von '''irgendjemandem''' signiert wurde, dessen Schlüsseln wir vertrauen
* Es wird nicht vorher abgefragt, ob der Schlüssel zu der Paketquelle passt
 
Das ist zwar immer noch sicherer als gar keine Signaturen zu verwenden, aber es schwächt die Sicherheit
* Besser wäre es, wenn ein Schlüssel nur für das dazugehörige Repository akzeptiert wird
* Also eine 1:1 Beziehung, statt eines generellen, bedingungslosen Vertrauensverhältnisses
* Aus diesem Grunde wurde '''apt-key''' als veraltet markiert, damit man auf dieses neue Verfahren wechselt
 
Seit Debian 11 bzw.&nbsp;Ubuntu 22.04 ist [[apt-key]] nur als veraltet markiert und daher weiterhin verfügbar
* Allerdings ist das die letzte Hauptversion!
* Mit der nächsten Version von Debian bzw.&nbsp;Ubuntu wird es aller Voraussicht nach entfernt
* Ich werde es daher in den Beiträgen nicht mehr einsetzen und ihr solltet es möglichst auch nicht mehr tun
 
=== Lösung ===
# '''apt-key''' ''list''
 
Blättern Sie sorgfältig durch die Liste
* Achten Sie darauf, wie die Dinge angeordnet sind
* Suchen Sie den Abschnitt, in dem das in der ersten Warnung aufgeführte Paket erwähnt wird (wenn Sie mehrere Warnungen sehen, müssen Sie diese Schritte nacheinander für jede einzelne wiederholen)
 
In meinem Fall suche ich nach dem Schlüssel für TeamViewer, und der sieht wie folgt aus
pub rsa4096 2020-01-29 [SC]
8CAE 012E BFAC 38B1 7A93 7CD8 C5E2 2450 0C12 89C0
uid [ unbekannt] TeamViewer Deutschland GmbH (TeamViewer Linux 2020) <support@teamviewer.com>
 
Kopieren Sie die letzten 8 Zeichen aus der zweiten Zeile - im obigen Beispiel ist dies 0C12 89C0 - und wandeln Sie sie mit dem folgenden Befehl in eine .gpg-Datei um
* Denken Sie daran, das Leerzeichen zwischen den 8 Zeichen wegzulassen und einen gpg-Dateinamen anzugeben, der zu dem Paket passt, für das der Schlüssel bestimmt ist
 
In meinem Beispiel musste ich Folgendes ausführen
# '''apt-key''' ''export 0C1289C0'' | '''gpg''' ''--dearmour -o /etc/apt/trusted.gpg.d/teamviewer.gpg''
 
Wenn Sie das nächste Mal ein apt-Update ausführen, wird der Fehler mit dem veralteten Schlüssel für das gerade angewendete Repository nicht mehr erscheinen (wenn allerdings mehr als ein Repository betroffen ist, müssen Sie die obigen Schritte für jedes einzelne wiederholen)
 
==== Methode 2: der schnelle Weg ====
Der "empfohlene" Weg, um apt key deprecations Fehler unter Ubuntu zu beheben, ist die oben beschriebene Methode
* Aber es gibt auch eine "schnelle und schmutzige" Lösung
Auch wenn die unten beschriebene Methode funktioniert hat, möchte ich betonen, dass a) Ihre Erfahrungen variieren können und b) es nicht der klügste Weg ist, dieses Problem zu lösen, da es, abhängig von den Legacy-Schlüsseln auf Ihrem System, die Sicherheit Ihres Systems gefährden könnte
 
Wenn Sie alle Vorsicht in den Wind schlagen wollen, öffnen Sie ein neues Terminalfenster und führen Sie
# cd /etc/apt
# cp trusted.gpg trusted.gpg.d
 
Wenn Sie das nächste Mal apt update ausführen, wird der betreffende Fehler nicht mehr erscheinen
 
== ''exec of /tmp/... failed: Permission denied'' ==
 
=== Ursache ===
/tmp/ wurde mit der Option ''noexec'' gemountet
 
=== Temporäre Lösung ===
Remount the temp location (/tmp) with "exec" permission
mount -o remount,exec /tmp
 
=== Dauerhafte Lösungen ===
1.&nbsp;Remount vor und nach jedem Aufruf
; /etc/apt/apt.conf
DPkg::Pre-Invoke {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};
 
2.&nbsp;Alternativ: Verzeichnis ändern
Auf eines das nicht mit noexec gemeountet ist
; /etc/apt/apt.conf
APT::ExtractTemplates::TempDir "/var/tmp";
 
== ''sub-process /usr/bin/dpkg returned an error code (1)'' ==
The error message “Sub-process /usr/bin/dpkg returned an error code (1)” indicates a problem with the package installer
* This can happen after a failed software installation, or if the installer becomes corrupted
 
The key phrase in this error is /usr/bin/dpkg
* This refers to the dpkg package installer for Linux
* A package installer is an application that tracks software, updates, and dependencies
* If it is damaged, any new software installation will cause this error message
 
We cover several possible solutions, from easily solved and straightforward solutions to more complex processes
* This guide will help you resolve the dpkg returned an error code 1 on an Ubuntu operating system
 
===Options to Fix ===
====Reconfigure dpkg Database====
If your package database has become corrupted, reconfiguring it can repair it
# dpkg ––configure –a
This command reconfigures packages that have been unpacked but not necessarily installed
* An interruption at the wrong time can cause this database to become corrupt
* This is especially helpful if you were running installation and the process was interrupted
 
====Force-Install the Software====
If Method 1 does not work, you can attempt to fix the dependencies in the package installer
# apt-get install –f
The –f option means fix-broken
* It repairs any broken dependencies in your package manager
* Broken dependencies occur when a download is interrupted, or there is a problem with the cached download
 
Note: Dependencies are other software packages that are required by the software you are installing
* A package manager helps keep track of dependencies for you
 
====Remove Bad Software Package====
If you know which software caused the errors on your system, you can remove it
 
Enter the command and package_name with the name of the software that is causing the problem
# apt-get remove ––purge package_name
 
The ––purge option directs the system to remove config files in addition to uninstalling
* This helps get rid of all traces of the offending software
 
====Clean Out Unused Software Packages====
If an old, outdated, or unused package is causing the problem, you can solve the problem by removing unused software packages
# apt autoremove
Note: Avoid the next 2 options unless all other methods have failed
 
====Remove Post Files====
If you know the name of the package that is causing problems, you can delete the files manually
* The installation files are usually located in the /var/lib/dpkg/info file
 
Type in the following command and replace package_name with the name of the broken software
# ls –l /var/lib/dpkg/info | grep –i package_name
 
This will generate a list of all references to the software you installed.You can then remove them by entering
# mv /var/lib/dpkg/info/package_name.* /tmp
 
This command moves the files to the /tmp directory, where they cannot affect your package manager
 
Next, update the package manager
# apt-get update
 
After which you can re-install the broken software again
 
====Overwrite Package File====
If you know the name of the package that is causing a problem, you can force an overwrite
 
Use the following command and replace full_name_of_package with the actual package name
# dpkg –i ––force–overwrite /var/cache/apt/archives/full_name_of_package
 
Note: If you do not know the actual name of the package, you can search for it with the following command
ls /var/cache/apt/archies/*package_name*
 
Replace package_name with the name of your software
* This should return any instances of that package name
* Note the exact filename, and type it into the previous command
 
===Quelle===
# https://phoenixnap.com/kb/fix-sub-process-usr-bin-dpkg-returned-error-code-1
 
== dependencies error libc ==
=== Lösung ===
dpkg --configure -a
apt-get install ibritish iamerican ienglish-common ispell locales libc6=2.28-10 libc-bin=2.28-10
apt clean
apt autoclean
apt update
apt upgrade
systemctl restart sshd.service


[[Kategorie:APT]]
[[Kategorie:APT]]

Aktuelle Version vom 31. August 2024, 10:21 Uhr