ubuntu のバイナリを openSUSE で動かすことは可能でしょうか
Linux向けとして、Ubuntu 向けのバイナリしかないソフトがあります。 それをopenSUSE で動かす、と言うことは可能なのでしょうか。 ribbon
鎌田@翻訳人です。
そのバイナリの素性次第だと思います。
CPUから見て対応可能なアーキテクチャのバイナリであり、
かつスタティックリンクであれば、動かすことは可能です。
(ディレクトリ構造等の環境差異で動作しない場合を除く)
スタティックリンクかどうかはfileコマンドで確認できます。
$ file /somewhere/dir/binary
-> "statically linked" が表示されればOKです。
ダイナミックリンクの場合は、そのバイナリが求めるライブラリ類が
それぞれ必要です。lddコマンドで確認できます。
(例)
$ ldd /usr/bin/ls
linux-vdso.so.1 (0x00007ffcaf556000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe2a9011000)
libcap.so.2 => /usr/lib64/libcap.so.2 (0x00007fe2a8e07000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe2a8a12000)
libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007fe2a8789000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fe2a8585000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe2a945d000)
無理矢理でよければ、どこかのディレクトリ以下にUbuntuの一式を展開して、
chroot経由で動かす方法もあります。
以上です。
On Wed, 30 Nov 2022 13:59:39 +0900
ribbon
Linux向けとして、Ubuntu 向けのバイナリしかないソフトがあります。 それをopenSUSE で動かす、と言うことは可能なのでしょうか。
ribbon
--
Yasuhiko Kamata
正木です。
「可能か」というのが質問の本当の主旨であるならば、
答えは「はい」です。
「どうすれば動かせるか」というのが真意があるならば、
その方法は都度違うので答えるのは難しいです。
Linuxカーネルは互換性が維持されているため、
そのアーキテクチャで動くバイナリで、なおかつ純粋にバイナリでのみ提供されているのであれば
大抵の場合はそのまま動きます。ファイル配置の問題があったりするかもしれないので、
インストール作業は手作業になるかもしれませんが、大したことではないでしょう。
どうしてもUbuntuでしか動かないものであれば
(かつ、現在のカーネルパラメータで動作するものであれば)
汎用性のある方法はUbuntu環境を借用することです。
まず、debootstrapを導入します。
これは、Debian、あるいはUbuntuでなくても利用可能なものです。
そして、例えば次のようにします。
# debootstrap --include=systemd-container --components=main,universe jammy ubuntu-container http://archive.ubuntu.com/ubuntu/
このようにして作ったコンテナは
# systemd-snapwn -D ubuntu-container
のようにして起動可能ですが、この作業はアップデート時などに必要となるだけです。
コンテナ経由でバイナリを動かす方法もありますが、ほとんどの場合そのようにせずとも
$ export LD_LIBRARY_PATH=/var/lib/machines/ubuntu-container/lib:/var/lib/machines/ubuntu-container/usr/lib:$LD_LIBRARY_PATH
$ PATH=$PATH:/var/lib/machines/ubuntu-container/bin:/var/lib/machines/ubuntu-container/usr/bin
$ ./foo-binary
のようにすれば動作するでしょう。
On Wed, 30 Nov 2022 13:59:39 +0900
ribbon
Linux向けとして、Ubuntu 向けのバイナリしかないソフトがあります。 それをopenSUSE で動かす、と言うことは可能なのでしょうか。
ribbon
On Wed, Nov 30, 2022 at 07:49:03PM +0900, MASAKI Haruka wrote:
正木です。
大抵の場合はそのまま動きます。ファイル配置の問題があったりするかもしれないので、 インストール作業は手作業になるかもしれませんが、大したことではないでしょう。
やってみました。ターゲットなプログラムは dpkg になっていたので、 それを Ubuntu上でインストール。出てきたディレクトリをまるごと openSUSE に持ってきたらちゃんと動きました。 全部は確認していませんが、主要なところは動いている感じです。 ありがとうございました。 ribbon
participants (3)
-
MASAKI Haruka
-
ribbon
-
Yasuhiko Kamata