GNU/Linux >> Tutoriales Linux >  >> Arch Linux

Encuentre y elimine archivos en conflicto que no pertenezcan a ningún paquete en Arch Linux

Hoy me encontré con un problema:"error:no se pudo confirmar la transacción (archivos en conflicto)" mientras intentaba instalar un paquete en mi escritorio Arch Linux. Siguió arrojando errores cuando intento instalar cualquier paquete con dependencias de Python. Este es el resultado de muestra mientras intento instalar o actualizar cualquier paquete.

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.

Después de una pequeña búsqueda en la página wiki de Arch Linux, descubrí que el motivo podría ser:"pacman ha detectado un conflicto de archivos y no sobrescribirá los archivos para usted" . Este tipo de error puede ocurrir cuando su sistema Arch Linux probablemente se apagó de manera incorrecta durante o inmediatamente después de una operación de pacman. Esto te dejó con una base de datos de pacman rota y archivos vacíos.

Eliminar archivos en conflicto que no pertenecen a ningún paquete en Arch Linux

La solución para corregir este error es obligar a pacman a sobrescribir esos archivos en conflicto usando el comando:

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

Si no ayuda, debe averiguar si esos archivos no pertenecen a ningún paquete y luego debe eliminarlos o cambiarles el nombre.

Para averiguar si los archivos pertenecen a algún paquete, como se muestra a continuación. En mi caso, ejecuté el siguiente comando:

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

El comando anterior verificará si hay algún paquete que sea propietario de /usr/lib/python3.6/site-packages/requests/__init__.py o no.

Salida de muestra:

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

Como puede ver en el ejemplo anterior, ningún paquete posee __init__.py expediente. Revisé todos los archivos en la salida anterior. Ninguno de ellos es propiedad de ningún paquete. Por lo tanto, si encuentra archivos que no pertenecen a ningún paquete, simplemente cambie el nombre o elimine estos archivos. Antes de eliminarlos, solo haga una copia de seguridad de esos archivos (es decir, todos los archivos dentro de /usr/lib/python3.6/site-packages/requests/ directorio), para que pueda restaurarlos en caso de que algo salga mal.

En mi caso, hago una copia de seguridad de todo el contenido de /usr/lib/python3.6/site-packages/requests/ carpeta.

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

Luego, eliminé todos los archivos en el resultado anterior.

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

Esta vez puedo instalar el paquete sin ningún error.


Arch Linux
  1. Cómo encontrar paquetes vulnerables en Arch Linux

  2. Resolver "ERROR:'pacman' no pudo instalar las dependencias faltantes" en Arch Linux

  3. /usr/bin Vs /usr/local/bin ¿En Linux?

  4. gcc - /usr/bin/ld error:no se puede encontrar <library> en /usr/local/lib aunque ldconfig lo incluye en la lista y la ruta se agregó a ld.so.conf

  5. ¿Cuáles son los significados de /usr/sbin, /usr/local/sbin y /usr/local/bin?

Cómo compartir instantáneamente archivos y carpetas en Arch Linux

Cómo encontrar los paquetes propietarios instalados en Arch Linux

Cómo encontrar archivos duplicados en Linux y eliminarlos

Cómo eliminar archivos y directorios en Linux

Linux:¿/sbin/init no existe?

Archivos /proc/cpuinfo y /proc/meminfo en Linux