「/usr」ディレクトリ用に別々のパーティションを作成するとします。すべてのユーザープログラムを含むディレクトリ。あるオペレーティングシステムから別のオペレーティングシステムに切り替えると(UbuntuからArch Linuxへ、またはその逆)、Arch Linuxでプログラムが実行されますか?
UbuntuにインストールしたBlenderはArch Linuxで実行されますか?
答え1
少しの作業で他のディストリビューションで実行することができます。
プログラムが依存する最も重要なのはライブラリです。これらのライブラリはさまざまなディストリビューションのさまざまな場所に保存されますが、lddコマンドを使用してこれらのライブラリがリンクされている場所を見つけることができます。たとえば、Debian で
実行する場合、ldd の出力は次のようになります。/usr/bin/vlc
linux-vdso.so.1 (0x00007fff11969000)
libvlc.so.5 => /usr/lib/libvlc.so.5 (0x00007f597eb01000)
libvlccore.so.5 => /usr/lib/libvlccore.so.5 (0x00007f597e819000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f597e5fd000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f597e3f9000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f597e0f5000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f597ddf7000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f597dbe1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f597d834000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f597d5ee000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f597d3e6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f597ed37000)
/lib/x86_64-linux-gnu
すべてのライブラリがArchにあり、vlcライブラリが次の場所にあることがわかります。/usr/lib
linux-vdso.so.1 (0x00007fff5a1fe000)
libvlc.so.5 => /usr/lib/libvlc.so.5 (0x00007f84fd7c2000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f84fd5a4000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f84fd3a0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f84fcff5000)
libvlccore.so.7 => /usr/lib/libvlccore.so.7 (0x00007f84fcce1000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f84fcad9000)
libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007f84fc892000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f84fc58f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f84fd9e0000)
ご覧のとおり、バイナリは少し異なる位置にあり、vlcバイナリ自体は異なる依存関係を持ちます。したがって、理論的には、VLCのArchインストールを介してライブラリを正しい場所にリンクして、Debianで実行できます。
次のように変数LD_LIBRARY_PATHを設定して、システムがライブラリを探す場所を拡張することもできます。
export LD_LIBRARY_PATH=/usr/local/libs:$LD_LIBRARY_PATH
答え2
私は彼らがそうは思わない。他のパッケージマネージャとパーティションを混在させると、競合と非互換/usr
性が発生する可能性があります。私が考える唯一の方法は、.tar.gz
汎用ファイルからソフトウェアをインストールする/opt
ことです。しなければならない操作(テストされていません)
答え3
ディストリビューションによっては、通常(常にそうではない)ファイルが別の場所に保存されます。変換パッケージが利用可能エイリアン。
ディスク容量が不足している場合は、ArchパーティションとUbuntuパーティションの両方にBlenderをインストールし、同じ内容を確認し、同じファイルとディレクトリ(およびすべてのサブディレクトリ)にソフトリンクを作成できます。
答え4
まず、異なる分布を混ぜないでください/usr
。各ディストリビューションはその中のコンテンツを制御したいと考えており、ディストリビューションは常にお互いのファイルを上書きします。/usr
ユーザープログラムを含めるのではなく(たとえば、名前の由来ですが、過去40年間にこのディレクトリに含まれているものではありません)、システムプログラムが含まれています。
あるディストリビューションのプログラムは、別のディストリビューションで実行することも、実行されない場合もあります。ディストリビューションにプログラムが使用するライブラリのバージョンが十分に近いかどうかによって異なります。
ホームディレクトリにプログラムをインストール/usr/local
し、特定のバージョンのライブラリが必要ない場合は、両方のディストリビューションで動作します。