CPAN安装 - 不允许裸词(Windows)

发布于 2025-02-13 13:10:59 字数 2599 浏览 1 评论 0原文

我在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾其所爱 2025-02-20 13:10:59

Docker/cpanfile;除以docker cpanfile 并丢弃结果。那不是很有用。那不是很正确。沉默错误消息不是正确的方法。

我想你想要

use FindBin qw( $RealBin );
do( "$RealBin/Docker/cpanfile" )
   or die( $@ // $! );

Docker/cpanfile; divides Docker by cpanfile 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

use FindBin qw( $RealBin );
do( "$RealBin/Docker/cpanfile" )
   or die( $@ // $! );
飘落散花 2025-02-20 13:10:59

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文