背景
私は「悪い」方法で私のlibc6バージョンをアップグレードしたいと思います。すべては、MariaDBを10.1から10.2に更新しようとしたときに始まりました。その後、インストールされたlibc6 = 1.24が十分ではなく、libc6 = 1.27が必要であることがわかりました。ここからダウンロードしたパッケージを使用すると、インストールが正常に中断さdpkg -i
れました。http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/(具体的にlibc6_2.27-3ubuntu1_amd64.deb)。私は他のパッケージを自動的に構成解除することを許可しましたが、その時点で私はそれを台無しにしたことがわかりました。
私のシステムは実行中です
root@redfox:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.13 (stretch)
Release: 9.13
Codename: stretch
現在の問題
dpkgを使用または実行しようとするたびに、apt-get upgrade
プログラムが欠落し、依存関係が欠落/破損します。出力は次のとおりです。
root@redfox:~# sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
cups-core-drivers hplip-data libart-2.0-2 libcupscgi1 libgutenprint2 libsane-hpaio python3-pexpect python3-pil python3-ptyprocess
python3-renderpm python3-reportlab python3-reportlab-accel
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
hplip libgcc1:i386 printer-driver-gutenprint printer-driver-hpcups printer-driver-postscript-hp
0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 4370 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
root@redfox:~# dpkg --configure -a
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
それを修正するために私は何をしましたか?
私はlibc6バージョン1.24にダウングレードしようとしましたが、うまくいくかどうかはわかりません。パッケージキャッシュの消去、自動クリーニングなども試してみましたが、残念ながら次にどこに行くべきか混乱しています。私ができることが何であるかを調べようとしましたが、残念ながらこれは私たちの州にとって非常に特定の問題であると思われるので、理解するのは難しいです。
編集#1
cp /bin/true /sbin/ldconfig
欠落していることを発見し、これを試してみました/sbin/ldconfig
。しかし、システムのダメージは当初考えていたよりも深刻だと思われます。以下のStephen Kittの答えに提案されたパッケージをインストールしようとしたときの出力は次のとおりです。
sudo dpkg -i libc-bin_2.24-11+deb9u4_amd64.deb locales_2.24-11+deb9u4_all.deb
Selecting previously unselected package libc-bin.
(Reading database ... 202484 files and directories currently installed.)
Preparing to unpack libc-bin_2.24-11+deb9u4_amd64.deb ...
Unpacking libc-bin (2.24-11+deb9u4) ...
Selecting previously unselected package locales.
Preparing to unpack locales_2.24-11+deb9u4_all.deb ...
Unpacking locales (2.24-11+deb9u4) ...
dpkg: dependency problems prevent configuration of libc-bin:
libc-bin depends on libc6 (>> 2.24); however:
Package libc6:amd64 is not configured yet.
libc-bin depends on libc6 (<< 2.25); however:
Version of libc6:amd64 on system is 2.27-3ubuntu1.
dpkg: error processing package libc-bin (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of locales:
locales depends on libc-bin (>> 2.24); however:
Package libc-bin is not configured yet.
libc6:amd64 (2.27-3ubuntu1) breaks locales (<< 2.27) and is unpacked but not configured.
Version of locales to be configured is 2.24-11+deb9u4.
dpkg: error processing package locales (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libc-bin
locales
答え1
特に、すべてのlibc関連パッケージを再インストールする必要があるかもしれません。libc6
それ自体、libc-bin
、locales
とlibc-l10n
:
wget http://deb.debian.org/debian/pool/main/g/glibc/libc6_2.24-11+deb9u4_amd64.deb http://deb.debian.org/debian/pool/main/g/glibc/libc-bin_2.24-11+deb9u4_amd64.deb http://deb.debian.org/debian/pool/main/g/glibc/locales_2.24-11+deb9u4_all.deb http://deb.debian.org/debian/pool/main/g/glibc/libc-l10n_2.24-11+deb9u4_all.deb
dpkg -i libc6_2.24-11+deb9u4_amd64.deb libc-bin_2.24-11+deb9u4_amd64.deb locales_2.24-11+deb9u4_all.deb libc-l10n_2.24-11+deb9u4_all.deb
あなたのものを確認してくださいPATH
(質問に表示された最後のエラーメッセージを参照)。
パッケージが消えたため、パッケージをインストールする/sbin/ldconfig
には少し変更が必要です。dpkg
cp /bin/true /sbin/ldconfig
これにより、dpkg
実際のldconfig
インストールが行われます。
答え2
apt-get upgrade -f
欠落または破損したパッケージを修復するには、-fを実行してみてください。これが失敗した場合は、出力全体を公開してください。
自動回復に失敗した場合の追加オプション:
- 破損したパッケージを見つけて削除したら、ソースから再インストールしてみてください。
echo $PATH
正しい場所が含まれていることを確認してください。
ヒント:Debian用の新しいパッケージが必要な場合は、Ubuntuパッケージを使用しないでください。これは機能しますが、システムが損傷する可能性が高いです。 Debian システムのより良いソースは Debian の stable/testing ブランチにあるパッケージです。別のオプションは、「バックポート」を使用することです。最新バージョンのターゲットソフトウェアの場合、これらのパッケージにはできるだけ少ない新しいライブラリが必要です。