Pythonの問題を修正しようとしているときに、シンボリックリンクでlibz.so.1
バイナリを誤って吹き飛ばしてしまいました。現在、apt-get
を含む多くのものは機能しません。損傷はlibz.so.1(libz.so.1.2.8
を指していた)に限定されるため、x86_64バイナリを見つけて元の場所にドロップすることで修正できますが、見つけることができるのはソースと私はそれをコンパイルすることはできません。私はXenialにいます。コンパイルされたバイナリはどこにありますか?
この問題を修正する正しい方法は、必要なパッケージを手動でダウンロードしてから、システムにインストールまたは抽出することです。もちろん、LiveCD/LiveUSBからこのようなアクションを実行できます。
そのような問題を解決する方法:
逃したファイル名をに入力しますパッケージの内容を検索(この場合はlibz.so.1.2.8
)ターゲットDistribution(この場合はxenial
)とCPUを指定します- アーキテクチャ(AMD64
):
検索をクリックすると、 結果ページ が表示されます。
次に、 zlib1g
リンク をクリックします
DownloadセクションでAMD64
をクリックします:
開いたページで最も近いミラーを選択します(リンクをコピーするか、ブラウザでデバッグファイルをダウンロードします)
wget http://mirrors.kernel.org/ubuntu/pool/main/z/zlib/zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb
ダウンロードしたパッケージをシステムにインストールしてみてください。
Sudo dpkg -i zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb
動作しない場合-ファイルシステムに直接抽出します:
Sudo dpkg -x zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb /
そして、APTで確実に再インストールします。
Sudo apt-get install --reinstall zlib1g
N0rbertの指示 の拡張、ライブセッションでこれを行う場合、壊れたUbuntuインストールのルートにパッケージを抽出していることを確認してください、ライブセッション自体のルートとは対照的に(これは何も解決せず、再起動すると消えます)。
ライブセッションのPOVから、壊れたインストールは/media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f
(実際の値ではなく、それに似た長いハッシュ)のような場所にマウントされます。フォルダを表示するには、エクスプローラでファイルを参照する必要がある場合があります。
したがって、ライブセッションでは、次のようなコマンドを使用して抽出します。
Sudo dpkg -x zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb /media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f/
不足しているlibz.so.1
が/media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f/lib/x86_64-linux-gnu/
に復元されると、再起動し、tty1でSudo apt-get install --reinstall zlib1g
を実行し、動作中のシステムを再起動できるはずです。