3〜4個の小さなテストパッケージをインストールして、Debian 10安定サーバーを損傷しました。 SSH は使用できなくなりました。

3〜4個の小さなテストパッケージをインストールして、Debian 10安定サーバーを損傷しました。 SSH は使用できなくなりました。

私のDebian 10安定サーバーに最新バージョンをインストールしたいので、clone最初のコメントのチュートリアルに従い始めました。この投稿

その後、(メモリ内)私のサーバーで次のタスクを実行しました。

sudo apt-get install libaspell15/testing libgstreamer-plugins-base1.0-0/testing...

...そしてこれらのパッケージに対するいくつかの必須の依存関係もあります。

ただし、インストール後はsudo使用できなくなり、サーバーからログアウトした後はSSHを使用して再接続できません。

> ssh -p 2222 [email protected]

kex_exchange_identification: read: Connection reset by peer
Connection reset by 163.***.**.227 port 2222

だから私は完全に詰まった。私(そして他の人)は個人的で仕事的な目的でこのサーバーに頼っています...(私はこのサーバーでマルチユーザーNextcloudをホストしています...)彼らは元に戻すことができませんでしたか?それ以外の場合、この問題をどのように解決できますか?

ありがとうございます!

ベストアンサー1

Debian 10libc6にはバージョン 2.28-10+deb10u2 がありますが、現在のパッケージはバージョン 2.34 以降testingによって異なります。libc6したがって、あなたの試みがlibcバージョンの更新を引き起こしたようです。これLinux インストールに対して実行できる最も基本的なアップデートです。

システムの2つのメジャーバージョンが古くなったことをご存知でしたか?現在、stableDebian 12はtesting最終的にDebian 13になります。インストールするソフトウェアは次のとおりです。3つのメジャーバージョン現在のシステム状態よりも最新です。

あなたがしたことは元に戻せないわけではありませんが、確かに元に戻すのは簡単ではありません。リカバリを開始するには、外部メディア(物理サーバーの場合)から起動するか、失敗したサーバーのシステムディスクを別の仮想マシン(仮想マシン/クラウドサーバーの場合)に2番目のディスクとしてマウントする必要があります。良いバックアップ戦略がある場合は、以前のエラーバックアップから完全な復元が速くなる可能性があります。

エラーが発生したシステムのシステムディスクにアクセスした後の最初のステップは、更新された<failed system mount point>/var/log/dpkg.log各パッケージと以前にインストールされた正確な以前のバージョンを読み取って識別することですgrep upgrade <failed system mount point>/var/log/dpkg.log

アップデートが失敗する前に存在していたパッケージの正確なバージョンがわかったら、パッケージ検索機能などを使用してそのパッケージをダウンロードしてください。https://www.debian.org/distrib/packages。アップデートが失敗する前に正しいバージョンが見つからない場合は、Debian 10 "buster"の最新パッケージバージョンを選択してください。

最初の目標は、「テスト」から新しいパッケージを削除し、誤ってメジャーバージョンにアップグレードされたライブラリパッケージをダウングレードすることです。リカバリオペレーティングシステムもDebian / Ubuntuの場合、同様のコマンドがdpkg --force-downgrade --root=<failed system mount point> <package files that need to be downgraded>最も簡単な方法です。


リカバリオペレーティングシステムがない場合は、dpkgパッケージを手動で抽出する必要があります。手順は次のとおりです。

cd <directory containing the *.deb files for downgrade>
ar x <something>.deb
cd <failed system mount point>
tar xvf <deb file directory>/data.tar.*z

手動抽出は、少なくともシングルユーザーモードでシステムを独自に実行できるように、基本ライブラリを所定の位置に戻す非常に無差別的な方法です。これにより、パッケージ管理ではアップグレードされたバージョンがまだインストールされていると思われるので、ツールが利用可能になるとすぐに、次の2つの理由で標準パッケージ管理ツールを使用してパッケージをダウングレードする必要があります。

  • パッケージマネージャのデータベースを実際にインストールされたファイルと一致させる。
  • 失敗したアップグレードに属するすべてのファイルが削除され、追加の競合が発生しないようにします。

おすすめ記事