如何在windows10 cygwin下借助cygwin运行LINUX平台的软件

新手在Windows上运行Linux的命令操作方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
新手在Windows上运行Linux的命令操作方法
希赛教育成立于2001年,采用线上和线下相结...|
总评分0.0|
&&新手在Windows上运行Linux的命令操作方法
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢参考自:http://bbs./bbs/thread-.html
所需文件均可在此下载:/cQsvAEe3Axs2Z &访问密码 2fa2
下载文件放到D:/anzhuang/目录下,cygwin.rar需解压,另一个ncl压缩文件不需要解压
2.安装Cygwin/X
1)点击cygwin文件夹下的setup.exe
2)点击&下一步&,出现&Choose Installation Type&,请选择&Install from Local Directory&
3)点击&下一步&,出现&Choose Installation Directory&,默认的Root Directory为&C:\cygwin&,请改为&D:\Cygwin&,其他选项不动
4)点击&下一步&,出现&Select Local Package Directory&,选择&刚cygwin解压后的cygwin文件夹&
5)点击&下一步&,出现&Select Packages&,这是非常重要的一步。
6)点击标红线处,可依次在&Default&&Install&&Reinstall&&Uninstall&四种安装状态中切换,请选择&Install&,并确认在X11中的&xorg-cf-files&和&xorg-server&都被点选为&Install&状态(即点击下SKIP会出现版本号即可)
7)安装结束,点击&完成&
8)在Windows桌面上双击&Cygwin&图标,将启动一个字符终端(term),同时创建用户主目录(home directory)-&/home/Administrator&,并向用户目录下复制若干配置文件
a.在安装目录下的home/Administrator下,用记事本打开.bashrc,
b.在 .bashrc 中加入如下一行:
& &export PS1="\u@\h:\$PWD&"
c.保存文件后输入以下命令使设置生效:source .bashrc
9)启动X Server
通过Windows的资源管理器中找到&D:\cygwin\bin\startxwin.bat&,在其上点击右键,选择&发送到&-&&桌面快捷方式&,并命名为&startxwin&,之后只要双击此图标,即可启动X Server和xterm。
1)双击startxwin(桌面上)
2)在Xterm中依次键入以下命令(#后为命令说明):cd /usr/local & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & # NCL安装目录tar xvfz /cygdrive/d/download/ncl_ncarg-5.1.0.CYGWIN_NT-5.1_i686.tar.gz& &&&# 解压缩NCL软件cd&&
3)设置NCL环境变量
在用户主目录下编辑&.bashrc&文件,添加如下三行:export NCARG_ROOT=/usr/localexport PATH=/usr/local/bin:$PATHexport DISPLAY=:0.0说明如下:第一行,设置NCL环境变量第二行,设置搜索路径第三行,设置显示环境保存文件后运行以下命令使设置生效:source .bashrc至此,NCL安装结束。
范例:在用户主目录下依次输入以下两条命令:cp /usr/local/lib/ncarg/nclex/xyplot/xy04n.ncl . &#注意最后的点号ncl xy04n.ncl
阅读(...) 评论()minGW给那些习惯于在Linux上开发的人员,在windows上提供了一套类似的工具集。
cygwin主要是对于再Linux的程序,无需改动代码即可移植到windows上。
gnuwin32主要是对习惯linux工具的人员,在windows上提供一套类似的命令。
Unix下编译通过的C代码,在win32下编译是不能通过的 ,当然Unix 和win32的API都是符合标准C,也就是说,大多数函数调用在unix和win32下是相同的.但是,unix有自己一些独特的API(如fork,spawn,signals,select,sockets等),如果代码中使用了这些API,在win32下当然找不到对应的库。
但是,这些API的功能在win32中也能实现,也许你已经发现了一个能让window编译Unix风格代码的方法:
1.修改编译器,让window下的编译器把诸如fork的调用翻译成等价的形式--这就是mingw的做法.
2.修改库,让window提供一个类似unix提供的库,他们对程序的接口如同unix一样,而这些库,当然是由win32的API实现的--这就是cygwin的做法.
首先MingW和cygwin都不能让Linux下的程序直接运行在Windows上,必需通过源代码重新编译。 &
现代操作系统包括Windows和Linux的基本设计概念像进程线程地址空间虚拟内存这些都是大同小异的,之所以二者上的程序不能兼容,主要是它们对这些功能具体实现上的差异,首先是可执行文件的格式,Window使用PE的格式,并且要求以.EXE为后缀名。Linux则使用Elf。其次操作系统的API也不一样,如Windows用CreateProcess()创建进程,而Linux使用fork()。所以要移植程序必然要在这些地方进行改变,MingW有专门的W32api头文件,来把代码中Linux方式的系统调用替换为对应的Windows方式。而Cygwin则通过cygwin1.dll这个文件来实现这种API的转换,并模拟一个Linux系统调用接口给程序,程序依然以Linux的方式调用系统API,只不过这个API在cygwin1.dll上,cygwin1.dll再调用Windows对应的实现,来把结果返回给程序。可以用查看他们编译好的程序的导入表来验证这点。
二者生成的程序都是能在Windows上运行的EXE文件,显然都是PE格式,用一个PE格式查看工具检查一下就能发现,Cygwin生成的程序依然有fork()这样的Linux系统调用,但目标库是cygwin1。而MingW生成的程序,则全部使用从KERNEL32导出的标准Windows系统API。这样看来用Mingw编译的程序性能会高一点,而且也不用带着那个接近两兆的cygwin1.dll文件。但Cygwin对Linux的模拟比较完整,甚至有一个Cygwin X的项目,可以直接用Cygwin跑X。另外Cygwin可以设置-mno-cygwin的flag,来使用Mingw编译。而与Cygwin更有可比性的MSys上的工具也是通过Cygwin这种模拟的方式来提供的。总之这两个项目有千丝万缕的关系,一个不恰当的比方,如果Mingw是MFC,Cygwin就是.NET了。
用MingW和cygwin编译出来的程序的区别。 &
首先MingW和cygwin都不能让Linux下的程序直接运行在Windows上,必需通过源代码重新编译。 &
现代操作系统包括Windows和Linux的基本设计概念像进程线程地址空间虚拟内存这些都是大同小异的,之所以二者上的程序不能兼容,主要是它们对这些功能具体实现上的差异,首先是可执行文件的格式,Window使用PE的格式,并且要求以.EXE为后缀名。Linux则使用Elf。其次操作系统的API也不一样,如Windows用CreateProcess()创建进程,而Linux使用fork()。 &
所以要移植程序必然要在这些地方进行改变,MingW有专门的W32api头文件,来把代码中Linux方式的系统调用替换为对应的Windows方式。而Cygwin则通过cygwin1.dll这个文件来实现这种API的转换,并模拟一个Linux系统调用接口给程序,程序依然以Linux的方式调用系统API,只不过这个API在cygwin1.dll上,cygwin1.dll再调用Windows对应的实现,来把结果返回给程序。 &
可以用查看他们编译好的程序的导入表来验证这点。 &
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:40191次
排名:千里之外
原创:11篇
转载:37篇
(9)(12)(8)(12)(9)2012年11月 挨踢职涯大版内专家分月排行榜第二2011年9月 Linux/Unix社区大版内专家分月排行榜第二
2012年1月 Linux/Unix社区大版内专家分月排行榜第三2011年8月 C/C++大版内专家分月排行榜第三2011年8月 Linux/Unix社区大版内专家分月排行榜第三2010年4月 C/C++大版内专家分月排行榜第三
2012年11月 挨踢职涯大版内专家分月排行榜第二2011年9月 Linux/Unix社区大版内专家分月排行榜第二
2012年1月 Linux/Unix社区大版内专家分月排行榜第三2011年8月 C/C++大版内专家分月排行榜第三2011年8月 Linux/Unix社区大版内专家分月排行榜第三2010年4月 C/C++大版内专家分月排行榜第三
2012年11月 挨踢职涯大版内专家分月排行榜第二2011年9月 Linux/Unix社区大版内专家分月排行榜第二
2012年1月 Linux/Unix社区大版内专家分月排行榜第三2011年8月 C/C++大版内专家分月排行榜第三2011年8月 Linux/Unix社区大版内专家分月排行榜第三2010年4月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
比如一直用的 prepros 软件做到了:
打包一个 ruby 2.0.0 以及一些gems sass-3.4.6 slim-2.1.0 chunky_png-1.3.3 等
并且运行良好
当然 还有一些node的库,安装的时候提示需要 node-gpy 比如:grunt-image,请问如何提取他所需要的环境并打包到windows下?
我找到了一个库
他也做到了,现在的问题是如何做到的呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
首先的说明,非原生的程序,也就是脚本或者Java,.NET之类的都可以直接跨平台,前提是,有对应平台的运行时或者虚拟机,或者是Host,例如nodejs之类,JavaScript一般是运行在浏览器.而nodejs也就是一个JavaScript主机,类似与Microsoft的WSCript。
所以只要有运行时什么的,打包很容易的。
就从最简单的Shell脚本来说,在Windows上有Cygwin MSYS MSYS2移植了Bash,那么shell脚本就能够在Windows上运行,同样的在Linux上,如果有cmd以及对应命令的实现,那么Batch文件就能够在Linux中执行,但是,几乎没有多少人会将批处理移植到Linux,批处理本身来说,简单,还是简单。例如PowerShell,在Windows上非常强大,有些开发者期待能够在Linux Mac上运行,所以出现了一个Pash的开源项目,基于Mono框架。项目地址: Github: ,Shell脚本本质上的执行是主机解析然后执行的,这种的移植只要有解释器就行,也就是'host'。
类似于Java,.NET语言,这种语言是编译型,但是生成的代码是一种虚拟机代码,JVM虚拟机,.NET虚拟机,执行的时候,虚拟机解释或者JIT,目前基本以JIT为主,这种移植的原理就得实现一个虚拟机,运行时,JIT能够把代码编译成对应的机器码。目前.NET Java都能实现跨平台。
第三种,也就是wine之类的,这个最为复杂,例如Windows 目录下的system32目录下以来的dlls,wine都得实现,wine还得让这些dlls的后端能够调用Linux的API,借口等等,对于一个PE程序,wine还得实现PE程序(.exe)的加载,环境的初始化,还得虚拟出一个Windows NT的环境,wine目前已经能有不错的效果了。对于Windows,也有人基于Cygwin实现一个能够运行linux程序的host,目前没有最新消息。
虚拟机不在本文讨论中。
未完待续。
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:

我要回帖

更多关于 windows cygwin 的文章

 

随机推荐