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

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

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

yum

yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

Q&A

解決済

2回答

10595閲覧

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

Daichi

総合スコア47

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

yum

yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

1グッド

0クリップ

投稿2016/02/15 13:36

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

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

izkn👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

いい勉強の機会ですね。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/binpython の仮復旧のために、
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 searchhttps://major.io/2010/12/08/locate-rpm-packages-which-contain-a-certain-file/ にあるように、yum whatprovides を使うとよいでしょう。骨が折れますね。

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

投稿2016/02/15 16:42

takotakot

総合スコア1111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daichi

2016/02/15 16:59

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

2016/02/15 18:59

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

2016/02/16 09:31

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

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/15 14:39

編集2016/02/15 14:40
hide0527

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daichi

2016/02/15 16:55

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問