Steam経由でFedora 26にXCOM2をインストールしましたが、動作しません。インストールされたバイナリを手動で実行しましたが、エラーが発生しました。
./XCOM2: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
その後、システム(x64)のバージョンをシステムに手動で接続しようとしましたが、~/.local/share/Steam/steamapps/common/XCOM 2/lib/x86_64
ELFクラスエラーについて文句を言いました(私のバージョンはi686用の32ビットlibのようです?!)。
/lib
最初にlibcryptoの32ビットバージョンを使用する理由とXCOM2が機能する方法は?私はFedoraに初めて触れていて、この問題を自分で見つけようとしていますが、どうすればよいのかわかりません。まずは本当にありがとうございました!
答え1
まず、
ldd ./XCOM2
バイナリをリンクしたいライブラリが表示されます。どのライブラリが見つからないかを確認できます。
次のコマンドを使用して、共有ライブラリのアーキテクチャを確認できます。
file -szL /lib/libsomething.so.a.b.c
i386 ライブラリまたは amd64 ライブラリであるかどうかを通知します。バイナリも同じですXCOM2
。
スキーマが一致する必要があります。ldd
存在するものと存在しないことが示されましたが。
ほとんどのディストリビューションは、少なくとも限られたマルチアーキテクチャサポートを提供します。つまり、システムは同時に複数のアーキテクチャのライブラリとバイナリを持つことができます。
見つからないライブラリを含むパッケージを見つけます(これはrpmベースの展開でこのツールを使用するscout
か、debベースの展開を使用して実行できますapt-file
)。これをインストールします(rpmで、yum
debianで、使用apt-get
)。
そのライブラリがディストリビューションにない場合は、外部ソースからインポートする必要があります。しかし、オペレーティングシステムライブラリは単一のバイナリのため役に立ちません。
ほとんどの場合、これらのライブラリは同じディストリビューションの異なるバージョンに存在します(Debianでは次のことができます)。http://packages.debian.org、他のディストリビューションの場合はわかりません)。パッケージをダウンロードして手動で解凍し(rpmでは、コマンドはrpm2cpio something.rpm|cpio -i -d
debian dpkg -x something.deb; tar -Jxvf data.tar.xz
:)必要なライブラリファイルを指定されたディレクトリにコピーします。
バイナリファイルにプレフィックスを追加する
LD_LIBRARY_PATH=/here/are/my/additional/libs ./XCOM2
まずXCOM2
、この追加ディレクトリを共有ライブラリ検索パスに提供できます。