問題の説明 #
Debian Buster のアップグレード プロセス中に、libc6 パッケージで問題が発生し、次のエラー メッセージが表示される場合があります。
/usr/bin/perl: 共有ライブラリのロード中にエラーが発生しました: libcrypt.so.1: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません (データベースを読み込んでいます... 現在 49108 個のファイルとディレクトリがインストールされています。) .../libc-dev-bin_2.36-9+deb12u3_amd64.deb を解凍する準備をしています... libc-dev-bin (2.36-9+deb12u3) を (2.28-10+deb10u1) 上に解凍しています... libc6:amd64 (2.36-9+deb12u3) を設定しています... /usr/bin/perl: 共有ライブラリのロード中にエラーが発生しました: libcrypt.so.1: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません dpkg: パッケージ libc6:amd64 の処理中にエラーが発生しました (--configure): libc6:amd64 パッケージがインストールされました インストール後のスクリプト サブプロセスがエラーを返しました 終了ステータス 127処理中にエラーが発生しました: libc6:amd64 E: サブプロセス /usr/bin/dpkg がエラー コード (1) を返しました
分析 #
このエラーは、Debian BusterからBookwormへのアップグレード中に、次の間の循環依存関係が原因で発生します。 libcの and libcrypt Bookwormでは意図的に避けられている。循環依存関係により、必要な共有ライブラリが存在しない。 libcrypt.so.1libc6 パッケージが正しく構成されず、エラー終了ステータスがトリガーされます。この状況は、Bookworm での循環依存関係を解消するための取り組みを強調しており、アップグレード中に潜在的な問題が発生する可能性があります。
解決手順 #
この問題を解決するには、以下に示す手動の解決手順に従ってください。
1. ターミナルを開き、一時ディレクトリに移動します。
root@noid-ce-01:~# cd $(mktemp -d) root@noid-ce-01:/tmp/tmp.XX#
2. libcrypt1 パッケージをダウンロードします。
root@noid-ce-01:/tmp/tmp.XX# apt -y libcrypt1をダウンロード
3. libcrypt1 パッケージの内容を抽出します。
root@noid-ce-01:/tmp/tmp.XX# dpkg-deb -x libcrypt1_*.deb 。
4. 抽出したライブラリ ファイルをシステムのライブラリ ディレクトリにコピーします。
root@noid-ce-01:/tmp/tmp.XX# cp -ra lib/* /lib/
5. 壊れたインストールの修正を実行します。
root@noid-ce-01:/tmp/tmp.XX# apt -y --fix-broken をインストールします
6. 最小限のソフトウェア スタックのアップグレードを完了します。
root@noid-ce-01:~# apt-get アップグレード root@noid-ce-01:~# apt-get dist-upgrade
これらの手順を実行すると、不足している libcrypt.so.1 ライブラリがインストールされ、libc6 パッケージがエラーなしで設定されるはずです。その後、ユーザーは以前に報告された問題に遭遇することなく、Debian Buster のアップグレードを続行できます。
注意: これらのコマンドを実行するための適切な権限があることを確認し、システムのアップグレードを実行する前に重要なデータをバックアップすることを検討してください。