Linux用户或多或少都会遇到Win文件兼容和软件缺乏的问题,当然有的时候并不是缺乏,可能是功能强大但是太Geek。有时候自己还是会wine一些东西来用,但是就目前来说并不是所有的东西都能wine成功,大家有哪些东西是wine过的呢?来讨论讨论吧~PS:我自己wine的东西不是很多,一共4个。
- 早些时候受不了.doc就干脆wine了一个M$ Office03,还算成功
- wine了一个Lingoes,我自己机子上StarDict有时候会莫名其妙挂掉
- 还有就是wine了一个迅雷5,还蛮好用的
- 以前压缩文件中文会乱码,总是搞不定就wine了一个WinRAR,不过现在有了PeaZip。
结果没有时间玩, 悲剧.
2012/1/1 ghosTM55 <ghost...@gmail.com>:
yy语音
在 2012-1-1 下午1:28,"机械唯物主义 : linjunhalida" <linjun...@gmail.com>编写:
gog.com 买的游戏都试过了一遍, 结果能够wine的就几个:
fallout2
icewind dale2
sacred gold
neverwinter night
结果没有时间玩, 悲剧.
2012/1/1 ghosTM55 <ghost...@gmail.com>:
>
>
> 2012/1/1 周金阳小熊猫 <pandacho...@gmail.com>
>>
>>
>> Linux用户或多或少都会遇到Win文件兼容和软件缺乏的问题,当然有的时候并不...
2012/1/1 Chaos Eternal <chaose...@shlug.org>:
如果有什么软件不能wine成功,可以给wine报一个bug。如果不去报bug,自己瞎折腾意义不大,除非折腾wine的源代码。
另外,wine有一家商业公司在支持,叫做Codeweavers,这家公司有一个商业版的wine叫做CrossOver,我去年花了80美元购买了CrossOver两年的技术支持,以付费用户的身份要求Codeweavers改善对网银的支持,这一年来Codeweavers花了很大的力气在改善wine
builtin iexplore上。在跟Codeweavers公司沟通的过程中,我发现他们还是很敬业的,花钱买他们的服务是值得的。
其实wine跟别的自由软件一样,要获得最佳的效果跟最好的支持,要么贡献力量,要么花钱。以Libreoffice为例子,有的朋友在遇到Libreoffice跟MS
office格式不兼容的问题时,没有意识到需要报一个bug,殊不知这类不兼容的问题如果没人去报bug,可能永远不会被修复,因为开发者本人可能不是Libreoffice的用户。Wine也一样,开发者感兴趣的软件跟我们感兴趣的软件不一定相同,如果不去报bug,可能我们需要的软件永远无法在wine上运行。如果主动去报bug的话,有相当多的问题都是能得到比较快的解决的,比如程序崩溃的问题,有的只是因为缺少一个stub函数,一小时内就可以修复。
wine的开发很迅速,带来的问题是regression很多,而商业版的CrossOver会维护一个支持软件列表,列表内的软件都经过测试,尽量保障每次升级CrossOver只有好处没有坏处。相信很多朋友都遇到过升级Linux发行版带来新的bug的问题,如果有人愿意提供付费支持来保证Linux发行版的每次升级都经过充分测试,我相信愿意花钱的朋友也是很多的。比起亲力亲为报告每一个bug甚至自己写补丁,我认为花钱换取一个稳定而仍然自由开源的软件是一个不错的选择。
更多关于Wine和网银的信息,可以从这里获取:
http://groups.google.com/group/non-ie-online-banking/topics
虽然有进展,但是离目标还很远,需要更多朋友贡献技术或贡献dollars :p
2012/1/1 周金阳小熊猫 <pandacho...@gmail.com>:
> Linux用户或多或少都会遇到Win文件兼容和软件缺乏的问题,当然有的时候并不是缺乏,可能是功能强大但是太Geek。有时候自己还是会wine一些东西来用,但是就目前来说并不是所有的东西都能wine成功,大家有哪些东西是wine过的呢?来讨论讨论吧~
--
Regards,
Qian Hong
-
Sent from Ubuntu
http://www.ubuntu.com/
这也是一个bug,如果兄弟乐意,可以给LibreOffice报bug :)
性能问题也是bug,如果能够用性能分析工具分析一下反应慢的原因主要在什么地方,可以给Wine报一个bug。
崩溃问题是属于优先级比较高的bug,如果乐意给Wine报告一下,应该能够比较快得到解决的 :)
--
此致
张建雷 敬上
--
Thanx & Regards,
小溪同学
ubuntu 一开始就不是面向开发者。所以花很多时间在效果上。而这些效果都是开发者不喜欢的:D
你可以用其它的GUI :D
在 2012年1月1日 下午1:16,周金阳小熊猫 <pandacho...@gmail.com> 写道:
> Linux用户或多或少都会遇到Win文件兼容和软件缺乏的问题,当然有的时候并不是缺乏,可能是功能强大但是太Geek。有时候自己还是会wine一些东西来用,但是就目前来说并不是所有的东西都能wine成功,大家有哪些东西是wine过的呢?来讨论讨论吧~
--
May the source be with you.
孙锡麟,SUN Xilin, undergraduate student at HKPolyU
使命召唤4…… 还算流畅,不过和直接在 Windows 上运行不能比。
在 2012年1月5日 上午11:45,ghosTM55 <ghost...@gmail.com> 写道:
> 你wine COD4? 猛士...
Wine itunes相关的资料:
[1] Wine Appdb中对itunes的介绍:
http://appdb.winehq.org/objectManager.php?sClass=application&iId=1347
[2] Wine Bugzilla中关于 iturnes的bug:
http://bugs.winehq.org/buglist.cgi?quicksearch=itunes&list_id=24132
[3] iTunes在Wine中无法识别设备,这是因为Wine仍然不支持Windows原生usb驱动
Bug 9649 - iTunes 7 doesn't recognize iPod
http://bugs.winehq.org/show_bug.cgi?id=9649
[4] Wine对usb驱动的支持一直在缓慢开发中: http://wiki.winehq.org/USB 非常慢,非常慢,至少研究了5,6年了...
曾经有一个微软前员工,到Wine的开发者列表中抱怨Wine怎么还不支持USB驱动... (该前员工现在是坚定的自由软件支持者)
一些建议:
- 如果itunes对你很重要,那么可以去看看[2]中的bug列表,有的bug已经有了已知的workaround方法,不用自己折腾地太辛苦.
Bugzilla其实是找workaround方法最好的地方.
- 如果你遇到的问题在bug列表中没有找到相同的,可以去报一个bug
- 如果itunes对你非常非常重要,那么可以根据自己的情况,选择合适的方式,帮助Wine改进:
* 如果技术好,可以尝试自己研究代码,写patch,修复bug
* 如果时间多,可以到Bugzilla中,帮忙找到长时间没人处理的bug,尝试重现bug,发现重复和无效的bug并提醒开发者关闭,帮助开发者减轻工作量,让开发者可以专注到开发上
* 如果钱多,可以买一份CrossOver,要求Codeweavers改善对iTunes的支持,Codeweavers可以调整开发的优先级,或者雇更多的人全职开发.
- 如果以上途径都不适合你,那么就双系统或虚拟机吧,你懂的 :)
- 如果既不想用Wine又不想用Windows又还没有苹果,那就写信给苹果叫他们开发Linux版itunes~
前两个建议不仅适合Wine,也适合其他各种各样的开源软件,例如Libreoffice,ibus,firefox,chrome,等等.第三个建议,适合有商业公司提供付费服务的开源软件,例如Scilab.
不過那個裡面提到的Songbird已經不再支持Linux
不過又有一個叫Nightingale的東西出來了⋯⋯
http://getnightingale.com/
我個人從純粹技術的角度,覺得並不是那麼簡單的,因為我現在就在用OSX(一些信息未經仔細查證,請大家原諒!)。
OSX和Linux直接基本兼容的,我知道的有
1、POSIX的那些命令工具、C API等
2、 Bash/Perl/Python等腳本,如果沒有調用系統相關性很強的東西
而不盡相同的有
1、GUI,用的Cocoa。GNUstep有嘗試在Linux下實現,但是不瞭解現狀如何,一般人不會去用吧⋯⋯
2、D-BUS(我不知道OSX那裡對應的叫什麼),反正肯定也是不一樣的。
3、目錄組織於軟件管理方式。
然后看收益. linux版本开发出来, 能够给apple带来什么? 用linux的人有多少能够转化成apple的付费用户?
带来的收益我想在整体市场份额中不会超过1%吧.
所以apple不开发linux版本是理所当然的, 真的开发了我会感到非常地奇怪.
2012/1/6 Joseph Young <yangk...@gmail.com>:
比較認同,我這幾天一直在糾結一個問題,Linux和FOSS的dependency是否太大
FOSS隨時更新,時不時有API/ABI
Break的情況,對傳統的閉源開發模式來說,成本是很大的。閉源開發者不僅要完成在自己環境中的編碼和測試,而且基本要自行完成不同OS的兼容測試、打包工作。
Mac OS X/Windows版本比較少,相對注重API/ABI的穩定,所以閉源開發者自己搞定還比較容易
而Linux的話,其實兼容測試和打包的工作,有很多應該是發行版的maintainer在做,但是這是在軟件本身是開源的情況下。閉源開發者就只有自己搞定了。
http://en.wikipedia.org/wiki/Usage_share_of_operating_systems
Linux是一個小眾的系統,閉源開發(至少看起來)還不容易,何來興趣?
Linux社區當前的解決辦法,似乎是“自己動手,豐衣足食”。但這與成為大眾系統是有點矛盾的。比如說,DC廠商不做Linux的支持軟件,咱自己做Shotwell、digiKam等等。但是我覺得,如果買了DC覺得用閉源支持軟件沒問題的,應該想辦法讓原廠支持Linux,本來就是他們的責任。如果覺得DC軟件應該開源的,有開源強迫症的,請在Mac
OS X/Windows上推廣開源DC軟件,其實digiKam好像在Mac OS
X/Windows上是可以用的。(純粹是個人觀點,不求改變任何人)
不過,當然有應用Web化的趨勢(雖然國內IE-Only仍頑固),例如Web
QQ的流行,甚至於輸入法也可以直接用在線版。這使得用Linux的障礙越來越少,如果Linux的用戶數量能達到20%左右,世界變得這麼還真不好說:)
效率问题也是bug,可以向wine报告。
wine项目一直在改进效率,可以是是新版本的有没有改善。
分各种情况,我罗列一些我了解的情况,不是很全面,请其他朋友指正和补充:
1.
- 某个程序不能正常运行,是因为Wine缺了某个dll,而这个dll恰好不是那么重要,解决问题只需要一个stub的dll,这种情况很快就能解决。
例子: 工行网银安装包,安装过程需要scaddlg.dll,没有这个dll会出错,但是在登陆工行网银的时候不需要这个dll,只有在使用u盾的时候才需要。
Bug 26026 - Installation of ICBC online bank Active Control needs
scarddlg.dll [1]
这个bug在wine-1.3.13发布后报告,在wine-1.3.18中修复,也就是12个星期后修复。事实上修复这个bug需要的时间很短,但是开发者都很忙 :)
- 如果Wine缺少的dll很重要,但是比较难实现,实现这个dll会有比较大的专利风险,那么可能会很多年都没修复,比如mfc42.dll,还有比如
Bug 19816 - Add implementation of MSVBVM60
2. 程序崩溃
- 程序崩溃分为因Wine缺少某个函数引起的崩溃,和因wine的api实现有bug引起的崩溃。
- 如果Wine缺少的某函数不是很重要,只需一个stub就能解决问题
例子:招商银行客户端依赖ntoskrnl.exe.IoGetCurrentProcess这个函数,这个函数可能只有在使用u盾的时候才需要,Wine实现了一个stub函数。
Bug 27754 - PbSetup60.exe need unimplemented function
ntoskrnl.exe.IoGetCurrentProcess [2] ( 这是一个重复的bug,已经有人报了 Bug 13289 -
Multiple apps/games need ntoskrnl.exe IoGetCurrentProcess (Zeus
maplestory, BASCOM AVR Demo) )
同类的还有 Bug 27270 - Unimplemented function
ntoskrnl.exe.ObReferenceObjectByName called by Activex control of
cebchina online bank 和 Bug 27280 - BHDCInstall_per can not install
(unimplemented function cfgmgr32.dll.CM_Get_Device_ID_List_SizeA ) 等等。
这些bug的修复都不难,关键是开发者要有时间和兴趣去修复,以及有用户去报告。对于这类不重要的函数,通常依赖的程序不多,因此如果没有用户去报告bug,开发者可能不会去实现。
- 如果Wine缺少的函数是msvc运行库函数,那肯定是很重要的函数,会有很多程序依赖,开发者肯定会开发,但是人手不足是个问题。
例子:工行安全控件安装程序缺少某个msvc运行库函数: Bug 27281 - crash while install
ICBC_FT_UShield2_Install.exe ( unimplemented function
msvcp60.dll.??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z
) [3]
除了msvc库函数以外,还有其他一些重要的函数,就算我们不去报告bug,开发者也会去实现,因为依赖的程序比较多。但是,并不是说这类重要的函数我们就反而不必关心了,想反,重要的函数更需要有多人去在不同的程序上测试,保证不出问题。
- 如果程序崩溃是因为Wine的实现有bug,那么开发者也会很重视,但是修复的难度就难以预测了。
例子:CSF播放器在Wine中崩溃,因为msvc库的某个函数实现有错。Bug 28294 - XPR108258.exe (csf
player installer) crash [4]
总的来说,崩溃问题一定是wine开发者重视的问题,至于有没有时间精力修复又是令一回事了。
3. wine程序的界面显示问题。
- 如果是Wine的问题,那么Wine会修复,例如Aliwangwang在Wine下显示错乱严重: Bug 27251 -
Aliwangwang display ugly [5] .
- 有时候可能是窗口管理器的问题,那么wine开发者会把bug关掉,建议给窗口管理器报bug, 例如 Bug 29401 -
thunder installer in unity doesn't draw itself on start up
。这其实是unity的bug: unity doesn't refresh the opacity : affects wine
thunder installer [7] .至于unity的开发者修不修,那又是令一回事了。
- 有些显示问题比较难调试,有影响不大,优先级就不高,不过仍然应该给Wine报bug。
4. 音频驱动的问题。Linux下的音频驱动问题比较多,导致Wine的音频驱动问题也比较多,不过wine计划在今年wine-1.4发布前比较完美地解决音频驱动的问题,因此报告关于声音的问题都会得到比较及时的处理
5. directx的问题。很多游戏需要directx,wine的directx一直在活跃开发中,这方面的bug也会得到比较及时的处理。
6. iexplore的问题。Wine去年对内置iexplore做了很多改进,凡是跟iexplore相关的问题,尤其是跟网银相关的问题,wine都会积极处理。目前主要是Jacek
Caban一个人在做,严重缺乏人手。注意,这里说的iexplore不是MS IE6,IE7,IE8等,而是Wine内置的iexplore。
例如: Bug 26000 - Builtin IE cannot display ActiveX Controls from ICBC
online bank (fixed in gecko)
7. 设计到底层驱动的问题,wine开发者很可能会告诉你wine不支持kernel driver并且关闭bug。
更一般的,可以看看 http://wiki.winehq.org/WineReleaseCriteria
只要是在wine开发者计划中的,就会得到比较快的响应。
开发者的计划,则依赖于开发者个人的兴趣,用户需求是否广泛,以及是否有人愿意付费等因素。
除了上面所列举的,还有一种情况会得到比较快的处理,就是regression:http://source.winehq.org/regressions
( Wine regression shame hall )
有时候一个程序在老版本的wine中运行正常,在新的wine中反而不能用了,这时候就该报一个bug。论坛上可能会有朋友分享wine的经验时说某某软件要在老版本的wine中用,不能在新版本的wine中使用,其实这样的分享是会带来误导的,更好的做法是去报一个bug,然后在文章中告诉读者这是一个已知的bug,应该会在将来修复。
报bug的时候,尽量多搜索,不要重复报bug. 如果是程序崩溃,要先安装debug
info再报bug。不要在bug正文中贴log,要以文本附件形式上传到bugzilla中。开发者如何响应,很大程度还取决于用户怎么报bug以及怎么回应开发者。报bug不专业没关系,只要积极回应开发者的要求,尽量提供详细的信息给开发者,就能让bug的信息越来越充足,这是一个交互的过程。
如果报bug之前认真阅读过http://wiki.winehq.org/Bugs
,并且完全照做了,那么一定会得到响应的。如果暂时得不到响应,不是开发者不想里你,而是实在太忙了。可以考虑做一些力所能及的事情帮助开发者从忙碌中解救出来。
最后,可能有的朋友比较关心的问题是:我报一个bug,要多久能得到回复,多久完全修复?
这个问题是最不好回答的,太多不确定性因素了,只能给一个大概的统计性的答案:
类比“半衰期”这个概念,我们可以提出一个“半数bug修复期”概念:假设你报了100个bug,那么一年之后,平均大约有50个会被修复。
也就是说,“半衰期”大概是一年。这个数据是根据我自己报的bug统计的,没有统计过所有的bug。不过,bugzilla中的bug只会越来越多,因为开发一直不停止,开发者人数不算多,但是Linux用户越来越多,有报bug意识的人也越来越多。
对于其他开源软件,报bug也有很多共通的地方,可以搜一下“bug 生命周期”,“如何有效地报bug”等文章,可以看一下Ubuntu
中文wiki上Aron写的报bug的教程,可以把“提问的智慧”一文中指出的要点当作报bug的要点。
总之,你愿意付出的越多,你的bug得到解决的几率就越大,速度就越快。
[1] http://bugs.winehq.org/show_bug.cgi?id=26026
[2] http://bugs.winehq.org/show_bug.cgi?id=27754
[3] http://bugs.winehq.org/show_bug.cgi?id=27281
[4] http://bugs.winehq.org/show_bug.cgi?id=28294
[5] http://bugs.winehq.org/show_bug.cgi?id=27251
[6] http://bugs.winehq.org/show_bug.cgi?id=29401
[7] https://bugs.launchpad.net/ubuntu/+source/unity/+bug/907449
[8] http://bugs.winehq.org/show_bug.cgi?id=26000
2012/1/7 Qian Hong <frac...@gmail.com>:
这个词我找不到合适的中文翻译,我第一次见到这个词是在Wine中知道的,后来我在rpcgen的帮助文档中也看到了这个词,发现在不同的地方含义似乎不完全一样。对于Wine中的stub,我的理解是这样的:
我有一个win32程序:
主要做这件事 do_some_important_things (a ,b);
顺便做一件不重要的事 do_an_unimportant_thing (c ,d)
其中do_some_important_things在wine的某个dll中实现了,而do_an_unimportant_thing还没实现,由于该程序是在windows下编译和链接的,因此编译的时候不会有问题(windows的头文件中肯定有这个函数的原型),链接的时候也不会有问题(windows的库的符号表有这个函数),可是拿到wine上运行,就出问题了,因为这个程序将调用一个不存在的函数。
解决的方法是,在wine相应的dll中,实现一个同名的函数,只保证原型正确,但是什么事都不做:
int do_an_unimportant_thing ( int c, int d)
{
printf("fixme: I'm a stub, if you can help please send a patch. Some
body is calling me, c is %d, d is %d, but I do nothing\n", c, d)
return 0;
}
运气好的话,这个stub函数就能骗过应用程序,让程序基本正常地在Wine上运行了。至于哪些是重要的函数哪些是不重要的函数,是相对的,有时候一个stub能骗过一个程序,却在另一个程序中因此奇怪的bug。
至于rpcgen中的stub,貌似离题了。不知哪位朋友知道stub中文怎么翻译才恰当?
参见:http://wiki.winehq.org/Stubs
2012/1/7 Qian Hong <frac...@gmail.com>:
--
() ASCII Ribbon Campaign
/\ Keep it simple!
我非常赞同,希望有更多的Linux用户可以为开源软件做一些力所能及的事情,不要停留在嘴上。
非常赞同 :)
也希望有更多的Linux用户可以为开源软件做一些力所能及的事情,不要停留在嘴上。
@david pu, http://www.amuseplayer.com/ 在我住的地方居然被DNS劫持了。。 你招惹谁了~
只是,源代碼是不開放的。可能沒人願意做吧……
在 2012年1月7日 下午1:47,袁飞 <snowh...@gmail.com> 写道:
> 我觉得如果linux在桌面领域能有mac的占有率,那也就能引起足够重视了,比如输入法可能也会有linux版发布了,至于是否开源倒不一定。
好奇问下,此话怎讲?从哪里听来的?
-- Wei.
在 2012年1月8日 上午8:11,Wei Liu <li...@liuw.name> 写道:
> 好奇问下,此话怎讲?从哪里听来的?
付出的越多,得到的就越多,自己动手自力更生是解决问题最好的态度.
2012/1/11 Qian Hong <frac...@gmail.com>
>
> 我从来没有使用过Wine QQ,但是跟踪过一些Wine QQ的bug:
> Bug 29186 - QQ International 1.1 doesn't install properly
> Bug 27468 - QQ International crashes on attempted login
> Bug 26191 - QQ 2010 Simplified Chinese version installation failed
> Bug 24709 - black shadow when running Tencent QQ and Thunder
> Bug 24507 - QQ International Beta 3 crashes randomly
> Bug 18564 - QQ 2009 crashes after signin