Hackerl / Wine_Appimage

Appimage For Wine
480 stars 69 forks source link

段错误,核心已转存 #7

Closed GreenHatHG closed 5 years ago

GreenHatHG commented 6 years ago

➜ wine sudo ln -s /home/cc/wine/wine64-x86_64.AppImage /usr/bin/wine

➜ wine chmod +x TIM-x86_64.AppImage ➜ wine ./TIM-x86_64.AppImage Create ld-linux.so.2 ln: /tmp/.mount_wine1EXRWc/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.25' not found (required by ln) Create ld-linux-x86-64.so.2 ln: /tmp/.mount_wine1EXRWc/lib/x86_64-linux-gnu/libc.so.6: versionGLIBC_2.25' not found (required by ln) /tmp/.mount_wine1EXRWc/AppRun:行44: /tmp/.mount_wine1EXRWc/bin/wine: 没有那个文件或目录 /tmp/.mount_wine1EXRWc/AppRun: 行 44: 8927 退出 127 "$HERE/bin/wine" "$@" 8928 段错误 (核心已转储)| cat Wine Cleaning up /tmp/.mount_wine1EXRWc/AppRun: 行 37: 8936 段错误 (核心已转储)cat Cleaning up

请问这个是什么回事 OS: Manjaro 17.1.10 Hakoila Kernel: x86_64 Linux 4.14.39-1-MANJARO XFCE4

Hackerl commented 6 years ago

可以看看我的AppRun脚本:

#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"

#添加动态链接库路径
export LD_LIBRARY_PATH="$HERE/usr/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/lib/i386-linux-gnu":$LD_LIBRARY_PATH

#Sound Library
export LD_LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu/pulseaudio":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu/alsa-lib":$LD_LIBRARY_PATH

LD_SO="/tmp/ld-linux.so.2"

if [ ! -e $LD_SO ] ; then
    echo "Create ld-linux.so.2"
    #ln 创建软连接
    ln -s $(readlink -f "$HERE"/lib/ld-linux.so.2 ) $LD_SO
fi

前面修改了链接库路径 LD_LIBRARY_PATH。所以执行 ln 命令时,你系统的 ln 程序默认使用的我打包的 libc.so。由于我打包的libc.so是在debian9下的,而你系统的ln使用的libc版本较高,所以不兼容。 你可以执行

./wine64-x86_64.AppImage --appimage-extract

解开我的appimage,修改AppRun,将 ln 的命令放到前面:

#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"

LD_SO="/tmp/ld-linux.so.2"

if [ ! -e $LD_SO ] ; then
  echo "Create ld-linux.so.2"
  ln -s $(readlink -f "$HERE"/lib/ld-linux.so.2 ) $LD_SO
fi

export LD_LIBRARY_PATH="$HERE/usr/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/lib/i386-linux-gnu":$LD_LIBRARY_PATH

#Sound Library
export LD_LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu/pulseaudio":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu/alsa-lib":$LD_LIBRARY_PATH

function finish {
  echo "Wine Cleaning up"
  rm $LD_SO
}
trap finish EXIT

#wait wine finish
"$HERE/bin/wine" "$@" | cat

另外wine64-x86_64.AppImage包含了32、64位执行环境,使用 ln 创建了32、64的 ld.so。 上面实例是32位,你可以参照着修改。

Hackerl commented 6 years ago

谢谢你提供的错误,我也疏忽了,应该将 ln 语句放到前面。

Hackerl commented 6 years ago

我已经重新打包了,可以直接去 Releases 下载

GreenHatHG commented 6 years ago

好的,谢谢

GreenHatHG commented 6 years ago

你好,还是一样报错,又得麻烦了 ➜ wine sudo rm /usr/bin/wine ➜ wine chmod 777 wine64-x86_64.AppImage ➜ wine sudo ln -s ~/wine/wine64-x86_64.AppImage /usr/bin/wine ➜ wine chmod a+x TIM-x86_64.AppImage
➜ wine ./TIM-x86_64.AppImage
Create ld-linux.so.2 ln: 无法创建符号链接'/tmp/ld-linux.so.2': 文件已存在 Create ld-linux-x86-64.so.2 ln: 无法创建符号链接'./ld-linux-x86-64.so.2': 文件已存在 /tmp/.mount_wineDRrqCe/AppRun:行44: /tmp/.mount_wineDRrqCe/bin/wine: 没有那个文件或目录 /tmp/.mount_wineDRrqCe/AppRun: 行 44: 17535 退出 127 "$HERE/bin/wine" "$@" 17536 段错误 (核心已转储)| cat Wine Cleaning up /tmp/.mount_wineDRrqCe/AppRun: 行 19: 17539 段错误 (核心已转储)cat Cleaning up

GreenHatHG commented 6 years ago

开发者你好,我不懂appimage打包那些东西,我只是普通的linux使用者,可能说的一些拆包不是很懂,抱歉

Hackerl commented 6 years ago

/tmp/ld-linux.so.2,/tmp/ld-linux-x86-64.so.2文件已存在,你尝试删除这两个文件再试试。

GreenHatHG commented 6 years ago

日常凉凉 ➜ wine ./TIM-x86_64.AppImage Create ld-linux.so.2 ln: 无法创建符号链接'/tmp/ld-linux.so.2': 文件已存在 Create ld-linux-x86-64.so.2 ln: 无法创建符号链接'./ld-linux-x86-64.so.2': 文件已存在 /tmp/.mount_wineM85INa/AppRun:行44: /tmp/.mount_wineM85INa/bin/wine: 没有那个文件或目录 /tmp/.mount_wineM85INa/AppRun: 行 44: 9835 退出 127 "$HERE/bin/wine" "$@" 9836 段错误 (核心已转储)| cat Wine Cleaning up /tmp/.mount_wineM85INa/AppRun: 行 19: 9839 段错误 (核心已转储)cat Cleaning up ➜ wine rm /tmp/ld-linux.so.2 ➜ wine rm ./ld-linux-x86-64.so.2 ➜ wine ./TIM-x86_64.AppImage
Create ld-linux.so.2 Create ld-linux-x86-64.so.2 wine: could not exec wineserver /tmp/.mount_wineKoUn91/AppRun: 行 44: 9907 退出 1 "$HERE/bin/wine" "$@" 9908 段错误 (核心已转储)| cat Wine Cleaning up /tmp/.mount_wineKoUn91/AppRun: 行 19: 9913 段错误 (核心已转储)cat Cleaning up

Hackerl commented 6 years ago

你能试一下32位的 wine 吗? https://github.com/Hackerl/Wine_Appimage/releases/download/zero/Wine-x86_64.AppImage

Hackerl commented 6 years ago

我咋 Live CD 中测试通过,只是中文显示存在问题。 screenshot from 2018-05-12 12-28-15

GreenHatHG commented 6 years ago

➜ Downloads sudo ln -s /home/cc/Downloads/Wine-x86_64.AppImage /usr/bin/wine [sudo] cc 的密码: ➜ Downloads cd ➜ ~ cd wine ➜ wine ./TIM-x86_64.AppImage /tmp/.mount_TIM-x8C1ylK4/AppRun:行24: /usr/bin/wine: 权限不够 Cleaning up ➜ wine sudo chmod 777 /usr/bin/wine ➜ wine sudo chmod 777 /usr/bin/wine ➜ wine ./TIM-x86_64.AppImage
Create ld-linux.so.2 Wine Cleaning up Cleaning up ➜ wine ./TIM-x86_64.AppImage Create ld-linux.so.2 Wine Cleaning up Cleaning up

开发者,这样的话是没有报错了,但是打不开,郁闷

Hackerl commented 6 years ago

你多启动几次试试,貌似TIM有时会这样

Hackerl commented 5 years ago

@GreenHatHG 请问你运行成功了吗

GreenHatHG commented 5 years ago

我现在已经不用了,可能无法告诉你情况了,抱歉