热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Wine安装手记

Wine安装手记--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
Wine全名(Wine Is Not a Emulator,Wine不仅仅是一个模拟器)

准备:首先Linux系统里要GCC编译器,没有GCC下面的工作无法进行。虽然网上有各个发行版本的wine RPM安装包,但是还是建议自己编译,不然有很多模windows的库文件将会不能调用,wine的功能等于减半。经常有人说为什么别人模拟到的软件为什么自己模拟不到,很多时候就是因为这个原因做成的。

卸载wine:
如果先前安装过wine,那么在安装新版wine前必须拆卸原先的wine。检验方法:$ wine --version,如果显示了wine版本号,那么系统就存要wine。卸载方法:rpm -e wine,如果原先是源码安装的,进入原编wine的目录,执行make unistall就O了。

然后要下载wine(非RPM包):
我用的是wine0.9.10,下载wine-0.9.10.tar.bz2。有两种方法编译wine。

方法一(简单,推荐),用wineinstall安装:用普通用户登录,解压wine-0.9.10.tar.bz2,解压后的目录就是原码安装包,进入该目录。运行:./tools/wineinstall按提示回答就可以了。

实际操作:
用普通用户登录,将tar包复制到/home/当前user目录下(我的是gener)

cd /home/gener
tar jxvf wine-0.9.10.tar.bz2
cd wine-0.9.10
./tools/wineinstall

之后它会运行./configure,然后显示:We need to install wine as root user, do you want us to build wine,'su root' and install Wine? Enter 'no' to continue without installing(yes/no)

yes 回车

如果在此处出现错误,请检查此命令的输出,如果他没有找到一些需要的包,而你又希望使用那个包提供的功能时,请安装相应的 devel 包。

如果你root用户设置了密码,还会提示你输入密码。

待屏幕上出现:
Installation complete for now. Good luck (this is still alpha software).
If you have problems with WINE, please read the documentation first,
as many kinds of potential problems are explained there.

则表示安装成功了。

方法二:
以root用户登入。进入wine源码安装包的目录,依次执行

./configure
make depend
make
make install

实际操作:
以root登录,将wine-0.9.10.tar.bz2复制到/root/目录下面。

打开终端,运行:
cd /root
tar jxvf wine-0.9.10.tar.bz2
cd wine-0.9.10
./configure --prefix=/usr/local/wine

如果在此处出现错误,请检查此命令的输出,如果他没有找到一些需要的包,而你又希望使用那个包提供的功能时,请安装相应的 devel 包。

make depend && make && make install
wine

至此,wine安装成功。

附带一些笔记:

(1)wine运行程序的两种方式
wine可以用两种不同的度式运行应用程序:作为预编译的windows二进制程序,或者作为本地编译X11(X Windows系统)应用程序。前者使用模拟把一个windows应用程序连接到wine库上。通过wine安装或是简单的把windows程序复制到 Linux系统下,就可以直接用模拟器运行windows程序。后者运wine运行windows程序必须有这个应用程序的源代码。不用本地 windows编译它,象对其它UNIX应用程序所做的一样,要用本地Linux编译它-例如gcc-并连接上Wine库。这些本地连接的应用程序被称为 Winelib应用程序。wine应用的重点要前种使用方式。

(2)windows程序的三个方面
注册表——windows中重要的数据库,作用大,不用说;

目录结构——就用程序期望在指定的预先决定的位置找到或安装东西,期望这些目录存在。由于与UNIX目录结构不同,并且多数这些位置是硬编(hardcode),然后通过Windows API和注册表来查找。在Wine安装上这是必需注意的一个方面;

系统DLL——在windows中它们通常驻留在system(或system32)目录中。一些windows应用程序运行时需要装载这些DLL,会尝试到上述目录中去查找并装载。当应用程序要求一个DLL而Wine不能装载它们自己的内部DLL(.so文件)时,Wine不模拟不存在的文件(舍弃模拟);

注:wine安装两种方法,一是用wine小组制作的自动Wine安装脚本tool/wineinstall,它可以做我们认为必要的所有事情。另外一种是常规的编译安装方式,除非用户很清楚正在做什么,否则不推荐运行常规的configure&&make depend&&make install方式。此时,建议用户可以使用tools/wineinstall来建立一个配置文件、安装注册表、并建立自己的目录结构。

(3)系统DLL的解决方案
对于那些在运行中只需检查文件是否存在来确定调用的程序。Wine的解决方法是建立伪DLL文件来模拟真实DLL文件使程序运行起来。如果存在这样的问题,可以在system目录中建立一个空文件来让应用程序认为它存在,而在实质调用时wine装载它的内置DLL替代。(wine原文手册写道:可惜 wineinstll工具不具有建立这种空文件的功能);

而有些DLL文件,应用程序不仅要查询其是否存在(如DirectX版本),而且还要从原资源文件中查询资源的版本。这样空文件不起作用,因此必须有完整版本资源的安装文件。wine当前正处理这个问题。因此,目前要解决这些问题仍需要真实的DLL文件。

对于另外一些wine目前未很好实现(或根本未实现)的DLL,如果不拥有一个真实的windows,则有的人会找到所需的DLL。
推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
author-avatar
手艺人生大姑娘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有