だから私は/bin/bash
誤って愚かなbashスクリプトで上書きしました。前の質問は以下で確認できます。発生した問題を処理するために新しいものを作成するようアドバイスを受けました。要約すると、GUIを使用して基本端末をダッシュに変更してコマンドを実行できました。これで、基本端末を再度変更できるようにbashを再インストールしようとしています。前述のようにbashを実行しているため、再インストールする必要がapt-get --reinstall install
あります。ただし、エラーが返されます。
reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
bash-completion
Suggested packages:
bash-doc
The following packages will be upgraded:
bash bash-completion
2 upgraded, 0 newly installed, 0 to remove and 2128 not upgraded.
2 not fully installed or removed.
Need to get 0 B/1,605 kB of archives.
After this operation, 673 kB of additional disk space will be used.
Do you want to continue? [Y/n] (Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 307792 files and directories currently installed.)
Preparing to unpack .../archives/bash_4.4-5_amd64.deb ...
dpkg (subprocess): unable to execute old pre-removal script (/var/lib/dpkg/info/bash.prerm): No such file or directory
dpkg: warning: subprocess old pre-removal script returned error exit status 2
dpkg: trying script from the new package instead ...
dpkg (subprocess): unable to execute new pre-removal script (/var/lib/dpkg/tmp.ci/prerm): No such file or directory
dpkg: error processing archive /var/cache/apt/archives/bash_4.4-5_amd64.deb (--unpack):
subprocess new pre-removal script returned error exit status 2
dpkg (subprocess): unable to execute installed post-installation script (/var/lib/dpkg/info/bash.postinst): No such file or directory
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
/var/cache/apt/archives/bash_4.4-5_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
また、dpkg --configure bash
パッケージの処理中にエラーが発生し、bashは「非常に悪い不一致です。設定を試みる前に再インストールする必要があります」と示しています。
私が実行しているディストリビューションはKali 2.2です。私はすでに情熱的に嫌いなディストリビューションです。なぜなら、bashを上書きするのは間違いだからです。
@Philipposが推奨する新しい投稿です。以前の投稿リンクはここ
答え1
問題は、bash prermスクリプトがbashを使用しているため、実行されていないため、再インストール全体が失敗することです。
この問題を解決する方法はいくつかあります。
1)私のシステム(Debianの不安定性とDebianの安定性)のbash prermスクリプトは非常に簡単で、実行するためにbashを必要としません。したがって、/var/lib/dpkg/info/bash.prerm
最初の行を編集してからに変更し#! /bin/bash
ます#! /bin/sh
。また、()を/bin/sh
指さないように注意してください。その場合は、すでにインストールされている可能性が高いので、prermファイルを編集して試してみてください。bash
ls -l /bin/sh
/bin/dash
2)prermファイルを削除して再インストールします。 prermファイルはDebian 4.4-5バージョンでは重要な役割を果たさないので、prermファイルを削除して再インストールしてください。
3) ダウンロードしたアーカイブ/bin/bash
から解凍できます。.deb
出力でパスを表示できます/var/cache/apt/archives/bash_4.4-5_amd64.deb
。これはar(1)
3つのファイルを含むアーカイブです。
debian-binary
control-tar.gz
data.tar.xz
ファイルは圧縮されない可能性がdata.tar
ありますxz
。 gzip、bzipなどの他の形式があります。ファイルだとしますxz
。そうでない場合は、サフィックスとzcatプログラムを適切に置き換えることができます。
.deb
次のコマンドを実行してファイルの内容を表示できます。
$ ar t /var/cache/apt/archives/bash_4.4-5_amd64.deb
debian-binary
control.tar.gz
data.tar.xz
data.tar.xz
次のコマンドを実行してファイルの内容を表示できます。
$ ar p /var/cache/apt/archives/bash_4.4-5_amd64.deb data.tar.xz | xzcat | tar tvf -
...
./bin/bash
...
/bin/bash
以下から抽出できます。
$ cd /tmp
$ ar p /var/cache/apt/archives/bash_4.4-5_amd64.deb data.tar.xz | xzcat | tar xvf - ./bin/bash
。で始まったので、/tmp
ファイルを/tmp/bin/bash
もう一度コピーしてbashを上書きすることができますが、/bin
今回は良い内容が含まれます。
dpkgツールを使用してファイルを操作できますが、単純なアーカイブなので、.deb
dpkg固有のオプションよりも使用方法を覚えやすいです。ar(1)
tar(1)