web-dev-qa-db-ja.com

ほとんどすべてのコマンドが機能し、「apt_pkg」という名前のモジュールはありません

何をしたかわかりませんが、「ls」や「Sudo」などの基本的なコマンドが機能しなくなり、このエラーメッセージが表示されます。

File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg' 

助けてください、私は泣いています、私には明日期限があります。

Ubuntuの新規インストールを実行するだけでファイルを保持する必要がありますか?

21
Retsek

OPを使用してデバッグを行いました。

  1. cd /binこれは機能したため、/ binが削除されていないことがわかった
  2. cd /bin; echo ls*これにより、「ls *」ではなく「ls lsblk lsmod」が生成されたため、/ binに少なくとも3つのファイルがあることがわかりました。
  3. /bin/ls -l /bin/lsこれにより、「-rwxr-xr-x 1ルートルート133792 2018年1月18日/ bin/ls」が生成されたため、実行権限が削除されるという問題はありませんでした。
  4. PATH=/bin:/usr/bin:$PATHこれにより、コマンドを探すための正しいカップルが作成され、lsSudoが再び機能するようになります。

結論:PATH変数が破損していたため、bashは何も検出できませんでした。組み込みコマンド(cdおよびecho)から始めて段階的にデバッグを行うと、これはすぐに診断されました。うまくいけば、OPは涙を乾かして、再び笑顔になります。

OPは、「私の.bashrcへの非常にばかげた編集をいくつか削除し、すべてが問題ないようだ」とコメントしました。

38
icarus