以下情况均在1050版本获取

软件包

默认情况下,系统安装完毕不会安装任何wine包。apt search wine可以筛选出,系统源带了3个版本的wine分别是:

  • wine 4.0-2 由debian社区维护的包,应该是debian 10版本的时候默认的版本
  • deepin-wine5-stable   国内深度社区维护
  • deepin-wine6-stable   国内深度社区维护

对deepin维护的2个包,不知道在wine官网的基础上做了什么改动加强之类,目前还没看到源码开放出来。

不过从商店下的wine软件包,一般都是通过脚本带起来的,而不是直接wine命令行起来的,查了一下,启动脚本来自于deepin-wine-helper:i386这个包,查看了下这个包的内容

推测基本上是用于辅助启动应用程序的,主要初始化wine环境目录,解压应用程序到wine环境等等,主要那几个run的脚本吧。

对于UOS应用商店的wine移植软件,干净系统情况下,任意安装一个,都会顺带把依赖的deepin-wine6-stable 或者deepin-wine5-stable给安装上(当然这两个包也会把他依赖的32位或者64位包也给装上)。

wine周边软件包

首推winetrick , 这个包可以帮助用户自动安装下载一些非wine实现的dll之类的库(其实手工安装也可以,但谁不喜欢一键XXX功能呢),也包括IE,office等一些软件,比如.net dx vc++等,毕竟wine的实现只有这些库的部分功能,原生的库才是完全体,理论上用起来效果更好,但是如果出现bug问题,wine是没办法修复的。

这个包系统里面带的还是2018年的,建议有条件上官网给升级到最新的,两三年怎么也能搞定更多功能了。

其次是Playonlinux,wine的图形前端,也是图形的,图形化协助用户安装各种软件

最后是crossover,wine的主要后台商业公司出的版本,据说早些年deepin交过学费发现没啥用,后面kylin也去交了学费,不知道醒悟过来了没

国内的版本,kylin之前自己出过一个wine的包,不知道努力了多久,有没有成果。中科方德自己也有一套wine的东西,虽然挂的软件所的title做的,但具体怎么样也不太清楚。不过市场上是不是能碰到方德的人在努力的推wine的方案。

wine使用备忘

wine 启动程序的几种方式:

#一共就3种方式,切换到程序目录直接运行,写linux全路径以及写wine盘符全路径(路径用2个反斜线表示)cd '.wine/drive_c/xxx/'wine xxx.exe
# 这种适合程序需要cd 到工作目录执行的方式# 也可以指定绝对路径,这种就可以不用指定linux上的全路径,只需要指定WINEPREFIX下从盘符开始的路径,第二种方式官网手册说要加2个反斜线,不过我双引号一个反斜线,他还是启动了。
wine start 'c:\windows\notepad.exe'
wine start "c:\\windows\\notepad.exe"#下面这种其实在Linux里面方便。
wine start /unix "$HOME/.wine/drive_c/windows/notepad.exe"

安装msi程序,不能直接通过wine带起来,需要

wine msiexec /i xxx.msi   (这个格式验证过)
或者
wine start xxx.msi

wine gecko  

这个是wine自己实现的ie,在某些程序上(有些老游戏),如果要显示html页面,wine就会调用gecko来显示,从wine5.0-rc1开始,gecko可以在系统上进行共存了,不需要每个wine的prefix环境里面都单独安装。默认安装在/usr/share/wine/gecko(实际目录就是这样的目录/usr/share/wine/gecko/wine-gecko-2.47.2-x86),如果没安装,wine第一次会提示你安装,默认会去查找本地缓存~/.cache/wine里面找包。

如何修改wine环境里面的默认浏览器 ?(后面搞完再来记录)

wine mono

可以用来运行.net程序,安装同上。

其实更多的我感觉通过winetricks安装微软的.net框架环境应该会更好用一点(上周用winetrick安装还不好使,直接从网上下.net formwork 离线包来安装还顺利一些)

gecko mono这两个看winehq的wiki就可以了。

安装IE8,这个必须借助winetricks(要搞一些dll和注册表,没细看), 7.8版本的wine用2018年的winetricks不行,可以直接去debian下最新的源码包来编译(有个什么compat版本是13的依赖,直接改为12就能过了,以前很傻不去改编译依赖)

编译完后安装IE8就可以,但他默认非要安装英文版本的,可以搞个中文的再wine 安装一遍。还没试能不能用呢。

自带的Notepad.exe输入中文字体不显示,把win下的msyh* 之类的中文sim*拷贝过来就能显示了。

winecfg的显示面板,屏幕分辨率处中文显示为方块,只需要simsun字体就行,如果觉得窗口大小不合适,直接调整dpi,重新启动程序就行了。

wine7 默认创建的环境还是64位的,需要指定WINEARCH=win32来创建32位版本的。

ActiveX 控件:查询了下,据说这个还和动态链接库相关了,据说COM COM+ 这些属于高级代码复用的范畴了,能做到跨语言以及垮机器调用了。下面是baidu到的一些基础知识。

ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾;ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合。

以.ocx为后缀名的ActiveX控件是一种比较特殊的DLL,它的基础是OLE和COM,是有交互界面的可视化控件,定义了控件的属性和方法,定义控件可引发的事件的响应。我们通常说的.DLL为后缀名的文件是一个包含函数和数据的模块集合,可以被其它应用程序共享的程序模块。

在web中调用ActiveX,需要在页面加入类似下面的部分(仅IE,这就是微软垄断的表现啊)

<object id="CardAccessor" classid="clsid:03AD53E8-D7E7-485D-A39A-D07B37DEFBC9"     width="0" height="0">
</object>

其中最重要的就是classid ,插件在安装的时候通过regsvr32 注册到系统的注册表中,浏览器也会通过这个id来确定加载机器上的哪一个DLL或者OCX。

注册到注册表的位置在 HKEY_CLASSES_ROOT\CLSID\{554445A9-E948-4d95-A46D-A9E84AF143B8} 这样的位置,最后一部分就是classid。

然后就可以在js中访问ActiveX插件了。

WINE学习  

对于不是做开发或者不做wine开发的人来说,对wine的学习也就仅限于,安装,使用,winetricks,playonlinux这些方法折腾了。补windows原生的dll,各种组件等。

再深入一点,补完各种库后winecfg或者注册表里面设置一下这些dll是用原生的还是wine内置的。(kernel32.dll, gdi32.dll, user32.dll, and ntdll.dll 这几个官网说只能用内置的,原生的还要调用更底层的库wine环境里没有)

然后就是利用各种渠道学来的知识折腾一下注册表,毕竟太多windows的程序爱写注册表了,注册表用来管理配置确实是好东西,但是对管理员或者用户来说,非常的不友好。毕竟ini文件这种还可以注视一下说这配置啥意思,到了注册表就自求多福能各种渠道查到啥意思吧。这也许就是开发者和用户的视角不一样吧。

再深入就得学习各种windows相关的知识了,以及看wine代码和对windows开发要有很多了解了,毕竟这都是黑盒反推回去的东西,命令行报错如果是报缺DLL或者DLL功能不对还好办,报其他的fixme或者error其实不做开发或者对wine开发不了解也是看不懂的(什么MFC VC++各种版本,OLE,COM,各种底层,谁知道问题出在哪儿,眼花缭乱)。

所以其实要排错,没点功力不行的,不单要懂wine的开发,还要懂windows开发,才能很好的诊断问题,我自己安装好ie8,但是不管打开啥网页都好久才出来,看报错啥都看不懂的,这就是懂点皮毛的表现。

快速安装官网wine

sudo dpkg --add-architecture i386
#添加32位架构
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo mv winehq.key /usr/share/keyrings/winehq-archive.key
#添加winehq的key,否则apt install的时候会报密钥问题wget -nc https://dl.winehq.org/wine-builds/debian/dists/buster/winehq-buster.sources
sudo mv winehq-buster.sources /etc/apt/sources.list.d/#添加winehq的源sudo apt install --install-recommends winehq-stable
#安装稳定分支
sudo apt install --install-recommends winehq-devel
#或者安装开发分支

不过国内网速奇慢,国内镜像还没法把wine-build给镜像下来,只能镜像源码。

我自己下载了,放百度网盘了  ,有需要的可以下

链接: https://pan.baidu.com/s/19uPtjhNZrWGACPiQXb2x4g 提取码: 6enm 
--来自百度网盘超级会员v3的分享

sudo apt install --install-recommends winehq-stable 这个命令最终要安装4个deb包,解包看了一下依赖关系

winehq-stable 依赖 wine-stable  ,提供/usr/bin/面的wine系列的可执行程序的链接,实际会链接到wine-stable提供的/opt目录下的文件。

,wine-stable 依赖wine-stable-i386 wine-stable-amd64,提供/opt/wine-stable/bin/下面一系列可执行文件。

wine-stable-i386  提供32位的wine以及32位windows环境的一些动态静态库/opt/wine-stable/lib,

wine-stable-amd64 提供64位的wine(即wine64),以及/opt/wine-stable/lib64/下的64位windows环境的动态静态库。

这两天看了下很早之前的有个项目pipelight,这个项目可以在浏览器中安装一个npapi的插件,通过这个插件调用wine来运行需要在windows里面运行的activeX插件。

基本原理是:浏览器内pipelight插件--》调用npactiveX.dll ---> 实际插件。

不过实际使用发现,很多浏览器不只是插件,还有js等强绑定了IE浏览器,如果不修改js代码,在pipelight的wine环境里面手工安装了插件照样也显示不出来。这兼容性还真是难啊。

pipelight插件本身还有个chrome插件配合使用,可以做简单的浏览器UA修改以及添加辅助脚本。实际上发现很多网站不仅仅只靠ua来判断浏览器,还会通过js来判断实际运行的平台,这时候就应该还是需要ie模拟之类的东西。

国内中科方德的浏览器在这方面做了一些工作。有类似windows下面的IE模式。可以直接切到IE模式对这些绑定IE的js ,css兼容。它也自带了Pipelight软件包以及activeX for chrome扩展。启动的时候机会初始化一个Pipelight单独的wine环境。

UOS 下wine的记录相关推荐

  1. SQL取上一条, 下一条记录方法

    如果我们需要取id为3的前后的1条记录.  就可以用以下方法 取上一条记录: select * from `表名` where `id`<3 order by `id` desc limit 1 ...

  2. Linux下wine用法

    Linux下wine用法 下面是wine的使用方法. 一.要在Linux下运行,wine是必不可少的,所以,请将wine安装到你的系统里. 二.将你的Windows所在的分区加载到某个目录.(本文假定 ...

  3. windows下GIT使用记录--00准备阶段

    在Windows上安装Git可以通过从Google Code上下载的安装文件(exe文件),直接安装,一路next即可顺利安装. 下载地址:http://code.google.com/p/msysg ...

  4. asp.net 上一条和下一条记录的显示

    这里我用的是input标签跳转页面的: 前台aspx页面中: <input class="btn" id="btnSetForm" type=" ...

  5. 根据当前记录获取前一条与下一条记录常用 sql语句

    为什么80%的码农都做不了架构师?>>>    1.oracle实现主要是用分析函数 lag与lead SELECT * FROM (SELECT         id,       ...

  6. php fpm 日志记录,如何解决nginx下php-fpm不记录php报错日志的问题

    如何解决nginx下php-fpm不记录php报错日志的问题 发布时间:2020-07-28 10:17:29 来源:亿速云 阅读:150 作者:Leah 本篇文章为大家展示了如何解决nginx下ph ...

  7. mysql 排序后 下一条记录_Mysql如何使用order by工作

    日常开发中,我们经常要进行字段的排序,但是我们大多不知道排序是如何执行的,今天我们就说说order by 的执行逻辑, CREATE TABLE `t` (`id` int(11) NOT NULL, ...

  8. nginx php fpm 日志,nginx下php-fpm不记录php报错日志怎么办?

    解决nginx下php-fpm不记录php报错日志的办法:1.修改[php-fpm.conf]中配置,没有则增加:2.修改[php.ini]中配置,没有则增加:3.重启[php-fpm]即可. 解决n ...

  9. linux下查看中断请求记录 IRQ

    linux下查看中断请求记录.通过cpu的中断请求的响应,可以看出cpu都在为哪些设备干活,干的活有多少量等信息. [~]$ cat /proc/interrupts CPU0 CPU1 CPU2 C ...

  10. TP5.1 查询数据库中上一条和下一条记录

    TP5.1 查询数据库中上一条和下一条记录 //获取上一篇文章,如果是第一篇,上一篇就是最后一篇if ($id == $fid) {$last = $model->where('id', '=' ...

最新文章

  1. sql盲注特点_SQL注入介绍及分类解读
  2. 2021牛客暑期多校训练营3 B-Black and white(思维+最小生成树)
  3. 60页论文综述深度学习优化方法,出自UIUC
  4. 爱立信携手沃达丰完成英国首个5G独立组网网络切片试验
  5. Atiit 如何手写词法解析器
  6. python里hist_python matplotlib模块: hist(直方图)
  7. 葡萄柚能放冰箱保存吗 葡萄柚怎么保存时间长
  8. Taulia任命Todd Musselman为首席福祉官
  9. pip install xx 时遇到There was a problem confirming the ssl certificate…的解决办法
  10. leaf Variable、requires_grad、grad_fn的含义以及它们之间的关系
  11. 深度学习初学者必须知道的25个专业名词
  12. 华为AC6605对接OpenPortal网络准入认证计费系统实现Mac快速认证+Portal认证
  13. VirtualAPP技术应用及安全分析报告
  14. SMVC4: JSON文件的使用
  15. 浅谈ATX电源中的负载电阻
  16. 当当网电子书能打印吗_一行代码就能写一个日志打印组件,你信吗?为你揭晓RTOS中日志打印组件的核心
  17. node后台生成srt字幕文件
  18. Maven tomcat7:run 配置
  19. Android——UIL实现图片缓存基本配置及使用
  20. 创业公司股份构成相关知识

热门文章

  1. 更深一步了解,电容是起什么作用的?
  2. 用excel制作双层饼图_Excel做的双层饼图,太漂亮了
  3. 《Linux内核分析》期末总结
  4. Javafx Scene Builder使用教程
  5. 【imx6ul】从头搭建imx6ul开发环境(uboot、内核编译及烧入、mfgtools详细使用方法)
  6. 计算机英语rom是什么意思,涨姿势!电脑里的rom,ram是什么意思?
  7. STM32单片机配置FPGA
  8. 【C语言】十进制转换二进制
  9. ByteV打造智慧建筑可视化管理平台——IBMS智能化集成系统赋予楼宇“智慧大脑
  10. win7上搭建ftp站点