首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash脚本中安装cpanm

在bash脚本中安装cpanm
EN

Stack Overflow用户
提问于 2015-07-08 23:13:27
回答 1查看 1.5K关注 0票数 1

我正在编写一个脚本来安装Nagios并将其配置为我的需求。它需要cpanm和一些perl模块。

它使用这里的步骤/try/next函数:https://stackoverflow.com/a/5196220

代码语言:javascript
复制
step "Downloading cpanm installer"
 try `wget -q http://cpanmin.us -O $swrepo/cpanm.install`
next

step "Installing cpanm"
  try echo '{ exec </dev/tty; cat $swrepo/cpanm.install | perl - App::cpanminus; }' | bash
  # try bash -c "$(cat $swrepo/cpanm.install | perl - App::cpanminus)"
  # try cat $swrepo/cpanm.install | perl - App::cpanminus
next

step "Installing Perl module Nagios Config"
  try `cpanm Nagios::Config`
next

我在这里的问题是:

  1. 无论我如何尝试运行cpan减号的安装,它都会失败,并且不会正确安装。我似乎无法使它在步骤/try/next函数之外运行(据我所希望的那样)。
  2. cpanm命令也失败。如果我只隔离并运行脚本的这一部分,它仍然会失败,"cpanm命令找不到“。我可以在命令行手动运行它。

对有些沮丧的人有指点吗?

更新

我将cpanm安装程序拉出到一个单独的文件中:下一步“安装cpanm”尝试sh conf_cpanm.sh。

这是可行的,我可能会尝试在稍后的日期把它拉回来,但到目前为止,它起作用了。这样它就能留下了。

但是,为try cpanm Nagios::Config执行相同的操作将无法工作。该文件如下所示:

代码语言:javascript
复制
#!/bin/bash
cpanm Nagios::Config

...and,如果我通过调用sh conf_nagcpanm.sh来运行它,它可以正常工作。

EN

回答 1

Stack Overflow用户

发布于 2015-07-09 00:52:43

我想用后排

代码语言:javascript
复制
try `cpanm Nagios::Config`

是个错误。bash将在backticks中获取一个表达式,并执行它,并将命令的输出替换为表达式。cpanm的输出不会是shell命令,所以这是行不通的。它应该很简单

代码语言:javascript
复制
try cpanm Nagios::Config
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31305446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档