GNU/Linux >> Linux の 問題 >  >> Arch Linux

ArchLinuxのどのパッケージにも所有されていない競合するファイルを見つけて削除する

今日、私は問題に遭遇しました-「エラー:トランザクションのコミットに失敗しました(ファイルの競合)」 ArchLinuxデスクトップにパッケージをインストールしようとしたとき。 Pythonに依存するパッケージをインストールしようとすると、エラーがスローされ続けました。パッケージをインストールまたは更新しようとしたときの出力例を次に示します。

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.

Arch Linux wikiページを少し検索したところ、理由は次のようであることがわかりました-「pacmanはファイルの競合を検出しました。ファイルは上書きされません」 。この種のエラーは、pacman操作中または操作直後にArchLinuxシステムが不潔にシャットダウンされた可能性がある場合に発生する可能性があります。これにより、壊れたpacmanデータベースと空のファイルが残りました。

ArchLinuxのどのパッケージも所有していない競合ファイルを削除する

このエラーを修正する解決策は、コマンドを使用してpacmanにこれらの競合するファイルを上書きさせることです。

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

それでも問題が解決しない場合は、それらのファイルがどのパッケージにも所有されていないかどうかを確認してから、削除するか名前を変更する必要があります。

以下に示すように、ファイルがパッケージによって所有されているかどうかを確認します。私の場合、次のコマンドを実行しました:

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

上記のコマンドは、/usr/lib/python3.6/site-packages/requests/__init__.pyを所有するパッケージがあるかどうかを確認します。 かどうか。

出力例:

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

上記の例でわかるように、 __init__。pyを所有するパッケージはありません ファイル。上記の出力のすべてのファイルを確認しました。それらのどれもパッケージによって所有されていません。したがって、どのパッケージも所有していないファイルを見つけた場合は、これらのファイルの名前を変更するか、削除してください。それらを削除する前に、それらのファイル(つまり、 /usr/lib/python3.6/site-packages/requests/ 内のすべてのファイル)をバックアップするだけです。 ディレクトリ)、何か問題が発生した場合に復元できるようにします。

私の場合、 /usr/lib/python3.6/site-packages/requests/のすべてのコンテンツをバックアップします フォルダ。

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

次に、上記の出力のすべてのファイルを削除しました。

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

今回はエラーなしでパッケージをインストールできます。


Arch Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

  3. gcc - /usr/bin/ld エラー:/usr/local/lib で <library> が見つかりませんが、ldconfig にリストされており、パスが ld.so.conf に追加されています

  1. ArchLinuxで脆弱なパッケージを見つける方法

  2. / usr/binと/usr/ local / bin Linuxの場合?

  3. 推奨される使用方法に従って、Web サイトは /var/ または /usr/ に配置する必要がありますか?

  1. Arch Linuxで「エラー:「pacman」が不足している依存関係をインストールできませんでした」を解決する

  2. /optと/usr/ localの違いは?

  3. Linux で find コマンドを使用して、スペースのあるファイルを検索して削除する