64bit-Linuxで32bitバイナリ実行環境を構築
とある32bitのELFファイルを64bit環境で実行しようとしたら
No such file or directory
と出てしまいました。
いろいろ調べたところ、apt-getで「ia32-libs」をインストールすれば良いとありましたが、実際にapt-getを実行したら、パッケージが無い、あるいは古くなっていると言われ、インストール出来ませんでした。
その際、Ubuntuがご丁寧にも「代わりにこんなパッケージがあるよ♪」と紹介してくれました。
それがこちら↓
- lib32z1
- lib32ncurses5
- lib32bz2-1.0
ということで、「lib32z1」を以下のコマンドでインストール
$ sudo apt-get install lib32z1
これで無事、32bitのアプリケーションを実行できました。
64bitのUbuntu, Kaliで動作確認済みです。
もしこれでも「パッケージがない」と言われたら、apt-get updateを実行してみてください。
それでもダメだったら、リポジトリが登録されてないことが考えられます。
レポジトリを追加するには、/etc/apt/sources.listに以下の行を追加して、最後にapt-get updateを実行してください。
Ubuntuの場合
deb http://us.archive.ubuntu.com/ubuntu/ saucy universe deb-src http://us.archive.ubuntu.com/ubuntu/ saucy universe deb http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe deb-src http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe
Kaliの場合
deb http://http.kali.org/kali kali main non-free contrib deb http://security.kali.org/kali-security kali/updates main contrib non-free deb-src http://http.kali.org/kali kali main non-free contrib deb-src http://security.kali.org/kali-security kali/updates main contrib non-free deb http://repo.kali.org/kali kali-bleeding-edge main
参考
Repositories/CommandLine - Community Help Wiki
Kali Linux sources.list Repositories | Kali Linux Official Documentation