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
).
해당 라이브러리가 배포판에 없으면 외부 소스에서 가져와야 합니다. 그러나 운영 체제 라이브러리는 단일 바이너리로 인해 쓸모가 없습니다.
대부분의 경우 이러한 라이브러리는 동일한 배포판의 다른 버전에 존재합니다(데비안에서는 다음을 수행할 수 있습니다).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
이 추가 디렉토리를 공유 라이브러리 검색 경로에 제공할 수 있습니다.