Heute bin ich auf ein Problem gestoßen - "Fehler:Transaktion konnte nicht ausgeführt werden (widersprüchliche Dateien)" während ich versuchte, ein Paket auf meinem Arch Linux-Desktop zu installieren. Es hat immer wieder die Fehler ausgelöst, wenn ich versuche, Pakete mit Python-Abhängigkeiten zu installieren. Hier ist die Beispielausgabe, während ich versuche, ein Paket zu installieren oder zu aktualisieren.
error: failed to commit transaction (conflicting files) python-requests: /usr/lib/python3.6/site-packages/requests/__init__.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/__init__.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/_internal_utils.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/adapters.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/api.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/auth.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/certs.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/compat.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/cookies.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/exceptions.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/hooks.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/models.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/sessions.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/status_codes.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/structures.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/__pycache__/utils.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/_internal_utils.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/adapters.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/api.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/auth.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/certs.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/compat.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/cookies.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/exceptions.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/hooks.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/models.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/__init__.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/__pycache__/__init__.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__init__.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__pycache__/__init__.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__pycache__/codec.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__pycache__/compat.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__pycache__/core.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__pycache__/idnadata.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__pycache__/intranges.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/__pycache__/uts46data.cpython-36.pyc exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/codec.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/compat.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/core.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/idnadata.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/intranges.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/packages/idna/uts46data.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/sessions.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/status_codes.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/structures.py exists in filesystem python-requests: /usr/lib/python3.6/site-packages/requests/utils.py exists in filesystem Errors occurred, no packages were upgraded.
Nach einer kurzen Suche auf der Wiki-Seite von Arch Linux fand ich heraus, dass der Grund sein könnte:"pacman hat einen Dateikonflikt erkannt und es wird keine Dateien für Sie überschreiben" . Diese Art von Fehler kann auftreten, wenn Ihr Arch-Linux-System während oder direkt nach einem Pacman-Vorgang wahrscheinlich unsauber heruntergefahren wurde. Dies hinterließ eine kaputte Pacman-Datenbank und leere Dateien.
Entfernen Sie widersprüchliche Dateien, die keinem Paket in Arch Linux gehören
Die Lösung zur Behebung dieses Fehlers besteht darin, Pacman zu zwingen, diese widersprüchlichen Dateien mit folgendem Befehl zu überschreiben:
$ sudo pacman -S --force <package-name>
Wenn es nicht hilft, müssen Sie herausfinden, ob diese Dateien keinem Paket gehören, und dann sollten Sie sie entweder löschen oder umbenennen.
Um herauszufinden, ob die Dateien einem Paket gehören, wie unten gezeigt. In meinem Fall habe ich den folgenden Befehl ausgeführt:
$ sudo pacman -Qo /usr/lib/python3.6/site-packages/requests/__init__.py
Der obige Befehl prüft, ob es ein Paket gibt, das /usr/lib/python3.6/site-packages/requests/__init__.py besitzt oder nicht.
Beispielausgabe:
error: No package owns /usr/lib/python3.6/site-packages/requests/__init__.py
Wie Sie im obigen Beispiel sehen, besitzt kein Paket __init__.py Datei. Ich habe alle Dateien in der obigen Ausgabe überprüft. Keiner von ihnen gehört irgendwelchen Paketen. Wenn Sie also Dateien finden, die keinem Paket gehören, benennen oder löschen Sie diese Dateien einfach um. Bevor Sie sie löschen, sichern Sie einfach diese Dateien (d. h. alle Dateien in /usr/lib/python3.6/site-packages/requests/ Verzeichnis), damit Sie sie wiederherstellen können, falls etwas schief geht.
In meinem Fall sichere ich alle Inhalte von /usr/lib/python3.6/site-packages/requests/ Ordner.
$ cp -fr /usr/lib/python3.6/site-packages/requests/. backup/
Dann habe ich alle Dateien in der obigen Ausgabe gelöscht.
$ sudo /usr/lib/python3.6/site-packages/requests/__init__.py [...] $ sudo rm -fr /usr/lib/python3.6/site-packages/requests/utils.py
Diesmal kann ich das Paket ohne Fehler installieren.