0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【-bash: ./hogehoge: そのようなファイルやディレクトリはありません】ではまった話

Posted at

概要

centos7→centos8にお引越した後、特定のバイナリファイルで

-bash: ./hogehoge: そのようなファイルやディレクトリはありません

というエラーが出た。
こちらの解決にそこそこの時間を費やしたので、戒めのために解決策を記載する。

結論

hogehogeが32bit用バイナリファイルなのに、64bitのOSで実行しようとしていたのでエラーとなった。

解消手順

ファイルが本当にあるか確認する

ファイルが無いと同一のエラーが出るので、まずは本当にファイルがあるか、見れる権限を持っているかを確認する。

# ls -al /home/hoge/hogehoge
-rwxr-xr-x 1 hoge hoge 64162 12月  2 17:35 /home/hoge/hogehoge

ファイルがありますし、権限上は問題なさそうです。

バイナリファイルのファイル形式を確認する

# objdump -a /home/hoge/hogehoge

/home/hoge/hogehoge:     ファイル形式 elf32-i386
/home/hoge/hogehoge

32bit用を示すelf32-i386と表示されていますね。ちなみに、64bitバイナリファイルならelf64-x86-64と表示されます。

自身のOSのアーキテクチャ(32bit/64bit)を確認する

# uname -m
x86_64

64bitですね。ちなみに、32bitならi686と表示されます。

32bitバイナリを動かすために必要なライブラリをインストールする

# dnf install libstdc++.i686
メタデータの期限切れの最終確認: 0:02:45 時間前の 2020年12月03日 10時47分32秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ        Arch         バージョン                 リポジトリー   サイズ
================================================================================
インストール中:
 libstdc++         i686         8.3.1-5.el8.0.2            BaseOS         487 k
依存関係のインストール中:
 glibc             i686         2.28-101.el8               BaseOS         3.4 M
 libgcc            i686         8.3.1-5.el8.0.2            BaseOS          85 k

トランザクションの概要
================================================================================
インストール  3 パッケージ

中略

完了しました!

これで実行できるようになりました٩( ᐛ )و

感想

移行前のcentOSも64bitだったので、バイナリファイルも64bitって思いこみ、バイナリファイルが32bitだって気が付くのが遅れました。
思い込みって怖いですね。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?