Ubuntu 22.04运行X3 Terran War Pack的start.sh提示找不到X3TC_config
运行GOG版《X3 Terran War Pack》提示
./X3TC_config: No such file or directory 系统环境
- Ubuntu 22.04(已更新升级)
- bash版本:5.1.16
错误现象
在游戏目录执行启动脚本时出现报错:
dah@jellyfish:~/GOG Games/X3 Terran War Pack$ bash start.sh Running X3: Terran War Pack start.sh: line 20: ./X3TC_config: No such file or directory
文件位置与权限确认
X3TC_config实际路径为/home/dah/GOG Games/X3 Terran War Pack/game/X3TC_config,权限已设置为可执行:
dah@jellyfish:~/GOG Games/X3 Terran War Pack$ ls -afl game | grep X3TC_config -rwxrwxr-x 1 dah dah 5592 Mar 2 10:08 test_X3TC_config -rwxrwxr-x 1 dah dah 502384 Mar 2 10:06 X3TC_config
启动脚本start.sh内容
#!/bin/bash # GOG.com (www.gog.com) # Game # Initialization CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "${CURRENT_DIR}" source support/gog_com.shlib # Game info GAME_NAME="$(get_gameinfo 1)" VERSION="$(get_gameinfo 2)" VERSION_DEV="$(get_gameinfo 3)" # Actions run_game() { echo "Running ${GAME_NAME}" cd "${CURRENT_DIR}/game" chmod +x * ./X3TC_config } default() { run_game } # Options define_option "-s" "--start" "start ${GAME_NAME}" "run_game" "$@" # Defaults standard_options "$@"
调试过程
修改脚本添加当前目录输出,确认路径指向正确:
修改后的run_game函数:run_game() { echo "Running ${GAME_NAME}" echo "${CURRENT_DIR}" # echo current dir cd "${CURRENT_DIR}/game" chmod +x * ./X3TC_config }执行结果显示路径正确,但报错依旧:
dah@jellyfish:~/GOG Games/X3 Terran War Pack$ bash start2.sh Running X3: Terran War Pack /home/dah/GOG Games/X3 Terran War Pack start2.sh: line 21: ./X3TC_config: No such file or directory添加
set -x调试,确认已进入game目录且文件被识别:+ run_game + echo 'Running X3: Terran War Pack' Running X3: Terran War Pack + cd game + chmod +x 01.cat 01.dat ... X3TC_config ... + ./X3TC_config start.sh: line 20: ./X3TC_config: No such file or directory对比同平台可正常运行的GOG游戏脚本,逻辑一致但此游戏报错。
解决方案
这种“文件存在但提示不存在”的问题,在64位Linux系统上几乎都是缺少32位运行库导致的——X3这类老游戏多为32位程序,而Ubuntu 22.04默认只安装64位库。
步骤1:安装基础32位依赖
执行以下命令启用32位架构并安装核心库:
sudo dpkg --add-architecture i386 sudo apt update sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386 libsdl2-2.0-0:i386
步骤2:排查缺失的具体库
如果安装基础库后仍报错,可直接运行测试程序查看详细缺失信息:
cd ~/GOG Games/X3 Terran War Pack/game ./test_X3TC_config
根据输出的缺失库名称,用apt install安装对应i386版本的库即可(例如缺失libopenal1则执行sudo apt install libopenal1:i386)。
备选方案:使用完整路径执行
若目录切换存在未知问题,可修改脚本中执行命令为完整路径,避免切换目录的影响:
将run_game函数中的./X3TC_config替换为:
"${CURRENT_DIR}/game/X3TC_config"
内容的提问来源于stack exchange,提问作者abdullah-van-damme
相关产品推荐
相关产品推荐

