質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

CentOSで一部コマンドが使えなくなりました

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 9,023

score 56

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の中を見る限り、ファイルの所有権、実行権には問題ないようです。

もう一度インストールしなおす方法以外で、この解決法が分かる方いらっしゃいましたら、教えてください。
宜しくお願いします!

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

いい勉強の機会ですね。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 <packagefile> や rpm -Uvh --replacepkgs <packagefile> でいけないでしょうか。
次は python まわりのパッケージを持ってきてどうか…等でしょうか。python-... は全て自分で持ってこないといけないので、手間はちょっとかかりますね。

何かエラーが出れば、それが特定のプログラムによるものであれば、そのプログラムを rpm コマンドを使って入れます。別の CentOS で yum search や https://major.io/2010/12/08/locate-rpm-packages-which-contain-a-certain-file/ にあるように、yum whatprovides を使うとよいでしょう。骨が折れますね。

話が戻りますが、tar 等も動かないとしたら、busybox コマンドが使えそうか確かめて下さい。このファイル一つあれば、けっこうどうにかいきますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/02/16 01:59

    回答ありがとうございます!
    まず、rpmコマンドなのですが、動きませんでした。またlddコマンドもだめでした。
    tarとbusyboxは動きました!

    キャンセル

  • 2016/02/16 03:59

    busyboxでyumを入れなおしたら無事に元通りになりました!
    とても助かりました!ありがとうございます!!!

    キャンセル

  • 2016/02/16 18:31

    どうにかなったのですか、よかったです。busybox でどうやって入れたのか(結局同問題を解決したか)があると、類似の問題を持った人の助けになると思います。

    キャンセル

0

すでに検索してご存知かもしれませんが、yumはpythonで作られています。
そのため、無理やりバージョンを上げると動かなくなります
perl、python、awk、sedなんかは勝手に上げちゃダメです。

/etc/や/var/配下の必要なところ等をバックアップして再インストールしたほうが
早い気もしますが
他のCentOSからコピーされたといいますが、どのようにコピーされました?
それにバージョンは同じものですか?
同じであれば、いったんコピー元のCentOSで/usr/binをtarでオプション「p」を付けてアーカイブし
今回、壊れてしまったCentOSの「/」でアーカイブした/usr/binをtarに「p」オプションをつけて展開されてみたらどうでしょうか?
エラーからして、/usr/bin配下のファイルが壊れてしまっているようですので
tarの使用方法は
http://blog.monoware.co.jp/archives/14
でも参考にしてください

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/02/16 01:55

    回答ありがとうございます。
    コピーはwindows上のVMwareで動かしているCentOSです。
    バージョンは同じCentOS6.7Finalだったと思います。
    tarを一度試してみます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る