web-dev-qa-db-ja.com

Ubuntu for Windowsでlibapt-private.so.0.0.0を手動で置き換える方法は?

私はUbuntu for Windowsを使用しており、しばらくの間使用しています。 /etc/debian_versionbuster/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の検索は役に立ちませんでした。

8
Jon Green

Windows Defenderがlibapt-private.so.0.0.0をトロイの木馬として検出したため、WSLが壊れました。 [ここに皮肉なコメントを挿入]

更新:これはSO回答が一部報告 この問題に関するMicrosoftからのニュース

解決

まず、最も厄介なのは、ライブラリを削除または移動しようとすると、すべて「アクセスが拒否されました」というエラーが発生することでした。これを防ぐには、管理者として操作していることを確認してください:管理者特権のcmd/powershellからWSLシェルを開き、そこで作業します。

以下は(ほぼ)Imaginecat22の回答の実装です。

  1. aptのバージョンを確認します

    $ dpkg -l apt
    
    [. . .]
    ||/ Name                              Version               Architecture          Description
    +++-=================================-=====================-=====================-=======================================================================
    ii  apt                               1.6.11                AMD64                 commandline package manager
    

    Architectureの値を書き留めます。

  2. .debパッケージをダウンロード

    ほとんどのパッケージは buntuパッケージ検索 で見つけることができます。

    ただし、すべてのバージョンが利用できるわけではないため、手動でダウンロードする必要がある場合があります。

    • webブラウザを使用して開きます。

      https://launchpad.net/ubuntu/+source/apt/<VERSION>/

      <VERSION>を、手順1で返されたVersionの値に置き換えます。例:

      https://launchpad.net/ubuntu/+source/apt/1.6.11/

    • 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
    
  3. dpkgを使用してパッケージをインストールします

    $ dpkg -i apt_1.6.11_AMD64.deb
    

以前のバージョンと壊れたライブラリを上書きします。

9
Salvioner

Windows DefenderがSudo_libutil.so.0.0.0を削除しました。パッケージを再インストールせずに問題を解決することができました。

答えをsuperuser.comに投稿しました here

1
Red-ER

同じ問題が発生しました。新しいapt.debパッケージを入手して、dpkg -iを使用して手動で再インストールします。

私は https://packages.ubuntu.com/bionic/apt から入手しました

次に、apt update、upgrade、おそらくfix-brokenなどを実行します。

0
crisdias

ねえ、私はまったく同じ問題を抱えていました-私があなたの議論を見て、それに続いていたところまで。 Stack Overflowのアカウントを作成しました。 (これは私の最初の投稿ですlol)トリックは別のマシンにWSLをインストールする(または私がインストールしたように)ことです、次にlibapt-private.so.0.0.0ファイルを直接ディレクトリにscpします!

その後、Sudo apt-get -f installと入力すると、通常のように実行されました:)これが役に立てば幸いです!

0
Imaginecat22