私はUbuntu for Windowsを使用しており、しばらくの間使用しています。 /etc/debian_version
はbuster/sid
と命名します。最近ディスクの破損が疑われた結果、/usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0
は(バイナリ)ゼロのみを含む同じサイズのファイルに置き換えられたようです。
これはapt
を壊し、もちろん自己修復を防ぎます。
同僚から同じファイルのコピーが渡されました。ただし、ファイルシステム内のファイルを置き換える方法が見つかりません。 Windows管理者権限でbash
を起動し、そのシェル内でroot権限を取得しても、ファイルの名前変更や置換はできません。
ファイルエクスプローラーやcmd
シェルなどのWindowsツールからこれらのファイルを変更しようとすることは強くお勧めしません。ただし、管理者権限でcmd
を実行しても、 "Access is denied.
"が得られます
UbuntuのWindowsでこのライブラリファイルを置き換えるにはどうすればよいですか?可能ですか? GoogleとStackExchangeの検索は役に立ちませんでした。
Windows Defenderがlibapt-private.so.0.0.0
をトロイの木馬として検出したため、WSLが壊れました。 [ここに皮肉なコメントを挿入]
(更新:これはSO回答が一部報告 この問題に関するMicrosoftからのニュース)
まず、最も厄介なのは、ライブラリを削除または移動しようとすると、すべて「アクセスが拒否されました」というエラーが発生することでした。これを防ぐには、管理者として操作していることを確認してください:管理者特権のcmd/powershellからWSLシェルを開き、そこで作業します。
以下は(ほぼ)Imaginecat22
の回答の実装です。
apt
のバージョンを確認します
$ dpkg -l apt
[. . .]
||/ Name Version Architecture Description
+++-=================================-=====================-=====================-=======================================================================
ii apt 1.6.11 AMD64 commandline package manager
Architecture
の値を書き留めます。
.deb
パッケージをダウンロード
ほとんどのパッケージは buntuパッケージ検索 で見つけることができます。
ただし、すべてのバージョンが利用できるわけではないため、手動でダウンロードする必要がある場合があります。
webブラウザを使用して開きます。
https://launchpad.net/ubuntu/+source/apt/<VERSION>/
<VERSION>
を、手順1で返されたVersion
の値に置き換えます。例:
Buildsセクションを見つけ、ステップ1のArchitecture
値に一致するビルドを選択します。
URLをコピーして、ファイルapt_<VERSION>_<ARCHITECTURE>.deb
をダウンロードします。 WSL Linux Shellからパッケージをダウンロードします。
$ wget https://launchpad.net/ubuntu/+source/apt/1.6.11/+build/16829590/+files/apt_1.6.11_AMD64.deb
dpkgを使用してパッケージをインストールします
$ dpkg -i apt_1.6.11_AMD64.deb
以前のバージョンと壊れたライブラリを上書きします。
Windows DefenderがSudo_libutil.so.0.0.0を削除しました。パッケージを再インストールせずに問題を解決することができました。
答えをsuperuser.comに投稿しました here
同じ問題が発生しました。新しいapt.debパッケージを入手して、dpkg -iを使用して手動で再インストールします。
私は https://packages.ubuntu.com/bionic/apt から入手しました
次に、apt update、upgrade、おそらくfix-brokenなどを実行します。
ねえ、私はまったく同じ問題を抱えていました-私があなたの議論を見て、それに続いていたところまで。 Stack Overflowのアカウントを作成しました。 (これは私の最初の投稿ですlol)トリックは別のマシンにWSLをインストールする(または私がインストールしたように)ことです、次にlibapt-private.so.0.0.0ファイルを直接ディレクトリにscpします!
その後、Sudo apt-get -f installと入力すると、通常のように実行されました:)これが役に立てば幸いです!