質問: CentOSにて、標準のpythonのバージョンをあげようと思い標準で入ってるpythonのバージョンを無理やりあげてしまいました。その結果、yumコマンドが使えなくなってしまいました。 また何を思ったのか、他のCentOSを動かしているパソコンの/usr/binの中身をそっくりそのまま、今使ってるCentOSの/usr/binの中にコピーしてしまいました。 その結果、 /etc/profile:31: 実行形式エラー: id /etc/profile.d/colorls.sh:21: 実行形式エラー: tty __pythonbrew_set_path:3: 実行形式エラー: awk /etc/profile.d/qt.sh:11: command not found: uname /etc/profile.d/vim.sh:3: 実行形式エラー: /usr/bin/id compaudit:91: command not found: getent compaudit:107: unknown group sshでアクセスする度にこのようなエラーが出るようになってしまいました。 また、yum,awkなど実行すると bash: yum: コマンドが見つかりません bash: awk: コマンドが見つかりません このように表示されます。しかし、パスは通っています。 普段zshを使っているのですが、bashに変更する際には bash: /usr/bin/tty: バイナリファイルを実行できません bash: /bin/awk: バイナリファイルを実行できません bash: /usr/bin/id: バイナリファイルを実行できません bash: [: : 指数の表現を期待 このようなエラーが出るようになってしまいました。 パスなどは確認した所、通っていました。/usr/binの中を見る限り、ファイルの所有権、実行権には問題ないようです。 もう一度インストールしなおす方法以外で、この解決法が分かる方いらっしゃいましたら、教えてください。 宜しくお願いします!
回答: いい勉強の機会ですね。SSH と zsh は動いていそうであるという認識で話を進めます。 目的をいくつか持って進めるのがいいと思います。まずは、hide0527 様の言うように、`/usr/bin` を再度他の CentOS から持ってきて動くかどうか試すのはありかもしれません。パーミッションは怪しいですね。 自分ならこう目標設定します。 1. `/usr/bin` の仮復旧(`rpm` の動作確認) 2. `python` の仮復旧 3. https://forum.likg.org.ua/linux-specific/reinstall-all-installed-packages-with-yum-t444.html を利用して、全パッケージの再インストール です。 `/usr/bin` や `python` の仮復旧のために、 `rpm` コマンドが動くかどうか確認 したいです。そのために 1. `rpm --version` 2. `ldd /usr/bin/rpm` を実行して動作確認をします。 動いているようであれば、まず、`coreutils` パッケージの中身は壊れてそうですので、`rpm` コマンドを使って書き戻します。 他の PC でファイルをダウンロードし、USB メモリか何かを使ってファイルを移動して下さい。 `rpm -iv --replacepkgs ` や `rpm -Uvh --replacepkgs ` でいけないでしょうか。 次は `python` まわりのパッケージを持ってきてどうか...等でしょうか。python-... は全て自分で持ってこないといけないので、手間はちょっとかかりますね。 何かエラーが出れば、それが特定のプログラムによるものであれば、そのプログラムを `rpm` コマンドを使って入れます。別の CentOS で `yum search` や https://major.io/2010/12/08/locate-rpm-packages-which-contain-a-certain-file/ にあるように、`yum whatprovides` を使うとよいでしょう。骨が折れますね。 話が戻りますが、`tar` 等も動かないとしたら、`busybox` コマンドが使えそうか確かめて下さい。このファイル一つあれば、けっこうどうにかいきますよ。