GNU/Linux >> Linux Esercitazione >  >> Arch Linux

Trova e rimuovi file in conflitto non di proprietà di nessun pacchetto in Arch Linux

Oggi ho riscontrato un problema:"errore:impossibile eseguire il commit della transazione (file in conflitto)" mentre ho provato a installare un pacchetto nel mio desktop Arch Linux. Continuava a generare errori quando provo a installare qualsiasi pacchetto con dipendenze Python. Ecco l'output di esempio mentre provo a installare o aggiornare qualsiasi pacchetto.

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.

Dopo una piccola ricerca sulla pagina wiki di Arch Linux, ho scoperto che il motivo potrebbe essere:"pacman ha rilevato un conflitto di file e non sovrascriverà i file per te" . Questo tipo di errore potrebbe verificarsi quando il tuo sistema Arch Linux è stato probabilmente spento in modo non pulito durante o subito dopo un'operazione pacman. Questo ti ha lasciato un database pacman rotto e file vuoti.

Rimuovi i file in conflitto non di proprietà di nessun pacchetto in Arch Linux

La soluzione per correggere questo errore è forzare pacman a sovrascrivere quei file in conflitto usando il comando:

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

Se non aiuta, devi scoprire se quei file non sono di proprietà di alcun pacchetto, quindi dovresti eliminarli o rinominarli.

Per scoprire se i file sono di proprietà di un pacchetto, come mostrato di seguito. Nel mio caso, ho eseguito il seguente comando:

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

Il comando precedente verificherà se esiste un pacchetto che possiede /usr/lib/python3.6/site-packages/requests/__init__.py oppure no.

Risultato di esempio:

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

Come puoi vedere nell'esempio sopra, nessun pacchetto possiede __init__.py file. Ho controllato tutti i file nell'output sopra. Nessuno di loro è di proprietà di alcun pacchetto. Quindi, se trovi file che non sono di proprietà di alcun pacchetto, rinomina o elimina questi file. Prima di eliminarli, esegui il backup di quei file (cioè tutti i file all'interno di /usr/lib/python3.6/site-packages/requests/ directory), in modo da poterli ripristinare nel caso qualcosa vada storto.

Nel mio caso, eseguo il backup di tutti i contenuti di /usr/lib/python3.6/site-packages/requests/ cartella.

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

Quindi, ho eliminato tutti i file nell'output sopra.

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

Questa volta posso installare il pacchetto senza errori.


Arch Linux
  1. Linux – Unire /usr/bin e /usr/sbin in /bin (gnu/linux)?

  2. trova e rimuovi i file con spazio usando il comando trova su Linux

  3. Installa i binari in /bin, /sbin, /usr/bin e /usr/sbin, interazioni con --prefix e DESTDIR

  4. gcc - /usr/bin/ld errore:impossibile trovare <library> in /usr/local/lib anche se ldconfig lo elenca e il percorso è stato aggiunto a ld.so.conf

  5. Qual è il significato di /usr/sbin, /usr/local/sbin e /usr/local/bin?

Come condividere istantaneamente file e cartelle in Arch Linux

Come trovare i pacchetti proprietari installati in Arch Linux

Come trovare file duplicati in Linux e rimuoverli

Come rimuovere file e directory in Linux

Linux – /sbin/init non esiste?

/proc/cpuinfo e /proc/meminfo in Linux