GNU/Linux >> Znalost Linux >  >> Arch Linux

Najděte a odstraňte konfliktní soubory, které nevlastní žádné balíčky v Arch Linuxu

Dnes jsem narazil na problém - "chyba:Nepodařilo se potvrdit transakci (konfliktní soubory)" když jsem se pokoušel nainstalovat balíček na plochu Arch Linuxu. Při pokusu o instalaci jakýchkoli balíčků se závislostmi na Pythonu to neustále házelo chyby. Zde je ukázkový výstup, když se pokouším nainstalovat nebo aktualizovat jakýkoli balíček.

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.

Po chvíli hledání na wiki stránce Arch Linuxu jsem zjistil, že důvodem může být - "pacman zjistil konflikt souborů a soubory za vás nepřepíše" . Tento druh chyby může nastat, když byl váš systém Arch Linux pravděpodobně nečistě vypnut během nebo přímo po operaci pacmana. Zůstalo vám porouchaná databáze pacmana a prázdné soubory.

Odstranění konfliktních souborů, které nevlastní žádné balíčky v Arch Linuxu

Řešením, jak tuto chybu opravit, je přinutit pacmana, aby přepsal tyto konfliktní soubory pomocí příkazu:

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

Pokud to nepomůže, musíte zjistit, zda tyto soubory nevlastní žádný balíček, a pak byste je měli smazat nebo přejmenovat.

Chcete-li zjistit, zda soubory vlastní nějaký balíček, jak je uvedeno níže. V mém případě jsem spustil následující příkaz:

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

Výše uvedený příkaz zkontroluje, zda existuje nějaký balíček, který vlastní /usr/lib/python3.6/site-packages/requests/__init__.py nebo ne.

Ukázkový výstup:

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

Jak vidíte ve výše uvedeném příkladu, žádný balíček nevlastní __init__.py soubor. Zkontroloval jsem všechny soubory ve výše uvedeném výstupu. Žádný z nich nevlastní žádné balíčky. Pokud tedy najdete nějaké soubory, které nevlastní žádný balíček, stačí tyto soubory přejmenovat nebo odstranit. Před jejich odstraněním stačí tyto soubory zazálohovat (tj. všechny soubory v /usr/lib/python3.6/site-packages/requests/ adresář), takže je můžete obnovit v případě, že se něco pokazí.

V mém případě zálohuji veškerý obsah /usr/lib/python3.6/site-packages/requests/ složka.

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

Poté jsem smazal všechny soubory ve výše uvedeném výstupu.

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

Tentokrát mohu balíček nainstalovat bez jakýchkoli chyb.


Arch Linux
  1. Jak najít zranitelné balíčky v Arch Linuxu

  2. Vyřešte „CHYBA:‚pacman‘ selhal při instalaci chybějících závislostí“ v Arch Linuxu

  3. najít a odstranit soubory s mezerou pomocí příkazu find v Linuxu

  1. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  2. Jaké jsou významy /usr/sbin, /usr/local/sbin a /usr/local/bin?

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. /usr/bin Vs /usr/local/bin Na Linuxu?

  3. Rozdíl mezi /opt a /usr/local?