安装脚本的 shell 脚本与 perl - perl 有多普遍?

Posted

技术标签:

【中文标题】安装脚本的 shell 脚本与 perl - perl 有多普遍?【英文标题】:shell script vs. perl for an install script - how ubiquitous is perl? 【发布时间】:2011-04-13 05:16:42 【问题描述】:

我想以 npm (curl http://example.com/install.sh | sh) 的方式创建一个安装脚本,但这让我问了一个问题:我可以只用 perl 编写脚本吗?据我所知,至少在 ubuntu、RHEL 和 OS X 上默认安装了 perl - 所以我想知道在 2011 年,我可以不写 shell 并且仍然对每个人都足够通用吗?有第三种更好的选择吗?

这将针对用户的开发框,而不是登台或生产。

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

    检查并确保安装了 git 使用 git 将 repo 克隆到 cwd 下拉并保存一个perl控制脚本到/usr/bin,使其可执行 添加一些环境变量(相关帖子:linux cross-distro environment variable modification via script?)

就是这样。我的想法是这足够简单和通用,可以使用引导脚本而不是包。而我的目标受众是用户的 unix 或 linux 本地开发系统。

【问题讨论】:

【参考方案1】:

最好的选择是简单地使用现有的、运行良好的(开发)工具链来编写目标应用程序所用的语言。不这样做会轻率地丢弃从围绕它们发展的生态系统中获得的网络效应.

C:GNU 自动工具 哈斯克尔:阴谋集团 Perl:EU::MM、M::B、M::I

等等。等等

应保留从 Web 安装,以便方便地将用户的系统引导到开发环境中。

请提供有关您的软件的更多详细信息,以获得不那么笼统的建议。


编辑:对您的附录的回应。

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

【讨论】:

【参考方案2】:

我认为 perl 无处不在,足以让您在其中编写安装程序。无论如何,壳牌要尴尬得多。

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

【讨论】:

和/或视情况而定。 :)【参考方案3】:

这里列出了 perl 的各种发行版:

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

即使 perl 没有在每个不起眼的小发行版上提供,它也只是一个 apt-get(或其他)。但是,由于安装了各种版本的 perl,您可能会遇到问题。

【讨论】:

我只是想澄清一下,我并不是说你不应该使用 perl,只是不要太花哨!【参考方案4】:

使用类似的东西:

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

你也可以使用

`cmd`

而不是

$(cmd)

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

【讨论】:

并获得诸如便携式 lstat 之类的东西,而不是 GNU Vs POSIX Vs BSD Vs 等...查看perldoc.perl.org 中的所有核心功能和模块。请注意,.pl 扩展名是不需要的,只是在这里添加上下文。确保 httpd 将其作为静态或文本/纯文本提供。

以上是关于安装脚本的 shell 脚本与 perl - perl 有多普遍?的主要内容,如果未能解决你的问题,请参考以下文章

写个脚本使用perl或shell对比oracle表数据,急啊,高分悬赏!

如何在 localhost 中运行 perl 脚本?

shell脚本下载webkit夜间构建

用 java 重写 Perl 和 shell 脚本有意义吗?

为啥脚本语言(例如 Perl、Python、Ruby)不适合作为 shell 语言? [关闭]

Linux下PerlShell脚本加密方法