从 CPAN 安装 Perl 模块¶
如果有特殊要求,则可能需要其他Perl模块。幸运的是,Perl具有出色的软件包存储库,可以满足几乎所有需求。该存储库称为CPAN,可从https://metacpan.org/获得。
建议使用命令行客户端 cpanm
安装模块。通常系统上已经安装了 cpanm
。如果尚未安装,请参阅 https://metacpan.org/pod/App::cpanminus。
此外,许多 Perl 模块也可以作为操作系统的软件包提供。这些软件包可以通过系统常规的软件包管理器进行安装。
默认情况下,“ cpanm”会将模块安装到系统范围内的位置。在这种情况下,必须以root用户身份安装模块。例如,命令
root> cpanm Acme::Dice
结果是:
otobo> perldoc -l Acme::Dice
/usr/local/share/perl/5.30.0/Acme/Dice.pm
基于 Docker 的安装¶
在 Docker 下运行 OTOBO 时必须特别小心。在这种情况下,安装到系统范围内的位置最初也是可行的。但是,由于 Docker 的工作方式,安装的模块会在容器重启时丢失。因此,必须将模块安装到一个能在重启后继续运行的位置。为此,可以使用**otobo_opt_otobo**卷中的`/opt/otobo/local``目录。安装在 /opt/otobo/local
中的模块将被 Perl 接收,因为环境变量 PERL5LIB
和 PATH
已经相应预设。
OTOBO 升级后,已安装的 Perl 模块也将可用。一般来说,添加到 /opt/otobo
中的文件不会被升级删除。
要在特定位置安装 Perl 模块,我们需要修改 install 命令。具体来说,我们需要添加选项 --local-lib
。下面是**web**容器中的一个会话示例。
# starting a bash session in the container web
docker_admin> cd /opt/otobo-docker/
docker_admin> docker-compose exec web bash
otobo@6ef90ed00cd0:~$ pwd
/opt/otobo
# installing the sample module Acme::Dice
otobo@6ef90ed00cd0:~$ cpanm --local-lib local Acme::Dice
--> Working on Acme::Dice
Fetching http://www.cpan.org/authors/id/B/BO/BOFTX/Acme-Dice-1.01.tar.gz ... OK
Configuring Acme-Dice-1.01 ... OK
Building and testing Acme-Dice-1.01 ... OK
Successfully installed Acme-Dice-1.01
1 distribution installed
# confirm the installation directory
otobo@6ef90ed00cd0:~$ perldoc -l Acme::Dice
/opt/otobo/local/lib/perl5/Acme/Dice.pm
# locally installed module is found because the environment is preset accordingly
otobo@6ef90ed00cd0:~$ echo $PERL5LIB
/opt/otobo_install/local/lib/perl5:/opt/otobo/local/lib/perl5
otobo@6ef90ed00cd0:~$ echo $PATH
/opt/otobo_install/local/bin:/opt/otobo/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin