问题标签 [locallib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1712 浏览

perl - 升级 local::lib 安装的所有模块

我一直在使用 local::lib 来处理服务器上 Perl 模块的安装,因此我可以为某些开发工作获得正确的版本,而不会污染系统安装。

但是,系统管理员最近将 Perl 从 5.16 升级到 5.18,我现在遇到了与二进制模块相关的错误,例如

我的理解是,我可以通过强制 local::lib 重建其所有模块来解决问题,但我在文档中找不到任何告诉我如何执行此操作,甚至如何获取所有模块的列表已使用 local::lib 安装的模块(如果我在“每行一个模块”文本文件中有它,我可以轻松编写一个 Bash 脚本来处理它)。

这可能吗,还是我必须删除 ~/perl5 目录并从头开始重新安装所有模块(可能缺少一些,因为我不记得它们全部)?

0 投票
0 回答
98 浏览

perl - 将 local::lib 与 3-rd 方共享 .so 库一起使用

我有一个 Perl 库,它由一个二进制形式的 C 库(.so文件)和该库的 Perl 绑定源(Makefile.PL等)组成。

我所需要的只是运行库附带的 Perl 示例的能力。我想避免全局安装任何东西或更改系统范围的配置。

所以我创建了一个特殊用户,我希望一切都在主目录中运行。更改环境并在 homedir 中添加文件/文件夹当然没问题。

我已经在local::lib系统范围内安装了各种 CPAN 助手 ( cpancpanp因此cpanm如果它们有任何帮助我可以使用它们。

我可以创建~/lib并放在.so那里,或者把它放在里面的某个地方~/perl5

问题是如何在编译期间和运行时使共享 C 库可用于 Perl 绑定。似乎我需要LD_LIBRARY_PATHLDFLAGS环境变量,但我不确定如何将它们与local::lib.

此外,该库被命名为foo.1.2.3.4.sobut linker want -lfoo。我应该自己创建foo.so -> foo.1.2.3.4.so符号链接吗?

更新:

生成的相关部分Makefile

修补 LDDLFLAGS 以包含一个额外的-L开关可以工作,但感觉很脏。

0 投票
1 回答
533 浏览

perl - Perl - Local::lib 在@INC 中找不到始终如一的本地路径 - 与 perlbrew 冲突?

我没有对系统的 root 访问权限,所以我使用 local::lib 安装 perl 模块,我使用引导方法安装了该模块:

然后我成功安装了 cpanm 并使用 cpanm 快速安装了模块。但是,当我尝试使用 fasgrep 函数时,出现以下错误:

我已经检查了 FAST.pm 在本地库中是否可用,但系统似乎并没有在那里寻找它。

根据路径变量,它应该在正确的位置查找:

我什至将 export PER5LIB=$HOME/perl5/lib/perl5 添加到我的 .bash_profile 中,但它仍然不起作用。

我对使用 perl 很陌生。问题可能是我还安装了 perlbrew 吗?如果是这样,我怎样才能对 prelbrew 进行“干净”卸载?

0 投票
1 回答
70 浏览

macos - 指定本地 perl 库的位置

基本上,我在 Ubuntu 和 OS X 上试过这个:

然而第三行坚持创建和安装所有的东西,~/perl5而不是~/.perl5. 我该如何克服这种行为?

0 投票
1 回答
2247 浏览

perl - 如何将 CPAN 的配置从 local::lib 更改为 sudo 首选项

您好,刚开始使用 perl 并使用以下代码安装了 CPAN:$ perl -MCPAN -e shell,我收到以下提示:

要安装模块,您需要配置本地 Perl 库目录或提升您的权限。CPAN 可以通过引导 local::lib 模块或将其自身配置为使用“sudo”(如果可用)来帮助您。如果您需要自定义设置,您也可以手动解决此问题。

你想要什么方法?(选择“local::lib”、“sudo”或“手动”)

我选择了 local::lib,但我意识到这可能不是我想做的最好的事情,现在想切换到 sudo 来构建不在本地库中的模块。我曾尝试建立图书馆,但它们总是被放入本地图书馆。

我该怎么做?谢谢

0 投票
1 回答
79 浏览

perl - Perl 无法识别 root 用户的模块/模块路径

我是 Perl 的新手,所以请多多包涵。谢谢您的帮助。

我有一台装有 Perl 的 Ubuntu 机器。我遵循了local::lib 引导指南

我使用 cpanm 将 DBI 和其他模块安装到我的系统中。我担心我的系统上可能还有其他可用的 DBI 模块,这可能是问题的一部分。这是结果find / -name 'DBI.pm' 2>/dev/null

我在 .bashrc 文件中添加了 2 行。(我添加了第二行,因为我为非 root 用户破坏了一些东西并修复了它;也许我用 local::lib 破坏了一些东西?)

我可以以非 root 用户身份运行我的 perl 脚本。如果我运行sudo perlScript.pl我会收到此错误:Can't locate DBI.pm in @INC (you may need to install the DBI module)

我已经对@INC 进行了一段时间的故障排除,但无法弄清楚如何为 root 用户调整它。我尝试了各种方法,包括将 PERL5LIB 添加到 .profile 并像这样调用我的脚本:(sudo sh -c '. ~/.profile; perl ~/perlScripts/perlScript.pl "argForScript"'我验证了 PERL5LIB 设置为sudo sh -c '. ~/.profile; echo $PERL5LIB'

但是我总是收到@INC 错误。我注意到的最明显的事情是比较sudo perl -Vperl -V。sudo 调用不显示任何 ENV 变量,并且 @INC 不包括所需的 PERL5LIB 位置。非 sudo 调用确实显示了所需的 ENV 和 @INC 变量。

我正在考虑擦除东西并使用 root 权限对 local::lib 和 cpan 进行全新安装。目前还不确定还有什么可以尝试的。