2

我正在尝试重新创建一个部署在 Heroku 上的 Dancer 应用程序的最小示例,正如deploying-a-dancer-app-on-heroku.md 不幸的那样,我的部署在安装 时失败cpanm,特别是version.

以下是我在 Strawberry Perl 5.18.2、Windows 7 上运行的确切命令:

  • cd C:\tmp
  • dancer -a myheroku
    + myheroku
    + myheroku\bin
    + myheroku\bin\app.pl
    + myheroku\MANIFEST.SKIP
    + myheroku\公共
    + myheroku\public\404.html
    + myheroku\公共\图像
    + myheroku\public\dispatch.cgi
    + myheroku\public\css
    + myheroku\public\css\error.css
    + myheroku\public\css\style.css
    + myheroku\public\500.html
    + myheroku\public\javascripts
    + myheroku\public\javascripts\jquery.js
    + myheroku\public\dispatch.fcgi
    + myheroku\Makefile.PL
    + myheroku\t
    + myheroku\t\001_base.t
    + myheroku\t\002_index_route.t
    + myheroku\视图
    + myheroku\视图\布局
    + myheroku\views\layouts\main.tt
    + myheroku\views\index.tt
    + myheroku\lib
      myheroku\lib
    + myheroku\lib\myheroku.pm
    + myheroku\config.yml
    + myheroku\环境
    + myheroku\环境\生产.yml
    + myheroku\环境\development.yml

然后在 Git Bash 中,我执行以下操作:

  • cd myheroku/
  • git init
  • git add .
  • git update-index --chmod=+x bin/app.pl
  • git commit -a -m "Dancer on Heroku"
    [master (root-commit) ced2e50] Heroku 上的舞者
     22 个文件更改,813 个插入(+)
     创建模式 100644 MANIFEST
     创建模式 100644 MANIFEST.SKIP
     创建模式 100644 Makefile.PL
     创建模式 100755 bin/app.pl
     创建模式 100644 config.yml
     创建模式 100644 环境/development.yml
     创建模式 100644 环境/production.yml
     创建模式 100644 lib/myheroku.pm
     创建模式 100644 public/404.html
     创建模式 100644 public/500.html
     创建模式 100644 public/css/error.css
     创建模式 100644 public/css/style.css
     创建模式 100644 public/dispatch.cgi
     创建模式 100644 public/dispatch.fcgi
     创建模式 100644 public/favicon.ico
     创建模式 100644 public/images/perldancer-bg.jpg
     创建模式 100644 public/images/perldancer.jpg
     创建模式 100644 public/javascripts/jquery.js
     创建模式 100644 t/001_base.t
     创建模式 100644 t/002_index_route.t
     创建模式 100644 次浏览/index.tt
     创建模式 100644 视图/布局/main.tt
    Miller@NEWTON /c/tmp/myheroku(主)
  • heroku create --stack cedar --buildpack http://github.com/damog/heroku-buildpack-perl.git链接到 buildpack
    创建 serene-mountain-6144... 完成,堆栈是 cedar
    BUILDPACK_URL=http://github.com/damog/heroku-buildpack-perl.git
    http://serene-mountain-6144.herokuapp.com/ | git@heroku.com:serene-mountain-6144.git
    添加了 Git 远程 heroku
    Miller@NEWTON /c/tmp/myheroku(主)
  • git push heroku master
    输入密钥“/c/Users/Miller/.ssh/id_rsa”的密码:
    初始化存储库,完成。
    计数对象:34,完成。
    Delta 压缩最多使用 4 个线程。
    压缩对象:100% (30/30),完成。
    写入对象:100% (34/34),40.71 KiB,完成。
    总计 34(增量 3),重复使用 0(增量 0)

    -----> 获取自定义 git buildpack... 完成
    -----> Perl/PSGI 舞者!检测到应用
    -----> 引导 cpanm
           成功安装版本-0.9908(从0.77升级)
           !安装依赖项失败:版本的安装版本(0.77)不在“0.87”范围内
           !拯救 Module-Metadata-1.000019 的安装。
           成功安装Scalar-List-Utils-1.38(从1.21升级)
           成功安装 JSON-PP-2.27203
           成功安装Test-Simple-1.001003(从0.92升级)
           成功安装 CPAN-Meta-YAML-0.012
           成功安装 Parse-CPAN-Meta-1.4414(从 1.39 升级)
           成功安装 CPAN-Meta-Requirements-2.125
           !安装依赖项失败:List::Util 的安装版本 (1.21) 不在“1.33”范围内,版本的安装版本 (0.77) 不在“0.88”范围内
           !拯救 CPAN-Meta-2.140640 的安装。
           成功安装 Perl-OSType-1.007
           成功安装ExtUtils-CBuilder-0.280216(从0.2602升级)
           成功安装ExtUtils-ParseXS-3.24(从2.2002升级)
           !安装依赖项失败:未安装模块“Module::Metadata”,未安装模块“CPAN::Meta”,安装的版本(0.77)不在“0.87”范围内
           !为 Module-Build-0.4205 提供安装。
           !安装依赖项失败:Module::Build 的安装版本 (0.340201) 不在“0.36”范围内
           !救助 App-cpanminus-1.7001 的安装。
           安装了 10 个发行版
    -----> 安装依赖
           /tmp/buildpack_24863d3e-f650-49e3-b75b-3ec1285e3ded/bin/compile: 30: ./local/bin/cpanm: 未找到
    -----> 安装 Starman
           /tmp/buildpack_24863d3e-f650-49e3-b75b-3ec1285e3ded/bin/compile: 33: ./local/bin/cpanm: 未找到
    -----> 发现进程类型
           Procfile 声明类型->(无)
           Perl/PSGI Dancer 的默认类型!-> 网络

    -----> 压缩...完成,428K
    -----> 正在启动...完成,v5
           http://serene-mountain-6144.herokuapp.com/ 部署到 Heroku

    至 git@heroku.com:serene-mountain-6144.git
     * [新分支] master -> master
    Miller@NEWTON /c/tmp/myheroku(主)

正如您在上面的结果中看到的那样,cpanm 尝试升级version,声称它是成功的,但随后立即声称它不成功并且 barfs。编译指令的相关行 是:

if ! [ -e $BUILD_DIR/local/bin/cpanm ]; then
  echo "-----> Bootstrapping cpanm"
  curl --silent https://raw.github.com/miyagawa/cpanminus/master/cpanm | perl - App::cpanminus 2>&1 | indent
fi

如果有人能帮我弄清楚这个最小构建包哪里出了问题,或者我可以在哪里找到一些安装 Dancer 应用程序的不同工作说明,我将不胜感激。谷歌尚未收到任何其他选项。

4

1 回答 1

0

我怀疑您系统的 Perl 模块在 cpanm 新安装的模块之前被检测到。查看 cpanm 模块的安装位置,并设置环境变量 PERL5LIB 以首先尝试这些目录,然后再运行“git push heroku master”。

于 2014-08-25T20:43:46.743 回答