[转载] 本人在cygwin下完整工作环境的搭建(备忘)

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

1.基本环境

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

       根据本人需求,额外添加软件包:unzip,zip,attr,shutdown

2.文字阅读/编辑/处理

       从cygwin选择下载安装: vim , xpdf ,  texmacs

3.文本模式的Web浏览器

       从cygwin选择下载安装: w3m ,  这是款类似vim的Web浏览器。

4.安装配置Cygwin X环境

       详见:http://x.cygwin.com/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 的源码安装包 依次编译安装)

      先装 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.chaoskey.com/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.gnuplot.info

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

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

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

            前置需求:
http://ftp.ctex.org/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.ctex.org/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.sourceforge.net/

            当前采用的源码版本: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.nccu.edu.tw/~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.cygwin.com/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的目录。

Loading

About skywind

Putty 本无树,MinGW 亦非台
This entry was posted in 大浪淘沙. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *