在没有 Internet 连接的防火墙后机器上安装 cpan 或 cpanm 模块
Installing cpan or cpanm modules on a behind-firewall machine with no Internet connection
我已经读过 related threads like these,但他们没有完全了解我们的情况。
- 这是在有防火墙的机器上。不能上网。我们可以 ftp 文件到文件夹并从那里安装模块。
- 我们在某些文件夹上为我们的用户设置了 CHMOD 777。如果我们通过下载相关的
.pm
文件在本地构建它们,我们就可以安装 Perl 模块。但是当这些文件无法安装时,我们没有任何cpan
或cpanm
。
我想安装,例如HTML::Restrict
。如果我执行下载 + 安装操作,Restrict.pm 会给我这个错误:
/lib/HTML/Restrict.PM:328: Unknown command paragraph "=encoding UTF-8"
在线阅读了一下,这表明这可能是一个旧的 Perl 问题。我们使用 5.8.x。我们自己的开发机器拥有 5.16.x 和互联网访问权限,因此安装模块是小菜一碟。无论如何,我的一台旧机器也有 5.8.x,并且通过 cpanminus 安装模块在那里工作(通过互联网)。
所以,问题:是否可以通过FTP安装"cpanminus"(cpanm
),然后也通过FTP上传特定的模块文件到服务器,以及然后进入 shell 并通过 cpanm
将模块指向相应的 .pm
文件来安装模块?
感谢您的指点。
您应该看看 perldoc perlmodinstall
,其中详细介绍了如何从其分发版安装模块。它遵循的应该是熟悉的咒语
- 解压缩
- 解压
- 建造
- 测试
- 安装
假设您使用的是 Linux 系统,这通常采用
的形式
gzip -d My-Module-Distribution.tar.gz
tar -xof My-Module-Distribution.tar
perl Makefile.PL
make
make test
make install
但在 解压 阶段之后,您通常会发现一个 README
文件或其他文本文件,其中描述了要采取的任何异常步骤
显然可以合并其中的一些步骤。例如,大多数人可能想使用
tar -xvfz My-Module-Distribution.tar.gz
以避免必须单独调用 gzip
。同样,如果您只使用
,make 系统将强制构建阶段作为先决条件
make test
没有前面的make
链接文档说了很多关于如何在其他平台上安装,你应该不会运行一个Linux变体
我还是不太明白你的想法,不过你可以用curl
弄个单机版的cpanm
。例如
curl -sS --location https://cpanmin.us/ --output cpanm
然后你应该能够将它复制到你的目标机器,把它放在你的 PATH 上,然后做
cpanm HTML-Restrict-2.2.2.tar.gz
但我怀疑您是否会发现您遇到的特定错误有任何变化
我已经读过 related threads like these,但他们没有完全了解我们的情况。
- 这是在有防火墙的机器上。不能上网。我们可以 ftp 文件到文件夹并从那里安装模块。
- 我们在某些文件夹上为我们的用户设置了 CHMOD 777。如果我们通过下载相关的
.pm
文件在本地构建它们,我们就可以安装 Perl 模块。但是当这些文件无法安装时,我们没有任何cpan
或cpanm
。
我想安装,例如HTML::Restrict
。如果我执行下载 + 安装操作,Restrict.pm 会给我这个错误:
/lib/HTML/Restrict.PM:328: Unknown command paragraph "=encoding UTF-8"
在线阅读了一下,这表明这可能是一个旧的 Perl 问题。我们使用 5.8.x。我们自己的开发机器拥有 5.16.x 和互联网访问权限,因此安装模块是小菜一碟。无论如何,我的一台旧机器也有 5.8.x,并且通过 cpanminus 安装模块在那里工作(通过互联网)。
所以,问题:是否可以通过FTP安装"cpanminus"(cpanm
),然后也通过FTP上传特定的模块文件到服务器,以及然后进入 shell 并通过 cpanm
将模块指向相应的 .pm
文件来安装模块?
感谢您的指点。
您应该看看 perldoc perlmodinstall
,其中详细介绍了如何从其分发版安装模块。它遵循的应该是熟悉的咒语
- 解压缩
- 解压
- 建造
- 测试
- 安装
假设您使用的是 Linux 系统,这通常采用
的形式gzip -d My-Module-Distribution.tar.gz
tar -xof My-Module-Distribution.tar
perl Makefile.PL
make
make test
make install
但在 解压 阶段之后,您通常会发现一个 README
文件或其他文本文件,其中描述了要采取的任何异常步骤
显然可以合并其中的一些步骤。例如,大多数人可能想使用
tar -xvfz My-Module-Distribution.tar.gz
以避免必须单独调用 gzip
。同样,如果您只使用
make test
没有前面的make
链接文档说了很多关于如何在其他平台上安装,你应该不会运行一个Linux变体
我还是不太明白你的想法,不过你可以用curl
弄个单机版的cpanm
。例如
curl -sS --location https://cpanmin.us/ --output cpanm
然后你应该能够将它复制到你的目标机器,把它放在你的 PATH 上,然后做
cpanm HTML-Restrict-2.2.2.tar.gz
但我怀疑您是否会发现您遇到的特定错误有任何变化