环境变量未传递给CruiseControl,特别是来自Cygwin的'nodosfilewarnings'ENV变量

时间:2012-04-30 23:00:38

标签: cygwin windows-server-2008 cruisecontrol.net

我有一个别人创建的Perl程序,我正在使用CruiseControl。该程序使用Cygwin调用Unix命令。但是,每次Perl程序调用具有类似DOS的类似Unix的命令时,我都会得到众所周知的错误:

cygwin warning:
   MS-DOS style path detected: E:\regression
   Preferred POSIX equivalent is: /cygdrive/e/regression
   CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
     http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

我已将用户变量和系统变量CYGWIN都设置为nodosfilewarning。当我从命令行运行程序时,这会删除错误,但当从批处理文件中调用自动进程时,CruiseControl中仍会出现错误。我已从桌面和命令行调用批处理文件并以管理员身份运行。什么都没有改变。

其他笔记

  • 出于此问题的目的,我无权访问Perl程序
  • 我正在尝试回到Cygwin 1.5。*,但由于我使用的是Server 2008,因此遇到兼容性问题
  • 这发生在其中一个分布式服务器上,而不是运行Webdashboard的主服务器上。
  • 我在某处读过这个问题可能源于一个不同的用户调用CruiseControl,但 的问题已经通过将其设置为ENV系统变量来解决< / LI>
  • 是否可以修改注册表以设置ENV变量?

提前谢谢

3 个答案:

答案 0 :(得分:0)

我这样做的方式就像这样

printf 'export CYGWIN=nodosfilewarning' >> ~/.bash_profile

答案 1 :(得分:0)

如果CruiseControl通过ssh连接到服务器,请在安装过程中提示输入sshd环境变量时重新安装nodosfilewarning并明确包含CYGWIN

答案 2 :(得分:0)

使用已修改的环境重新安装将有效,但如果您不想或无法重新安装,则可以选择更改注册表而不是重新安装该服务。

请参阅:CYGWIN windows cygrunsrv sshd server and MS-DOS style path detected