分享

cygwin下完整工作环境的搭建(转)

 昵称11451906 2013-01-11
这算是一个变态的嗜好:力求在纯文本模式下完成一切可能的工作,并且还要在windows下工作。 下面的配置未特意说明的地方,要么是太简单不值得说明,要么是顺应了对应软件的默认配置行为。
1.基本环境


从 http://www. 下载 cygwin.exe ,按其默认选择安装即可。以后逐步根据需要添加软件包。

根据本人需求,额外添加软件包:unzip,zip,attr,shutdown
2.文字阅读/编辑/处理

从cygwin选择下载安装: vim , xpdf , texmacs
3.文本模式的Web浏览器

从cygwin选择下载安装: w3m , 这是款类似vim的Web浏览器。
4.安装配置Cygwin X环境

详见:http://x./docs/ug/setup.html#setup-cygwin-x-installing
通过cygwin选择安装:

必选: xorg-server , xinit
建议选择:xorg-docs , X-start-menu-icons

启动X11环境:

可以从Windows的开始菜单启动Cygwin X


5.添加ssh登录支持(并且支持通过putty访问Cygwin X)

可以用putty.exe等远程控制系统访问本地cygwin. 哦,这不是多此一举?用cygwin.bat直接启动不就得了? 原因有三:

1)在cygwin.bat启动模式下,用户视觉感受没有通过putty.exe登录访问的感受好,你试试便知。

2)在cygwin.bat启动模式下,无法进行屏幕取词,而通过putty.exe登录访问可以屏幕取词,这点对英文不太好的人很重要。

3)在cygwin.bat启动模式下,输入法提示框总下左下角,并且是纯黑白模式,感受不好,但是在putty.exe登录访问时,输入法提示框是跟随的。

首先在cygwin中选择安装openssh

然后用命令 ssh-host-config 配置SSH 注意配置过程中一定要将sshd安装成Windows服务,已方便开机自动启动

生成ssh1的公钥和密钥: ssh-keygen -t rsa1

生成ssh2的公钥和密钥:
生成公钥: ssh-keygen -t rsa
生成密钥: ssh-keygen -t dsa

启动sshd服务(如果你需要重启机器的话,此步可免)
cygrunsrv -S sshd

为配置为putty.exe支持X11而做的配置服务端:
在/etc/sshd_config中配置为:X11Forwarding yes
在/etc/profile 中添加配置: export DISPLAY=:0.0

在客户端putty中配置:
window -> Translation 中 character set 选为UTF-8
在Connection -> X11 中勾选上:Enable X11 forwarding
在X display location 中填入:localhost:0.0

这样你就可以用类似putty.exe功能远程登录访问本地cygwin系统。以后的操作也就都是通过putty.exe登录操作的。

最后说明一点:你可以在putty登录后,在需要用到X11环境的程序前,临时启动Cygwin X 服务。

卸载方式:

依次执行 cygrunsrv -E sshd cygrunsrv -R sshd

然后删除: rm /etc/ssh*

然后在 /etc/passwd 中删除 新创建的两个用户: sshd , cyg_server
6.C/C++/fortran77/Python完整的开发环境

在cygwin中选择安装:autobuild ,autoconf ,automake ,binutils ,cmake ,gcc-core ,gcc,gcc-g77 ,gcc-g++ ,gcc-java ,gcc4-core ,gcc4,gcc4-fortran ,gcc4-g++ ,gcc4-java ,make ,makedepend ,pkg-config,bashdb,ddd,python
7.JAVA基本开发环境

我采用的是首先从JAVA官网上下载安装普通的windows版本的JDK.

然后在cygwin的/opt目录下,建立一个名为jdk的链接到JDK在Window下实际的安装目录。

ln -sf <JDK在windows下实际的安装目录> /opt/jdk

在cygwin中设置JAVA环境变量(比如可在/etc/profile 中设置)

最后,下载解压apache-ant和apache-maven在/opt目录下,并在/etc/profile设置好它们的PATH路径。
8.TCL/TK开发环境

cygwin自带的好像有问题,不全?,建议到http://www. 上分别下载tcl 和 tk 的源码安装包 依次编译安装)

先装 tcl 后装 tk 。

都是: ./configure , make , make install
9.Google AppEngine开发环境

从http://code.google.com/appengine中下载,并且解压在/opt/appengine 中, 并且在/opt/profile中设置PATH环境变量.
10.googlecl

google开发的一个试图通过cmd/shell 访问google所有服务的工具。见链接:http://blog./2011/03/1/201103011210

或者从cygwin中选择安装: python-gdata ,googlecl
11.版本控制器

从 cygwin中选择安装:cvs ,cvs3svn , subversion ,git ,git-completion ,git-gui ,git-svn ,mercurial
12.数学工具套件

1)数学绘图软件:gnuplot (从 cygwin中选择安装)http://www.

2)数值计算软件:octave (从 cygwin中选择安装)http://www.

3)统计分析软件:R http://www.R-project.org

采用下载源代码编译安装的方法。当前采用的源码版本是:R-2.12.2.tar.gz

前置需求:
http://ftp./mirrors/CRAN/doc/manuals/R-admin.html#Essential-and-useful-other-programs-under-a-Unix_002dalike
主要有:
1)需要gcc,g77(fortran 77)的开发编译环境
2)X11支持环境
3) tcl/tk
4) libX11(-dev) ,libXt(-dev),readline,iconv,cairo(-dev) ,pango ,zlib(-dev) ,xz,libxmu(-dev) ,icu(-dev) ,ghostscript,,libjpeg(-dev) ,libpng12(-dev) ,libtiff(-dev) ,
tar -xf R-2.12.1.tar.gz
编译
./configure –disable-nls –enable-R-shlib R_BROWSER=w3m R_PDFVIEWER=xpdf
(原因见:http://ftp./mirrors/CRAN/doc/manuals/R-admin.html#Cygwin)
make
测试:
make check
生成手册文档:
make dvi
make pdf
make info
安装:
make install
make install-dvi
make install-info
make install-pdf

4)符号演算软件:maxima (http://maxima./)

当前采用的源码版本:maxima-5.23.2.tar.gz
需求软件包:clisp ,bison ,libgd(-dev) ,plotutils ,libggi(-dev) ,xz ,lapack(-dev) ,curl(-dev) ,magick ,libGLU(-dev)

./configure make make install

5)数学排版软件:texmacs

1)解决texmacs启动时找不到gs的问题:
ln -sf /usr/bin/gs /usr/X11R6/bin/gs

2)maxima集成:
vim /usr/sbin/TeXmacs/bin/tm_maxima 添加当前版本的条件分支,执行代码暂时和已有的版本执行代码一致。
从 http://riemann.math./~yenlung/share/texmacs-maxima-5.10.0.lisp 下载文件后,将其复制到:/usr/share/TeXmacs/plugins/maxima/lisp

3) octave集成:(暂时未解决)

4)R集成:(暂时未解决)

5)gnuplot集成:已自动支持。
总结:

首先,在cygwin默认选择基础上,附加选择如下软件包:unzip ,zip ,attr ,shutdown ,vim ,xpdf ,texmacs ,w3m ,xorg-server ,xinit ,xorg-docs ,X-start-menu-icons ,openssh ,autobuild ,autoconf ,automake ,binutils ,cmake ,gcc,gcc-core ,gcc-g77 ,gcc-g++ ,gcc-java ,gcc4,gcc4-core ,gcc4-fortran ,gcc4-g++ ,gcc4-java ,make ,makedepend ,pkg-config ,python ,python-gdata ,googlecl ,cvs ,subversion ,git ,git-completion ,git-gui ,git-svn ,mercurial ,gnuplot ,octave ,libX11(-dev) ,libXt(-dev) ,readline ,iconv ,cairo(-dev) ,pango ,libjpeg(-dev) ,libpng12(-dev) ,libtiff(-dev) ,zlib(-dev) ,libxmu(-dev) ,icu(-dev) ,ghostscript ,clisp ,bison ,libgd(-dev) ,plotutils ,libggi(-dev) ,xz ,lapack(-dev) ,curl(-dev) ,magick ,libGLU(-dev),tex相关,基本数学库

然后依第5步:“添加ssh登录支持”所提到的配置。

依第7步:“配置Java基本开发环境”

依第8步:从源码安装TCL/TK

依第9步: 安装配置google appengine开发环境

依第12步之3): 安装统计分析软件R

依第12步之4): 安装符号演算软件maxima

依第12步之5): 配置数学排版软件texmacs以集成:gnuplot , octave ,R ,maxima
附录:遇到的问题及解决方案:

1)试图解决”Exception: STATUS_ACCESS_VIOLATION“ 的问题
http://x./docs/faq/cygwin-x-faq.html#q-status-access-violation
a)选择安装Cygwin软件包时,必须确保停止所有的Cygwin进程(包括Cygwin的Windows服务进程)
b)确保cygwin1.dll在你的系统中只能存在一份。
c)注意杀毒软件或防火墙对Cygwin的限制,必要的话将其加入其信任区域。
d)防止在Cygwin’s的fork()模拟器中出现的DLL的基本地址冲突。
安装rebase包
阅读:/usr/share/doc/Cygwin/rebase-n.n.n.README
然后安装说明指示运行:rebaseall
简单的说就是: 在停止Cygwin的所有进程(包括已经安装的Windows服务)的前提下,在Windows下启动cmd.exe, 在这个Windows命令行下,执行ash, 然后在ahs启动的shell 中执行:/bin/rebaseall -v。
e)如果还有这个问题,则对出现这个问题的程序执行:
peflags –tsaware=true /usr/bin/w3m.exe (范例)
f)如果通过cygwin选择重新安装或升级程序后,可能这个问题又会复现。我们又需要按a),b),c),d),e)依次执行。

2)cygwin环境下,maxima无法调用 gnuplot的问题:(非完美的解决方案)
a) ln -sf /usr/bin/gnuplot.exe /usr/binwgnuplot

b) 在每个新的maxima的窗口n中,预先执行:
set_plot_option([gnuplot_default_term_command,"set term x11"]);
注意:
每次执行一次绘图操作时,都会进入gnuplot的Shell,需要手工退出,才能返回maxima的Shell,该问题不知如何解决。
离开maxima后,上述设置会失效。 如何永久存储该设置的方法,暂时为找到。
2011-03-13 附注:此问题已经解决,在你常用的maxima工作目录下,创建如下文件: /home/chaoskey/maxima/maxima-init.mac

/* this is /home/chaoskey/maxima/maxima-init.mac */
/* last edit 2011-03-13 */

maxima_userdir : "/home/chaoskey/maxima" $
maxima_tempdir : "/home/chaoskey/maxima/.tmp" $
/*file_search_maxima : append(file_search_maxima ) $*/
/*file_search_lisp : append(file_search_lisp) $*/
set_plot_option([gnuplot_default_term_command,"set term x11"])$
/* disp("Maxima is the Future.") $ */

说明,你常用的maxima的工作目录可任意选择,maxima 启动时会自动探测出 maxima-init.mac的目录

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多