我正在尝试设置依赖于少数Perl模块的应用程序,但我安装的服务器没有Internet连接。我通过ppd文件阅读了有关离线模块安装的信息,但是我必须逐个解决所有依赖关系。考虑到我没有直接的互联网连接,所以更加乏味。
我希望找到一个解决方案,在我的PC上安装ActivePerl并安装我想要的所有库,然后将目录复制粘贴到我的服务器上。如果只是修复一些环境变量的问题,那就没问题了。只想知道要修改的最终变量列表。不确定是否必须在要运行它的计算机上安装perl库? (一个是32位平台,另一个是64位,但服务器已经运行了各种32位应用程序,所以我希望它不是一个主要问题)为了获得最佳兼容性,我计划在两个系统上安装ActivePerl并合并库目录是完全相同的。
答案 0 :(得分:2)
答案是在Perl FAQ上,我的错误没有正确完成。
I copied the perl binary from one machine to another, but scripts don't work.
That's probably because you forgot libraries, or library paths differ.
You really should build the whole distribution on the machine it will
eventually live on, and then type "make install". Most other approaches
are doomed to failure.
One simple way to check that things are in the right place is to print
out the hard-coded @INC that perl looks through for libraries:
% perl -le 'print for @INC'
If this command lists any paths that don't exist on your system, then
you may need to move the appropriate libraries to these locations, or
create symbolic links, aliases, or shortcuts appropriately. @INC is also
printed as part of the output of
% perl -V
You might also want to check out "How do I keep my own module/library
directory?" in perlfaq8.
答案 1 :(得分:1)
从此link
偶尔,你将无法做到 使用任何方法安装 模块。如果你这可能就是这种情况 特别是特权不足 用户 - 也许你正在租用网络 服务器上的空间,你不是 有权做任何事情。
对于某些模块,有可能 安装模块而不编译 什么,所以你可以放弃 文件到位并让它工作。 没有进入很多 细节,一些Perl模块包含一个 用其他语言写的部分 (例如C或C ++)和一些是 用Perl写的。它是 后一种类型,这种方法将起作用 对于。你怎么知道的?好吧,如果有的话 没有名为something.c和。的文件 包中的something.h,机会 它是一个包含的模块 只有Perl代码。
在这些情况下,您只需打开包装即可 该文件,然后只复制* .pm 文件到您的目录 将运行模块。两个例子 这应该足以说明如何 这已经完成了。
IniConf.pm非常精彩 允许您阅读的模块 配置信息 .ini样式的配置文件。 IniConf.pm是 仅在Perl中编写,并且没有C 一部分。当你解压缩.tar.gz 你从CPAN获得的文件 在那里找到几个文件,一个 他们被称为IniConf.pm。这是 你实际上唯一的文件 感兴趣的。将该文件复制到 你有Perl的目录 将使用此程序 模块。然后,您可以将模块用作 如果安装的话你会的 “正确”,只有一行:
use IniConf;
时间:: CTime是另一个非常方便的 允许您打印时间的模块 任何打动你的幻想的格式。它 是用Perl编写的,没有C语言 零件。你将只是安装它 与IniConf一样, 除了该文件,称为CTime.pm, 必须放在子目录中 叫时间。冒号,以及 指示模块的组织, 还表示目录结构 在你的文件系统上。