繁体   English   中英

Perl 将 cpan 安装到特定存储库中

[英]Perl a cpan installation into a specific repository

你好,我实际上在这里安装了一个名为 HmmCleaner 的 perl 模块:

https://metacpan.org/pod/HmmCleaner.pl

为此,我使用:

/beegfs/data/me/perl-5.30.1/localperl/bin/cpan Bio::MUST::Apps::HmmCleaner

但我实际上进入了一个共享集群,其中我们有 2 个主要目录:

/beegfs/home/me

/beegfs/data/me 

并且在主存储库中,我有一个不包含块文件数量的阈值

我有一个阈值,我不能超过块文件的数量,当我运行/beegfs/data/me/perl-5.30.1/localperl/bin/cpan Bio::MUST::Apps::HmmCleaner命令时,对于出于某种原因,一些文件被创建到主目录中,当我查看日志文件时,我发现此时出现问题:

! Installing Bio::MUST::Core::Utils failed. See /beegfs/home/me/.cpanm/work/1580931498.36405/build.log for details. Retry with --force to force install it.
Warning: unable to close filehandle $out properly: Disk quota exceeded at /beegfs/data/me/perl-5.30.1/localperl/bin/cpanm line 49.
Warning: unable to close filehandle $out properly: Disk quota exceeded at /beegfs/data/me/perl-5.30.1/localperl/bin/cpanm line 49.
Warning: unable to close filehandle $out properly: Disk quota exceeded at /beegfs/data/me/perl-5.30.1/localperl/bin/cpanm line 49.

但是当我查看data的磁盘配额时,没有达到内存和卡盘文件限制,但是对于home ,块文件的数量已经超过了!

有人知道如何强制将安装中创建的所有文件运行到数据存储库而不是 home 中吗?

感谢您的帮助。

对于北极熊:

当我做 :

/beegfs/data/me/perl-5.30.1/localperl/bin/cpan -D local::lib

我得到:正在加载内部记录器。 Log::Log4perl 推荐用于更好的日志记录

CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes] yes
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/beegfs/home/me/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/beegfs/home/me/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Thu, 06 Feb 2020 08:41:03 GMT
.............
  New CPAN.pm version (v2.27) available.
  [Currently running version is v2.22]
  You might want to try
    install CPAN
    reload cpan
  to both upgrade CPAN.pm and run the new version without leaving
  the current session.


...............................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/beegfs/home/me/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /beegfs/home/me/.cpan/Metadata
local::lib
-------------------------------------------------------------------------
    (no description)
    H/HA/HAARG/local-lib-2.000024.tar.gz
    (no installation file)
    Installed: not installed
    CPAN:      2.000024  Not up to date
    Graham Knop (HAARG)
    haarg@haarg.org

让我们跟随下一个场景

mv ~/.cpam /beegfs/data/me
ln -s /beegfs/data/me/.cpan ~/.cpan
HOME=/beegfs/data/me perl -Mlocal::lib > ~/.lib_perl

这些命令将

  • 将 $HOME/.cpan 目录从 $HOME 移动到 /beegfs/data/me
  • 在 $HOME 目录中符号链接它
  • 使用 local::lib 模块运行 perl
  • 它将检查 $SHELL
  • 将配置变量输出到 $HOME/.lib_perl 文件

现在根据您登录系统时的 $SHELL (bash - .bashrc, csh - .cshrc, ...) 在您的 shell 环境中获取 $HOME/.lib_perl 源。

当您远程工作时,您必须注销并登录以获取更改(在单独的终端中进行,以防万一您做错了并且需要后门来恢复您的更改)。

此时您应该可以使用cpan将模块安装到 /beegfs/data/me/perl5 目录中。

使用以下命令检查是否安装了local::lib

cpan -D local::lib

如果已安装,则前往以下网页local::lib并阅读一些内容 - 注意第 4 点。

否则检查cpanm在您的系统中是否可用。

作为一个选项,您可以手动设置变量

PERL_MB_OPT
PERL_MM_OPT
PERL5LIB
PATH
PERL_LOCAL_LIB_ROOT

在设置私有之前,请检查您是否对存储目录具有写权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM