CPAN安装 - 不允许裸词(Windows)
我在Perl中继承了一个项目 - 我对这个不太了解的环境。没有其他人对此一无所知,也没有人知道如何在本地运行它。因此,该项目是通过使用AWS实例的克隆VM开发的,我厌倦了在VM和本地机器之间保持同步的范围。因此,我正在尝试使项目在Windows上运行。
我已经安装了草莓perl。
有一个包含的cpanfile:
Docker/cpanfile;
requires 'Time::Piece';
requires 'File::Slurp';
和docker/cpanfile
包含:
requires 'Time::Format';
requires 'Carton';
requires 'curry';
requires 'IO::Socket::SSL', '2.009';
requires 'Mojolicious', '8.40';
requires 'JSON::MaybeXS';
requires 'Mojo::mysql';
requires 'DateTime';
requires 'Mojo::JSON';
requires 'Data::Dumper';
requires 'Data::Dumper::Compact';
requires 'Data::Dump';
requires 'Mojo::UserAgent';
requires 'Storable';
requires 'DateTime::Format::ISO8601';
requires 'DateTime::Format::ISO8601::Format';
requires 'DateTime::Format::MySQL';
requires 'Mojolicious::Plugin::OAuth2';
requires 'Mojolicious::Plugin::OpenAPI';
requires 'Mojo::JWT';
requires 'File::Slurper';
requires 'Text::Table';
requires 'DateTime::Span';
requires 'Data::Format::Pretty::Console';
requires 'WebService::GoogleAPI::Client';
requires 'Email::Sender::Simple';
requires 'Email::Stuffer';
requires 'MIME::Base64::URLSafe';
requires 'Crypt::PBKDF2';
requires 'Try::Tiny';
requires 'Date::Calc::Iterator';
requires 'Mojolicious::Plugin::PODViewer';
requires 'Term::ProgressBar';
requires 'List::Util';
requires 'Data::Printer';
requires 'Mojolicious::Plugin::OAuth2';
requires 'Excel::Writer::XLSX';
requires 'Text::Table::Any';
requires 'PDF::API2';
requires 'GD';
requires 'Text::Table::HTML';
requires 'String::Interpolate';
requires 'MIME::Base64';
requires 'Algorithm::Permute';
requires 'Time::HiRes';
requires 'Benchmark::Object';
requires 'Devel::Size';
requires 'Set::Scalar';
requires 'Mojolicious::Plugin::WriteExcel';
requires 'Array::Utils';
requires 'Mojolicious::Plugin::RenderFile';
requires 'Test::mysqld';
requires 'Getopt::Long';
requires 'Mojolicious::Plugin::Minion';
requires 'Minion::Backend::mysql';
requires 'Mojolicious::Plugin::Minion::Admin';
requires 'HTTP::UA::Parser';
requires 'TAP::Formatter::HTML';
requires 'App::Yath';
对我来说相当基本。 然而,在git bash中运行cpanm- installDeps
受益:
Configuring /c/sites/ProjectName... FAIL
! Parsing cpanfile failed: Bareword "Docker" not allowed while "strict subs" in use at cpanfile line 1.
Bareword "cpanfile" not allowed while "strict subs" in use at cpanfile line 1.
! Configuring . failed. See /c/Users/joshd/.cpanm/work/1657148855.2012/build.log for details.
那么我是否必须禁用某种严格性?还是我应该改变的东西。 同样,尽管有“ docker”的参考,但没有码头图像,我认为码头文件已过时几年,所以我认为这是不必要的。
I've inherited a project in Perl - an environment I know very little about. Nobody else knows anything about it either and nobody knows how to even get it running natively. So the project is developed by using a cloned VM of the AWS instance, and I'm getting fed up at keeping things in sync between the VM and my local machine. So I'm trying to get the project to run on Windows.
I have installed Strawberry Perl.
There is a cpanfile that contains:
Docker/cpanfile;
requires 'Time::Piece';
requires 'File::Slurp';
And Docker/cpanfile
contains:
requires 'Time::Format';
requires 'Carton';
requires 'curry';
requires 'IO::Socket::SSL', '2.009';
requires 'Mojolicious', '8.40';
requires 'JSON::MaybeXS';
requires 'Mojo::mysql';
requires 'DateTime';
requires 'Mojo::JSON';
requires 'Data::Dumper';
requires 'Data::Dumper::Compact';
requires 'Data::Dump';
requires 'Mojo::UserAgent';
requires 'Storable';
requires 'DateTime::Format::ISO8601';
requires 'DateTime::Format::ISO8601::Format';
requires 'DateTime::Format::MySQL';
requires 'Mojolicious::Plugin::OAuth2';
requires 'Mojolicious::Plugin::OpenAPI';
requires 'Mojo::JWT';
requires 'File::Slurper';
requires 'Text::Table';
requires 'DateTime::Span';
requires 'Data::Format::Pretty::Console';
requires 'WebService::GoogleAPI::Client';
requires 'Email::Sender::Simple';
requires 'Email::Stuffer';
requires 'MIME::Base64::URLSafe';
requires 'Crypt::PBKDF2';
requires 'Try::Tiny';
requires 'Date::Calc::Iterator';
requires 'Mojolicious::Plugin::PODViewer';
requires 'Term::ProgressBar';
requires 'List::Util';
requires 'Data::Printer';
requires 'Mojolicious::Plugin::OAuth2';
requires 'Excel::Writer::XLSX';
requires 'Text::Table::Any';
requires 'PDF::API2';
requires 'GD';
requires 'Text::Table::HTML';
requires 'String::Interpolate';
requires 'MIME::Base64';
requires 'Algorithm::Permute';
requires 'Time::HiRes';
requires 'Benchmark::Object';
requires 'Devel::Size';
requires 'Set::Scalar';
requires 'Mojolicious::Plugin::WriteExcel';
requires 'Array::Utils';
requires 'Mojolicious::Plugin::RenderFile';
requires 'Test::mysqld';
requires 'Getopt::Long';
requires 'Mojolicious::Plugin::Minion';
requires 'Minion::Backend::mysql';
requires 'Mojolicious::Plugin::Minion::Admin';
requires 'HTTP::UA::Parser';
requires 'TAP::Formatter::HTML';
requires 'App::Yath';
Looks fairly basic to me.
Yet running cpanm --installdeps
in git bash yields:
Configuring /c/sites/ProjectName... FAIL
! Parsing cpanfile failed: Bareword "Docker" not allowed while "strict subs" in use at cpanfile line 1.
Bareword "cpanfile" not allowed while "strict subs" in use at cpanfile line 1.
! Configuring . failed. See /c/Users/joshd/.cpanm/work/1657148855.2012/build.log for details.
So do I have to disable strictness of some sort? Or is there something I should be changing.
Also despite the "Docker" reference, there is not a Docker Image and the docker file is I think years out of date so I don't think that's a way to go.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Docker/cpanfile;
除以docker
cpanfile
并丢弃结果。那不是很有用。那不是很正确。沉默错误消息不是正确的方法。我想你想要
Docker/cpanfile;
dividesDocker
bycpanfile
and discards the result. That's not very useful. That's not very correct. Silencing the error message is not the correct approach.I think you want
cpanfile 大致是perl代码(我认为这是一个坏主意,但人们确实涉足他们认为是DSL的想法)。有一些理智的检查,但是在某个时候,有人会找出一些聪明的东西,将其用作攻击向量来运行任意代码。
并不是说我有其他选择,而是我最近一直在思考的事情。
cpanfile is roughly Perl code (which I think is a bad idea, but people were really into what they thought were DSLs). There is some sanity checking, but at some point someone is going to figure out something clever to use it as an attack vector to run arbitrary code.
Not that I have an alternative, but it is something that I've been thinking a lot about lately.