2011-04-13 55 views
0

我想创建一个npm's(curl http://example.com/install.sh | sh)的安装脚本,但它让我问这个问题:我可以在perl中写脚本吗?据我所知,默认情况下perl默认安装在至少ubuntu,RHEL & OS X上 - 所以我想知道在2011年,我能不能编写shell并且仍然足够通用于每个人?有第三个更好的选择吗?shell脚本与perl的安装脚本 - perl的普遍程度如何?

这将针对用户的开发盒,而不是阶段或生产。

我特别想做的就是使用这个安装脚本轻松地引导开发环境,而无需创建和维护包的开销。该脚本将有4个步骤:

  1. 检查,请确保安装的git
  2. 使用git克隆一个回购协议CWD
  3. 拉下来,一个perl控制脚本保存到/ usr/bin中,使它可执行
  4. 添加一些环境变量(相关帖子:linux cross-distro environment variable modification via script?

就是这样。我的想法是这样简单而通用,足以使用引导脚本而不是软件包。我的目标受众是用户的Unix或Linux本地开发系统。

+0

谁是你的目标受众? – Gabe 2011-04-13 05:29:58

回答

3

最好的选择是简单地使用现有的,充分润滑和使用的(开发)工具链来编写目标应用程序所用的语言。不这样做会轻易地丢弃从生态环境中获得的网络效应他们。

  • C:GNU自动
  • 哈斯克尔:惊天动地
  • 的Perl:EU::MMM::BM::I

等等,等等

从Web安装应预留方便将用户的系统引导到开发环境中

请告诉你有关软件的更多细节,以获得较少的一般性建议。


编辑:回应您的附录。

我劝阻你从Web安装程序。这不是引导安装工具,这是软件的简单安装,应该用例如软件来完成。一个Module :: Build子类。

1

这里的Perl的各个版本的列表:

https://www.socialtext.net/perl5/distributions

即使Perl不会在每一个有点晦涩难懂发行出货它只是一个apt-get的(或其他)的路程。不过,由于安装了各种版本的Perl,您可能会遇到问题。

+0

我只是想澄清,我不是说你不应该使用perl,只是不要太花哨! – 2011-04-13 22:01:36

3

我认为perl已经足以让你编写你的安装程序了。无论如何,壳牌还是非常笨拙。

您可能想要考虑将应用程序实际打包为deb或rpm,或者甚至使用makeself而不是提供原始脚本。

+1

deb *和* rpm,听起来像 – ysth 2011-04-13 05:48:17

+0

和/或视情况而定。 :) – 2011-04-13 06:07:07

-1

使用类似:

perl -E "$(wget -q -O - http://host/intall.pl)" 

您也可以使用

`cmd` 

代替

$(cmd) 

但无论如何,双引号你的选择。

+0

获得便携式lstat之类的东西,而不是GNU Vs POSIX VS BSD V等等......查看[perldoc.perl.org](http://perldoc.perl.org)中的所有核心功能和模块。请注意,.pl扩展名不需要,只是在这里添加上下文。确保httpd将其作为静态或文本/纯文本格式。 – poisonbit 2011-04-13 21:35:41