GNU/Linux >> Tutoriels Linux >  >> Arch Linux

Rechercher et supprimer des fichiers en conflit qui n'appartiennent à aucun package dans Arch Linux

Aujourd'hui, j'ai rencontré un problème - "erreur :échec de la validation de la transaction (fichiers en conflit)" pendant que j'essayais d'installer un paquet sur mon bureau Arch Linux. Il n'arrêtait pas de lancer les erreurs lorsque j'essayais d'installer des packages avec des dépendances Python. Voici l'exemple de sortie pendant que j'essaie d'installer ou de mettre à jour un package.

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.

Après une petite recherche sur la page wiki d'Arch Linux, j'ai trouvé que la raison pourrait être - "pacman a détecté un conflit de fichiers, et il n'écrasera pas les fichiers pour vous" . Ce type d'erreur peut se produire lorsque votre système Arch Linux a probablement été arrêté de manière impropre pendant ou directement après une opération pacman. Cela vous a laissé avec une base de données pacman cassée et des fichiers vides.

Supprimer les fichiers en conflit qui n'appartiennent à aucun paquet dans Arch Linux

La solution pour corriger cette erreur est de forcer pacman à écraser ces fichiers en conflit à l'aide de la commande :

$ sudo pacman -S --force <package-name>

Si cela ne vous aide pas, vous devez trouver si ces fichiers n'appartiennent à aucun paquet, puis vous devez soit les supprimer, soit les renommer.

Pour savoir si les fichiers appartiennent à un package, comme indiqué ci-dessous. Dans mon cas, j'ai exécuté la commande suivante :

$ sudo pacman -Qo /usr/lib/python3.6/site-packages/requests/__init__.py

La commande ci-dessus vérifiera si un paquet possède /usr/lib/python3.6/site-packages/requests/__init__.py ou pas.

Exemple de résultat :

error: No package owns /usr/lib/python3.6/site-packages/requests/__init__.py

Comme vous le voyez dans l'exemple ci-dessus, aucun paquet ne possède __init__.py dossier. J'ai vérifié tous les fichiers dans la sortie ci-dessus. Aucun d'entre eux n'appartient à des packages. Donc, si vous trouvez des fichiers qui n'appartiennent à aucun paquet, renommez ou supprimez simplement ces fichiers. Avant de les supprimer, sauvegardez simplement ces fichiers (c'est-à-dire tous les fichiers dans /usr/lib/python3.6/site-packages/requests/ répertoire), afin que vous puissiez les restaurer en cas de problème.

Dans mon cas, je sauvegarde tout le contenu de /usr/lib/python3.6/site-packages/requests/ dossier.

$ cp -fr /usr/lib/python3.6/site-packages/requests/. backup/

Ensuite, j'ai supprimé tous les fichiers de la sortie ci-dessus.

$ sudo /usr/lib/python3.6/site-packages/requests/__init__.py
[...]
$ sudo rm -fr /usr/lib/python3.6/site-packages/requests/utils.py

Cette fois, je peux installer le package sans aucune erreur.


Arch Linux
  1. Comment trouver des packages vulnérables dans Arch Linux

  2. Résoudre "ERREUR:'pacman' n'a pas réussi à installer les dépendances manquantes" dans Arch Linux

  3. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  4. Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

  5. gcc - /usr/bin/ld erreur :impossible de trouver <library> dans /usr/local/lib bien que ldconfig le liste et le chemin ajouté à ld.so.conf

Comment partager instantanément des fichiers et des dossiers dans Arch Linux

Comment trouver les packages propriétaires installés dans Arch Linux

Comment trouver des fichiers en double sous Linux et les supprimer

Comment supprimer des fichiers et des répertoires sous Linux

Linux – /sbin/init n'existe pas ?

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux