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


41

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



@bainこれは複製ではありません。この質問は一般的な状況に関するものであり、特定の問題です。もちろん、これは古い、より良い質問です。
セス14

そして、Braiamの答えは素晴らしいです!だから、それがどこかにだまされた場合、それはマージされるべきです。
マテオ14

回答:


30

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

ここに画像の説明を入力してください

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

  1. 正確には、パッケージは空にされ、移行パッケージを作成しました。multiarchに移動されていないパッケージに対するいくつかの依存関係が追加されました。
  2. ゆっくりと、しかし確実に、すべてのパッケージはマルチアーチサポートで再構築され、逆の依存関係はia32-lib-multiarchにドロップまたは変更されました。これらのパッケージがia34-libsパッケージの必要を停止すると、依存関係も同時に削除されました。依存関係から変更されたia32-libspackage:archであるpackage必要なライブラリの名前とarch(Skypeで例がある未満)アーキテクチャ。
  3. 最後のリリースia32-libs-multiarchパッケージには、事前にウズウズリリースから除去し、ia32-libs生意気に公開してしまっていません。すべての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 <ubuntu-devel-discuss@lists.ubuntu.com>
 Original-Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
 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システムを使用するようにしてください。


ia32-libsパッケージがインストールされているかどうかを確認する.binインストーラーで何ができますか?私が知る限り、手動で正しい依存関係をインストールしても、.binはia32-libsパッケージを検索するため、インストールに失敗します。インストーラーを「だまして」ia32-libsがインストールされていると考える方法はありますか?
ガルガレシュ

1
@Galgaleshは、メンテナに自分のものを修正するように依頼します。彼らは過去のものです。
Braiam

ia32-libsの削除に関する唯一の問題は、32ビットライブラリを使用して32ビットWindowsプログラムを実行しようとするPlayOnLinuxなどのプログラムがある場合です。次に、これは後方互換性に違反します。
AlexLordThorsen 14年

@Rawrgulmuffins彼らは変更しなければなりませんでした... OpenSUSEとRed HatはすでにLSBとFHSの標準に準拠していました。建築。開発者は、代わりにmultiarchの概要に従って、パッケージを適切に再パッケージ化する必要があります。過去3年間に彼らがいない場合、彼らは怠beingです。
Braiam 14年

@Braiam欠点は、下位互換性を破るためのLSBおよびFHS標準です。特にlib32に依存しているすべてのパッケージが破損するため、開発者は再パッケージ化するだけでよいと述べるのは愚かなことのようです。
AlexLordThorsen 14年

12

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

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

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


上記の2つのコマンドは、32ビットパッケージをインストールしませんでした。私は何が欠けていますか?
e40

2
:OK、私のために、私は2つの追加コマンドをしなければならなかったapt-get install libc6:i386し、apt-get install libgtk2.0-0:i386(それはGTKアプリだから後者)。
e40
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.