perl 环境配置,VSCode, CPAN 使用

如何安装CPAN模块

CPAN 是 Perl 综合档案网(Comprehensive Perl Archive Network), 是Perl的一站式购物网站.
它有Perl本身的源代码, 可随时安装到各种非 Unix系统, 实例, 文档, Perl的扩展, 以及关于Perl的信息档案.
简而言之, CPAN是全面的.

CPAN被复制在世界各地的数百台镜像机器上;
从 http://search.cpan.org/ 来浏览或搜索档案.

如果你不能上网, 你可能会找到一张CD-ROM或其他的文件. 上面有CPAN的所有有用部分.
请向当地的技术书店查询. 不过, 要找一个最近制作的档案.
因为CPAN每天都在变化, 两年前的存档是个老古董.
更好的办法是找个能上网的好心朋友给你刻录一个今天的CPAN.

这里有一些推荐的方法来安装CPAN中的模块, 就像Perl 的其他方面一样, 有多种选择.

一些基础知识

大多数 Perl模块 是用Perl编写的, 有些使用 XS (它们是用 C编写 的), 所以需要一个C编译器(这很容易设置--不要惊慌),
请看下面你选择的操作系统以了解如何获得正确的编译器.
模块可能依赖于其他模块(几乎总是在 CPAN 上), 没有这些依赖模块就不能安装(或者没有它们的特定版本). 值得通读下面这些选项的文档.
CPAN上的许多模块都需要一个比较新的Perl版本(5.8版或以上).

快速启动

安装 cpanm 以使安装其他模块更容易(你以后会感谢我们).
你需要在一个终端模拟器(Mac OS X, Win32, Linux)中输入这些命令

cpan App::cpanminus

现在安装任何你能找到的模块.

cpanm Module::Name

工具

帮助你安装和管理你的模块.

local::lib 使你能够将模块安装到指定的目录中, 而不需要 root 或管理员权限.
关于如何开始, 请看引导技术.
你可以为每个用户/项目/公司创建一个目录, 并通过复制该目录部署到其他服务器(只要你在同一个操作系统和 perl版本).

来自 App::cpanminus 的 cpanm 是一个从 CPAN 获取, 解包, 构建和安装模块的脚本.
它是无依赖的(可以自己启动, bootstrap), 并且不需要配置(安装说明).
它可以自动完成CPAN上大多数模块的整个构建过程, 并且与 local::libperlbrew 配合得很好.
许多有经验的Perl开发者把它作为他们的首选工具.
相关工具: cpan-outdated, pm-uninstall, cpan-listchanges.

来自 App::perlbrew 的 perlbrew 是很有用的,
如果你的系统 perl 太老了, 不能支持现代的 CPAN 模块, 或者它在其他方面很麻烦(RedHat/CentOS也在此列).
perlbrew 使在任何目录下安装 Perl 的过程变得更容易, 这样你就可以完全独立于任何系统 Perl 工作而不需要 root 或管理员的权限.
你可以在不同的项目中使用多个版本的 Perl(也许随着你的升级).
与系统 Perl 的分离使得服务器的维护更加容易, 而且你对你的项目的设置更加有信心. 目前不支持Windows.

CPAN 中的 cpan 从1997年(5.004)开始与Perl一起发布. 它比 cpanm 有更多的选项, 它也更 verbose.

CPANPLUS 的 cpanp 从5.10(2007)到5.20(2014)一直随Perl发布.
它提供了比 cpanmcpan 更多的选项, 并且可以像 cpanminus 一样安装.

Windows上的Perl(Win32和Win64)

Strawberry Perl 是一个用于Windows操作系统的Perl开源二进制发行版.
它包括一个编译器和预装模块, 提供了直接从 CPAN 安装 XS CPAN 模块的能力. 它还预装了很多模块, 包括 cpanm.

ActiveState 提供Perl的二进制发行版(适用于许多平台), 以及他们自己的 Perl 包管理器(ppm).
有些模块不能以 ppm 的形式提供, 或者在 ppm 构建系统中报告了错误, 这并不意味着它们不能工作.
你可以使用 cpan 脚本从 CPAN 中构建模块来补充 ActiveState Perl.

Mac OSX上的Perl

为了建立和安装你自己的模块, 你需要安装 Command Line Tools for XCodeXCode 软件包--详情见我们的ports page.
一旦你完成了这些, 你就可以使用上面提到的所有工具.

在其他类似Unix的操作系统上使用Perl

通过你的软件包管理器安装 make. 然后你就可以使用上面提到的所有工具了.

其他工具

CPAN::Mini 可以为你提供一个 CPAN 的最小镜像(只是所有模块的最新版本). 这使得离线工作变得很容易.

CPAN::Mini::Inject 允许你将你自己的模块添加到你的 CPAN::Mini 的本地镜像中.
所以你可以通过你用于 CPAN 模块的相同工具来安装和部署你自己的模块.

我应该使用哪些模块?

Task::Kensho 为各种任务列出了建议的最佳实践模块.
https://metacpan.org/ 可以帮你搜索CPAN.
你也可以参与到 社区 中来, 在 邮件列表 中询问, 或者找到离你最近的 Perl Mongers 小组.

vscode 配置, Perl::LanguageServer

Perl::LanguageServer

Gerald Richter/Perl-LanguageServer

若要在 VS Code 中使用 Perl::LanguageServer, 也就是 VS 商店中 perl 语言的拓展,
首先安装拓展, 然后安装它的依赖, 按照 CPAN 官网的教程 install CPAN modules,
先安装 cpanm 以使安装其他模块更容易

cpan App::cpanminus

然后使用 cpanm 安装 Perl LanguageServer:

cpanm Perl::LanguageServer

这一步可能会报错, 由于 LanguageServer 的依赖安装失败, 例如

! Configure failed for IO-AIO-4.76. See /home/你的名字/.cpanm/work/1638862570.72724/build.log for details.

但是报错信息会给出安装日志的路径, 比如上文的 /home/你的名字/.cpanm/work/1638862570.72724.
cd 到这个目录, 可以查看失败的详细原因. 对于我的情况, 在这个文件夹的 config.log 文件中查找 error, 可以看到:

configure:2721: x86_64-linux-gnu-gcc -D_REENTRANT ...   RE -L/usr/share/perl/5.30 -lperl -ldl -lm -lpthread -lc -lcrypt >&5
/usr/bin/ld: cannot find -lperl
collect2: error: ld returned 1 exit status

关键错误是 /usr/bin/ld: cannot find -lperl, bing lperl 可知, 是缺少一个依赖库 libperl-dev,
参考: can't find -lperl, 一行命令安装

sudo apt-get install libperl-dev

再次运行 cpanm Perl::LanguageServer 解决, 如果不行的话, 可以加 sudo 试试.

你可能感兴趣的:(perl 环境配置,VSCode, CPAN 使用)