`
rainux
  • 浏览: 4810 次
  • 性别: Icon_minigender_1
  • 来自: 火星
最近访客 更多访客>>
社区版块
存档分类
最新评论

Linux 下使用 Wine 安装运行 TM2008 Beta 及相关问题解决

阅读更多

本文也同步发布到 rainux.org:Linux 下使用 Wine 安装运行 TM2008 Beta 及乱码、与 Windows 共享聊天记录等相关问题的解决

 

前言

腾讯已经发布了官方的 QQ for Linux,虽然有很多问题,例如没有 amd64 版本,功能太弱,聊天记录格式与 Windows 下的 QQ/TM 格式不一致等等,但无疑是 Linux 里使用 QQ/TM 最简单的方案。如果它已经能满足你的需求了,那么不必浪费时间看本文。

精简版本

如果你没时间看我唠叨,精简的版本是:TM2008 Beta 运行需要 Unicode 版本的 IE6、rpcrt4.dll、Visual C++ 2005 SP1 运行库,安装程序需要 GDI+。不可以使用 IEs4Linux ,因为它安装的 IE6 及相关运行库是 Win9x 的 ANSI 版本。必须使用 CrossOver Games 里的 rpcrt4.dll ,然后用 winetricks 安装 msxml3 gdiplus riched20 riched30 ie6 vcrun6 vcrun2005sp1 即可安装运行 TM2008 Beta。

详细版本

只看精简版没搞定?请看详细的(唠叨的)版本:

 

安装 Wine,运行一下 winecfg,让它生成一个干净的 ~/.wine 目录。如果要使用已有的 ~/.wine,请先将其备份。同时确保 winecfg 里设置的 Windows 版本至少是 Windows 2000(我用的是 Wine 1.x 默认的 Windows XP)。

 

获取一份 CrossOver Games 里的 rpcrt4.dll ,将其复制为 ~/.wine/drive_c/windows/system32/rpcrt4.dll(覆盖已有的文件),运行 winecfg,在 Libraries -> DLL Overrides 里将 rpcrt4 设置为 Native (Windows)。

 

下载 winetricks ,使用它安装 IE6 和一些重要的运行库。如果这个过程失败,删除 ~/.wine(或者恢复备份的 ~/.wine)并从头再来。

sh winetricks msxml3 gdiplus riched20 riched30 ie6 vcrun6 vcrun2005sp1

此时如果你有 Windows 上安装好的 TM2008,它已经可以运行了,但是无法登录,会提示“网络连接失败,请检查网络。”。所以还是老老实实用安装程序装一次吧。这里有个很莫名的问题,如果直接使用 Wine 运行 TM2008 安装程序,它很可能会直接崩溃,看不到任何图形界面的提示。而使用 Wine 运行一个其它的程序,例如 cmd.exe 或者 Total Commander,再用这个程序去启动 TM2008 安装程序则不会有任何问题。

中文乱码(空心方框)问题

好吧,终于看到 TM2008 的安装界面了,不过很可能你又会头大了——所有的中文全是空心方框。原因是安装程序界面的字体是被指定为 Tahoma 的,而实际上 Tahoma 字体并不包括中文字符。有两个办法解决,都是 Windows 的技术,把 Tahoma 字体替换成某个中文字体,或者把某个中文字体链接到 Tahoma 上。照这两个片段修改 ~/.wine/system.reg,只需要其中一个。别忘了把中文字体名改成你自己需要的。

[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]
"MS Shell Dlg"="Microsoft YaHei"
"MS Shell Dlg 2"="Microsoft YaHei"
"Tahoma"="Microsoft YaHei"

[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontLink\\SystemLink]
"Tahoma"=str(7):"SimSun.TTC,SimSun\0"

最后还必须把你改的中文字体文件符号链接到 ~/.wine/drive_c/windows/Fonts 目录下,不这么做其它软件都没问题,就 QQ 或 TM 会乱码,该死的硬编码。

查看聊天记录时的性能问题

好了,现在不会有什么问题阻挡你了,TM2008 Beta 安装和启动都非常顺利,使用也很稳定。甚至 QQ2009 Preview4 都可以安装并启动,不过使用时很容易崩溃。但是如果你像我这样疯狂地保存了七八年的聊天记录,你会发现:

  • 每次启动 TM2008 后第一次给任何人发消息都会导致 TM2008 失去响应将近 20 秒钟,之后继续发消息则不会有问题。第一次接收到某人的消息也会同样如此。
  • 任何试图查看聊天记录的操作都会导致 TM2008 消耗 100% CPU 并且很长时间没有反应,等待足够长的时间后才可以看到聊天记录。

这是由于 TM2008 的聊天记录数据库使用了 Windows 的 Structured Storage 技术,而其 API 库 ole32.dll 的 Wine 实现还不完善或者可能性能太低。虽然可以用 winetricks 安装 dcom98 来获取一个 Win9x 的 ANSI 版本的 ole32.dll,但它没法让 Unicode 版本的 TM2008 运行起来。搜遍了网络也找不到在 Wine 里使用 Win2k 以上系统的 ole32.dll 的方法。没办法,为了保持聊天记录的一致性,只有两个选择。要么不在 Linux 里看聊天记录;要么把聊天记录数据库 Msg2.0.db 备份并从 QQ Profile 目录(我的文档\QQ Files\QQ 号码)里删除,让 TM2008 自己生成一个空白的 Msg2.0.db,暂时抛弃历史包袱,以后再到 Windows 下把新的记录导出为备份文件后合并到老的数据库里。

与 Windows 共享聊天记录

如果你还像我这样偶尔会切换到 Windows,希望跟 Windows 下的 TM2008 共享聊天记录数据库,那么有两个办法:

  • 直接在 Linux 里使用 ntfs-3g 读写存放 TM2008 聊天记录的 NTFS 分区。虽然 ntfs-3g 已经号称非常稳定可靠了,但对于聊天记录这种极度个人化的数据我还是宁可保守一些。
  • 创建一个 ext2 分区用来和 Windows 共享数据,在 Windows 下可以用 Ext2 IFS 驱动来访问它。比起私有文件系统 NTFS 的 Linux 版开源驱动来说,当然是开源的 ext2 文件系统的 Windows 版驱动更值得信赖。

用这两种办法都需要在 Linux 和 Windows 里创建 QQ Files 目录的符号链接,Linux 里不必说,ln -s 即可。Windows Vista 以前的版本可以用 Junction 来创建 NTFS 上的符号链接,Windows Vista 可以用自带的 MKLINK。

 

对于我这种非笔记本用户来说使用日志文件系统来抵御意外断电是必须的。按照 Ext2 IFS 的 FAQ ,它也可以读写 ext3 分区。不过比较新的 Linux 发行版的 mkfs.ext3 创建的 ext3 分区 Ext2 IFS 是无法访问的,可能是 ext3 文件系统格式发生了变化。而 Windows 下一些分区工具如 Paragon Partition Manager 或 Acronis Disk Director 创建的 ext3 分区则没有问题。

参考资料

1
0
分享到:
评论

相关推荐

    linux系统下的wine安装方法

    ### Linux系统下的Wine安装方法 #### 一、引言 Wine(Wine Is Not an Emulator)是一款在Linux及类Unix操作系统上运行Windows应用程序的兼容层软件。它通过模拟Windows API函数以及动态链接库(DLLs),使得用户...

    linux 系统下安装IE必备的三个包wine cabextract ies4linux

    本篇文章将详细介绍在Linux系统下安装IE所需的三个关键包:Wine、CabExtract和IES4Linux。 首先,我们要了解Wine(“Wine Is Not an Emulator”)是一个兼容层,它允许Linux用户运行基于Windows的应用程序,包括...

    Wine使用教程,在linux下运行windows程序

    ### Wine使用教程:在Linux下运行Windows程序 #### 一、Wine简介 **1.1 Wine是什么?** Wine(Wine Is Not an Emulator)是一个兼容层,旨在允许在类Unix操作系统(如Linux)上运行Microsoft Windows应用程序。它...

    linux下运行windows程序wine

    Linux 下运行 Windows 程序 Wine Wine 是一个在 Unix/Linux 平台上运行的 Win32 API,允许用户在 Linux 上直接使用 Win32 软件,无需安装 Windows。 Wine 使用虚拟机技术,制造了一个 Windows 运行环境,保证了绝对...

    linux下wine的使用教程

    ### Linux 下 Wine 使用教程 #### 一、Wine 概述与作用 ...通过本教程的学习,希望您能够更好地理解和掌握如何在 Linux 系统下使用 Wine 来运行 Windows 应用程序,从而极大地扩展了 Linux 的功能范围。

    wine tts 安装流程和文件

    Wine是一个开源软件,它允许Linux用户运行Windows应用程序。以下是一份详细的“wine tts”安装流程和涉及的文件说明: 1. **Wine安装**:首先,你需要在Ubuntu上安装Wine。在终端中输入以下命令: ``` sudo apt-...

    微信更新包,在linux安装wine微信使用

    如果在Wine下运行微信存在问题,可以考虑使用其他解决方案,比如使用跨平台的桌面客户端(如Electron WeChat),或者通过远程桌面连接到运行Windows的设备来使用微信。 总之,虽然在Linux上运行微信需要一些额外的...

    war3 linux下用wine运行

    war3 如何在 linux下用wine运行

    wine必备链接库

    在Linux下使用Wine运行使用了UCRT的Windows程序时,需要这个库的存在,否则程序可能无法正常启动或运行。 2. VCRUNTIME140D.dll: 这是Microsoft Visual C++ 2015-2019运行时库的调试版本(D表示Debug)。它包含了...

    使用Wine安装Source Insight

    使用 Wine 安装 Source Insight 标题: 使用 Wine 安装 Source Insight 描述: 在 Ubuntu 系统中使用 Wine 安装 Source Insight 标签: Wine, Source Insight 部分内容: Wine 是一个在 Linux 平台上运行 Windows ...

    wine (linux 下运行windows程序)

    也提供了一个程序加载器,该加载器允许不用任何修改Windows 3.1/95/NT的二进制文件,就可以运行在Intel Unix及其衍生版本下.Wine可以工作在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris. Wine不需要Microsoft...

    Linux Wine

    在基本层面,用户需要知道如何安装Wine,如何使用Wine来运行简单的Windows程序,以及如何解决可能遇到的问题。随着技能的提高,用户可以进一步学习如何配置Wine来提高兼容性,利用Wine的高级设置来优化性能,以及...

    linux wine 使用指南.html

    Linux Wine使用指南是一个非常实用的主题,对于那些希望在Linux环境下运行Windows应用程序的用户来说,这是一个不可或缺的工具。Wine,全称"Windows Emulator",并非一个模拟器,而是一个兼容层,它允许Linux系统...

    Wine让Linux应用Windows程序.pdf

    Wine 的出现解决了 Linux 用户一个长期以来的问题,即如何在 Linux 平台上使用 Windows 程序。Wine 使得 Linux 用户可以在 Linux 平台上使用 Windows 程序,无需在 Linux 和 Windows 之间切换。 Wine 的原理是使用...

    使用wine在linux下安装常用聊天软件等_三步完成安装简单易上手.doc

    在Linux系统中,由于官方提供的QQ客户端存在各种问题,如界面不佳、功能受限以及稳定性问题,许多用户希望能有一种方法在Linux环境下使用类似Windows版本的聊天软件。为了解决这个问题,可以借助Wine工具来实现。...

    wine2.10在Linux上运行Windows应用

    Wine (Wine Is Not an Emulator)[即Wine不是一个模拟器]是一个在Linux和UNIX之上的,Windows 3....注意,Wine不是Windows模拟器,而是运用API转换技术实做出Linux对应到Windows相对应的函数来调用DLL以运行Windows程序。

    Wine安装及配置自动脚本

    Ubuntu9.10 举例(因为它方便,N多东西直接在线安装,省得编译了),其他linux基本相同(不同的就是有些要进行源码安装,但用到的软件是一样的。此脚本根据自己在Ubuntu9.10下安装所写,并测试过!! 脚本中已经...

    wine 在Linux下运行Windows程序。

    如果你想在Linux下运行Windows程序,Wine将是你必不可少的工具!WINE(WINdows Emulator)在X和UNIX之上的,Windows 3.x 和 Windows APIs的实现。它是一个Windows兼容层,通俗的讲,就是一个Windows模拟器。这个层即...

Global site tag (gtag.js) - Google Analytics