Ubuntu20.04 + WLS1、libcダウングレード後にAPTが破損する

Ubuntu20.04 + WLS1、libcダウングレード後にAPTが破損する

Ubuntu20.04+WSL1を使用しています。 sleepコマンドが機能していないことがわかりました。エラーを検出した後、この問題が見つかりました。https://github.com/microsoft/WSL/issues/4898

その後、コメントのいずれかに基づいて次の解決策を適用しました。

wget "https://launchpad.net/~rafaeldtinoco/+archive/ubuntu/lp1871129/+build/19152555/+files/libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb"
sudo dpkg -i libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb

これでsleepコマンドが機能します。しかし、多くのことがapt upgrade次のエラーのために動作を停止しました。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libc6-dev : Depends: libc6 (= 2.31-0ubuntu9) but 2.31-0ubuntu8+lp1871129~1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

提案どおりに実行しようとすると、apt --fix-broken install次のエラーが発生します。

sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  libc6
Suggested packages:
  glibc-doc
The following packages will be upgraded:
  libc6
1 upgraded, 0 newly installed, 0 to remove and 43 not upgraded.
Need to get 0 B/2713 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Preconfiguring packages ...
(Reading database ... 63162 files and directories currently installed.)
Preparing to unpack .../libc6_2.31-0ubuntu9_amd64.deb ...
Unpacking libc6:amd64 (2.31-0ubuntu9) over (2.31-0ubuntu8+lp1871129~1) ...
Setting up libc6:amd64 (2.31-0ubuntu9) ...
sleep: cannot read realtime clock: Invalid argument
dpkg: error processing package libc6:amd64 (--configure):
 installed libc6:amd64 package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 libc6:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

問題は、私が変更した内容をどのように元に戻すかということです。それとも、aptから受け取った上記のエラーをどのように修正できますか?

ベストアンサー1

まず、ここで何をしていますか?

wget "https://launchpad.net/~rafaeldtinoco/+archive/ubuntu/lp1871129/+build/19152555/+files/libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb"
sudo dpkg -i libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb

このコンテンツを作成したユーザーは、お使い.debのコンピュータを完全に損傷する可能性があります。ランダムなガイドラインによって問題が発生する可能性があります。

このリポジトリからインストールする場合は、ソフトウェアソースに追加する必要があります。

deb http://ppa.launchpad.net/rafaeldtinoco/lp1871129/ubuntu focal main 

このようにして依存関係を引き出すか、早期に拒否することができます。

今起こっていることは次のとおりです。

  • glibc バージョン 2.31-0ubuntu9 がインストールされています。
  • このコマンドを使用して、バージョン2.31-0ubuntu8 + lp1871129(reafaeldtinocoによって追加されたパッチバージョン2.31-0ubuntu8)をインストールしました。あなたダウングレード以前のglibcバージョンへ
  • libc パッケージは、システム内のほとんどすべてのプログラムで使用されます。
  • apt --fix-broken install解決策を探す:2.31-0ubuntu9で再インストールしてください。ただし、インストールの後処理ステップが使用されましたが、sleep今は破損しているため失敗します。

あるいは、すべてを2.31-0ubuntu8にダウングレードすることもできますが、手動で強制的にダウングレードする必要がある多くのパッケージがあります。別の解決策は2.31-0ubuntu9のパッチバージョンを作成することですが、これをしたくないかもしれません。

2.31-0ubuntu8 がインストールされましたが、まだ設定されていません。

以下を実行して、rafaeldtinoco libc6バージョンに強制的にダウングレードし、変更しないままにすることができます。

sudo add-apt-repository ppa:rafaeldtinoco/lp1871129 # Install rafaeldtinoco/lp1871129 repo
sudo apt-get update
sudo apt-get install libc6=2.31-0ubuntu8+lp1871129~1 # Downgrade to exactly this version
sudo apt-mark hold libc6 # Do not upgrade libc6

おすすめ記事