Chinaunix首页 | 论坛 | 博客
  • 博客访问: 144147
  • 博文数量: 83
  • 博客积分: 3212
  • 博客等级: 中校
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-01 18:26
文章分类

全部博文(83)

文章存档

2011年(4)

2010年(49)

2009年(3)

2008年(27)

我的朋友
最近访客

分类: LINUX

2010-03-27 23:17:41

 Cygwin

Cygwin是一个用于在Windows上模拟Linux环境的软件。它可以作为那些虚拟机软件的一个部分替代品。之所以将它排在第一个来介绍,是因为它实在给我帮了很大的忙。

运行Cygwin后,你会得到一个类似LinuxShell环境,在其中你可以使用绝大部分Linux软件和功能。如Gcc,Make,Vim,Emacs等等。总之如果你想使用某个Linux下的功能,而windows上又找不到好的替代品的话,你就可以用Cygwin。我使用的最频繁的是GccMake。我经常用它们来编译一些我从网上下载的开源的工程。这些工程在Windows上编译往往很麻烦。我也用它做过X Server来连接一台真正的Linux服务器,用来测试一个用tcl/tk编写的跨平台的用户界面程序。下面,我逐步介绍Cygwin的基本用法。

2.1. 安装

Cygwin 安装很简单,登陆www.cygwin.com,点击页面上的“Install or update now!”。首先要下载一个网络安装程序,运行后会看到如下界面:

Figure 1. CygWin Setup

如果你使用的版本不同,这个界面可能会稍有差异。点击下一步,选择Install from Internet。这是最常用的选项,如果你下载过本地安装包,也可以使用第 三个选项。下面以从网络上安装为例讲解,点击下一步,选择你的安装目录,下一步,选择你要存放下载的文件的目录,建议不要和你的安装目录在一起。将来如果你的安装目录出了问题,可以从这个目录重新安装而恢复。下一步是选择Internet连接方式:

Figure 2. Cygwin Setup - 连接方式

如果你要使用代理的话,可以在这里设置,我使用的是直接连接。下一步,这个时候安装程序会去试图找一份所有可以使用的镜像服务器的列表,这会需要一点时间。然后你会看到如下界面:

Figure 3. Cygwin Setup - 选择镜像

然后你就要去选择一个对你来说最快的镜像了。这里Cygwin做得非常不好,一大堆的镜像,谁能一个个的试呢?希望以后的版本,可以在这里提供一个自动速度检测的功能。我一般使用mirrors.kernel.org这个镜像,速度快的时候,一秒20K吧。你也可以加入自己的镜像服务器地址,不过目前为止,我没有找到在国内的镜像。再点击下一步,安装程序又要停止一会,这次他是要从你刚才选择的镜像站点下载当前所有可用的软件的列表。如果这个过程很长,你就可以取消了,因为接下来的下载会更漫长。这里再次批评一下Cygwin,取消后程序就退出了,要从新来过,这个太不方便了。下面是软件列表界面的截图:

Figure 4. Cygwin Setup - 安装软件

这里要解释一下这个界面:在List的上面有4个单选按钮,它们决定了你选择安装包的策略:

  1. Keep,意思就是说保持目前已经安装的版本不动。比如你现在一个软件的版本是1.01,而服务器上已经有了1.20,选择这个选项,不会替换你目前的版本。这个选项非常有用,因为Cygwin上的版本升级很快,如果每个升级你都要安装的话,你会发现即使你只想安装一个小小的新软件, 安装程序也会顺便给你把所有安装过又有更新的程序重新下载安装一次。
  2. Prev,意思是说安装上一个版本。这个功能我从来没用过,可能是用来作版本回滚的吧。
  3. Curr,意思就是说把最新的版本统统下载下来安装
  4. Exp,没用过这个选项

右边的"View"按钮是用来选择显示方式的,分别有按类别显示,全部显示,部分显示,显示最新的和显示尚未安装的几种模式。

搞清楚了这些选项的含义,接下来,就是选择你想要的程序安装了。一般第一次安装,先把它默认要安装的都给装了,这包括最基本的一些东西,比如bash.之后你可以根据自己的需要选择安装,比如Gcc,Vim,make,autoconf等等。

选择好你要安装的软件后,再点击下一步,程序就开始自动安装,你可以去干干别的。

2.2. 使用

安装完成后,在桌面上会有一个Cygwin的图标,双击它,会出现一个windows的命令窗口,过一会,你就会见到熟悉(或者陌生) LinuxShell界面。试一试ls ,是不是可以工作了?

Figure 5. Cygwin - 界面

从今往后,你就可以自由的在windows下使用Linux的软件了。基本上你能用到,cygwin都有。如果你要开发可以在两个平台上运行的程序, cygwin也是你前期试验的好地方。从互联网上下载的各种开源代码,也可以在Cygwin里编译,运行,调试。下面介绍一些使用技巧,更多地还要靠大家自己探索拉!

2.2.1使用Cygwin访问windows的文件

Cygwin安装后,其根目录位于你的安装目录下。所以使用cd /,只能访问到你的安装目录,要访问硬盘上的其他文件,可以使用mount:

mount D:/testdir ~/testdir

这样,你就可以在~/testdir里访问到D:/testdir里的内容了。

2.2.2使用Cygwin作为X Server

现在的Linux服务器一般都提供X,要从Windows上使用LinuxX,需要在Windows上运行一个X Server。有一些专门为windows开发的软件可以做这个,但是Cygwin自带的X server就可以胜任。下面举例说明如何使用:

首先你必须安装X11包,然后运行Cygwin shell,输入x&。这时候你的桌面上出出现一个布满斜纹大窗口,这就是我们的X server了,回头Linux机器上的X 程序就会显示在这里:

Figure 6. Cygwin - X Server

登陆你的Linux服务器,比如:

Figure 7. Cygwin - Linux terminate

然后就可以用xterm连接到你用Cygwin在你的 windows机器上开的X Server了:xterm -display yourwindowsip:0.0,这时候你应该可以在X Server那个大窗口里看到一个XTerm的窗口了。不过也有可能会返回错误说X Server拒绝了连接,这是权限设置的问题。在你的Cygwinshell里输入xterm -display localhost:0.0,X Server的窗口里会出现来自你的Cygwin的一个xterm窗口,输入xhost +,打开全部的权限。这时候从linux输入xterm就可以连接上了。一旦从Linux来的xterm运行成功,你就可以直接在这个xterm里发出指令了,比如twm&,启动窗口管理器,或者干脆:startkde&,弄一个桌面来用。我就是用这个办法来测试我们用tcl/tk写的界面程序的。

2.3. 其他

Cygwin是一个了不起的软件,为我节约了大量的时间。更是我了解开源软件的一个得力工具。不过它有一个缺点非常让人讨厌,就是他使用Cygwin.dll作为包装器,如果你不小心掉进了Dll Hell,就会出现很多程序不能运行,抱怨找不到某某某函数入口。遇到这种情况,建议你把C:\windows,C:\windows\system(32)下的cygwin.dll全部找出来删除,只保留在安装目录下的那个。希望你也能从Cygwin中获益。

阅读(619) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~