我正在尝试重新创建一个部署在 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 应用程序的不同工作说明,我将不胜感激。谷歌尚未收到任何其他选项。