64bit版のUbuntu 14.04 LTSであるプログラムを実行しようとすると、 bash: /home/user/xxx: そのようなファイルやディレクトリはありません というエラーがでて実行できないという状況になりました。
でも、ls -lで見てみるともちろんファイルはありますし、パーミッション(実行権限)も大丈夫です。なぜだろう・・・
原因と対策
いろいろと調べてみると、64bit Linuxで32bitプログラムを実行するにはia32-libsが必要なことがわかりました。
早速、
$ sudo apt-get install ia32-libs
をしたんですが、
パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 パッケージ ia32-libs はデータベースには存在しますが、利用できません。 おそらく、そのパッケージが見つからないか、もう古くなっているか、 あるいは別のソースからのみしか利用できないという状況が考えられます ただし、以下のパッケージで置き換えられます: lib32z1 lib32ncurses5 lib32bz2-1.0 E: パッケージ 'ia32-libs' にはインストール候補がありません
といわれてインストールできず
結局のところ、x86_64版ではまだ ia32-libs 導入が対応されないらしいです。
ということで、こちらを参考に強引にia21-libsを導入することにしました。
ia 32 - How to install ia32-libs in ubuntu 14.04 LTS - Stack Overflow
$ sudo -i $ cd /etc/apt/sources.list.d $ echo "deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list $ apt-get update $ apt-get install ia32-libs
でも、
PS:In this way,you can install ia32-libs.However, we add the source of 13.04 instead,so, there may be some problem unknown。After install ia32-libs,I recommend you to remove the ia32-libs-raring.list in /etc/apt/sources.list.d,and do sudo apt-get update.
なんだってさ。
まぁ、とりあえずこれで動きました。