web-dev-qa-db-ja.com

Ubuntuの64ビットバージョンで32ビットプログラムを実行するにはどうすればよいですか?

Ubuntu 13.10の64ビットバージョンがあります。プログラムの32ビットバージョンを実行したい。ただし、ia32-libsは13.10に含まれていません。これまたは何のための代替パッケージはありますか?

40
Cato

ia32-libsパッケージはもう必要ありません(正確には12.04以降)。APTシステムを使用する場合、32ビットパッケージを64にインストールすることについて心配する必要はありません。ビットシステム。これは multiarch の導入以来起こりました。これは、Debianが依存関係を管理する方法において、Debianの最も革新的なポリシーの1つです。この方法では、カーネルアーキテクチャを気にせずに、同じシステムに異なるバイナリターゲットを設定できます。これは、32ビットパッケージを準備なしで実行できることを意味するものではありませんが、ライブラリ/バイナリをインストールすれば、理論的にはすべてのアプリケーションを実行できるはずです。これは、64ビットから32ビット、およびその逆の場合に当てはまります。

enter image description here

このような方法を使用するには、APTマネージャーを使用して、依存関係が満たされないようにすることをお勧めします。 changelog には、変更が行われた方法に関する小さな履歴が含まれます。

  1. 正確にはパッケージ は空になり、 移行パッケージ になりました。 multiarchに移動されていないパッケージに対するいくつかの依存関係が追加されました。
  2. ゆっくりと、しかし確実に、すべてのパッケージはmultiarchサポートで再構築され、逆の依存関係はia32-lib-multiarchにドロップまたは変更されました。これらのパッケージがia34-libsパッケージの必要を停止すると、依存関係は同時に削除されました。依存関係がia32-libsからpackage:Archに変更されました。packageは必要なライブラリの名前であり、Archはアーキテクチャです(以下にskypeの例を​​示します)。
  3. 最後のリリース を使用すると、ia32-libs-multiarchパッケージは事前にリリースされたリリースから削除され、ia32-libsはsaucyに公開されません。すべてのUbuntuパッケージはマルチアーチ対応であり、システムに異なるアーキテクチャパッケージをインストールできます。

32ビットバイナリを必要とするパッケージをインストールする場合、注意を払わないと、パッケージマネージャーが必要な依存関係を自動的にプルするため、32ビットパッケージを使用していることがわかりません。

Sudo apt-get --no-install-recommends -q -y install skype
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
  libaudio2:i386 libjbig0:i386 liblcms1:i386 libmng1:i386 libqt4-dbus:i386 libqt4-declarative:i386
  libqt4-network:i386 libqt4-opengl:i386 libqt4-script:i386 libqt4-sql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtgui4:i386 libqtwebkit4:i386 libssl1.0.0:i386 libtiff5:i386
  libxss1:i386 libxv1:i386 skype-bin:i386
Suggested packages:
  nas:i386 liblcms-utils:i386 libqt4-declarative-folderlistmodel:i386 libqt4-declarative-gestures:i386
  libqt4-declarative-particles:i386 libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libthai0:i386 libicu48:i386 qt4-qtconfig:i386
Recommended packages:
  libqt4-sql-mysql:i386 libqt4-sql-odbc:i386 libqt4-sql-psql:i386 libqt4-sql-sqlite:i386 libcups2:i386
  sni-qt:i386 libasound2-plugins:i386
The following NEW packages will be installed:
  libaudio2:i386 libjbig0:i386 liblcms1:i386 libmng1:i386 libqt4-dbus:i386 libqt4-declarative:i386
  libqt4-network:i386 libqt4-opengl:i386 libqt4-script:i386 libqt4-sql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtgui4:i386 libqtwebkit4:i386 libssl1.0.0:i386 libtiff5:i386
  libxss1:i386 libxv1:i386 skype skype-bin:i386
0 upgraded, 21 newly installed, 0 to remove and 0 not upgraded.
Need to get 33.9 MB/38.2 MB of archives.
After this operation, 118 MB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously unselected package libssl1.0.0:i386.
(Reading database ... 208485 files and directories currently installed.)
Unpacking libssl1.0.0:i386 (from .../libssl1.0.0_1.0.1c-4ubuntu8.1_i386.deb) ...
Selecting previously unselected package libaudio2:i386.
Unpacking libaudio2:i386 (from .../libaudio2_1.9.3-5ubuntu0.13.04.1_i386.deb) ...
Selecting previously unselected package liblcms1:i386.
Unpacking liblcms1:i386 (from .../liblcms1_1.19.dfsg-1.2ubuntu2_i386.deb) ...
Selecting previously unselected package libmng1:i386.
Unpacking libmng1:i386 (from .../libmng1_1.0.10-3build1_i386.deb) ...
Selecting previously unselected package libqtcore4:i386.
Unpacking libqtcore4:i386 (from .../libqtcore4_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-xml:i386.
Unpacking libqt4-xml:i386 (from .../libqt4-xml_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-dbus:i386.
Unpacking libqt4-dbus:i386 (from .../libqt4-dbus_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-network:i386.
Unpacking libqt4-network:i386 (from .../libqt4-network_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-script:i386.
Unpacking libqt4-script:i386 (from .../libqt4-script_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-sql:i386.
Unpacking libqt4-sql:i386 (from .../libqt4-sql_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-xmlpatterns:i386.
Unpacking libqt4-xmlpatterns:i386 (from .../libqt4-xmlpatterns_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libjbig0:i386.
Unpacking libjbig0:i386 (from .../libjbig0_2.0-2ubuntu1_i386.deb) ...
Selecting previously unselected package libtiff5:i386.
Unpacking libtiff5:i386 (from .../libtiff5_4.0.2-4ubuntu2.1_i386.deb) ...
Selecting previously unselected package libqtgui4:i386.
Unpacking libqtgui4:i386 (from .../libqtgui4_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-declarative:i386.
Unpacking libqt4-declarative:i386 (from .../libqt4-declarative_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqt4-opengl:i386.
Unpacking libqt4-opengl:i386 (from .../libqt4-opengl_4%3a4.8.4+dfsg-0ubuntu9.4_i386.deb) ...
Selecting previously unselected package libqtwebkit4:i386.
Unpacking libqtwebkit4:i386 (from .../libqtwebkit4_2.3.0-0ubuntu2_i386.deb) ...
Selecting previously unselected package libxss1:i386.
Unpacking libxss1:i386 (from .../libxss1_1%3a1.2.2-1_i386.deb) ...
Selecting previously unselected package libxv1:i386.
Unpacking libxv1:i386 (from .../libxv1_2%3a1.0.7-1ubuntu0.13.04.1_i386.deb) ...
Selecting previously unselected package skype-bin.
Unpacking skype-bin (from .../skype-bin_4.2.0.11-0ubuntu0.12.04.2_i386.deb) ...
Selecting previously unselected package skype.
Unpacking skype (from .../skype_4.2.0.11-0ubuntu0.12.04.2_AMD64.deb) ...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Processing triggers for hicolor-icon-theme ...
Setting up libssl1.0.0:i386 (1.0.1c-4ubuntu8.1) ...
Setting up libaudio2:i386 (1.9.3-5ubuntu0.13.04.1) ...
Setting up liblcms1:i386 (1.19.dfsg-1.2ubuntu2) ...
Setting up libmng1:i386 (1.0.10-3build1) ...
Setting up libqtcore4:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-xml:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-dbus:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-network:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-script:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-sql:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-xmlpatterns:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libjbig0:i386 (2.0-2ubuntu1) ...
Setting up libtiff5:i386 (4.0.2-4ubuntu2.1) ...
Setting up libxss1:i386 (1:1.2.2-1) ...
Setting up libxv1:i386 (2:1.0.7-1ubuntu0.13.04.1) ...
Setting up libqtgui4:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-declarative:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqt4-opengl:i386 (4:4.8.4+dfsg-0ubuntu9.4) ...
Setting up libqtwebkit4:i386 (2.3.0-0ubuntu2) ...
Setting up skype-bin (4.2.0.11-0ubuntu0.12.04.2) ...
Setting up skype (4.2.0.11-0ubuntu0.12.04.2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

Skypeはi386パッケージであることに注意してください。 apt-getを使用してインストールする場合、後で頭痛の種を省きます。

しかし、一部の人は.debパッケージを使用することを好みます。システムが満たされていない依存関係で終了しないように、手動ですべての依存関係を手動でインストールする必要があります。パッケージの情報を表示するので、役立つコマンドはdpkg-deb -Iです。

dpkg-deb -I zynaddsubfx-dssi_2.4.3-3_AMD64.deb 
 new debian package, version 2.0.
 size 266936 bytes: control archive=845 bytes.
     917 bytes,    19 lines      control              
     232 bytes,     3 lines      md5sums              
 Package: zynaddsubfx-dssi
 Source: zynaddsubfx
 Version: 2.4.3-3
 Architecture: AMD64
 Maintainer: Ubuntu Developers <[email protected]>
 Original-Maintainer: Debian Multimedia Maintainers <[email protected]>
 Installed-Size: 633
 Depends: libasound2 (>= 1.0.16), libc6 (>= 2.15), libgcc1 (>= 1:4.1.1), libjack-jackd2-0 (>= 1.9.5~dfsg-14) | libjack-0.116, libmxml1, libstdc++6 (>= 4.6), zlib1g (>= 1:1.1.4)
[...]

ご覧のとおり、依存関係がリストされているので、Sudo apt-get installしてからSudo dpkg -iするだけで済みます。繰り返しますが、ソフトウェアをダウンロードしてdpkg -iで手動でインストールするのではなく、リポジトリからソフトウェアをインストールすることをお勧めします。

現在、開発中の場合は、apt-get構文を使用して任意のライブラリをインストールできます。ダウンロードしたいライブラリに:i386を追加するだけで完了です。リポジトリからソフトウェアをインストールする場合、これを手動で行う必要はありません。

結論:いいえ、リポジトリからパッケージをインストールすれば、ia32-libsをインストールしなくても32ビットパッケージを実行できます。開発中の場合は、常にAPTシステムを使用するようにしてください。

30
Braiam

I386アーキテクチャを追加することを忘れないでください。そうしないと、32ビットパッケージをインストールできません。

Sudo dpkg --add-architecture i386
Sudo apt-get update

パッケージのトラブルシューティングガイドを確認してください: https://help.ubuntu.com/community/PackageManagerTroubleshootingProcedure

12
13m5