我正在尝试重新创建一个部署在 Heroku 上的 Dancer 应用程序的最小示例,正如deploying-a-dancer-app-on-heroku.md 不幸的那样,我的部署在安装 时失败cpanm,特别是version.
以下是我在 Strawberry Perl 5.18.2、Windows 7 上运行的确切命令:
cd C:\tmpdancer -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 initgit add .git update-index --chmod=+x bin/app.plgit 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 应用程序的不同工作说明,我将不胜感激。谷歌尚未收到任何其他选项。