与许多站点托管在共享服务器上的人一样,我没有root访问权限,托管公司也不会应用户的请求安装Perl模块。
不幸的是,我也没有~/
文件夹的写权限,只有某些子文件夹(例如~/cgi-bin/
)。
我尝试了解决方案建议here,将~/perl5
更改为~/cgi-bin/perl5
(我创建的),但我一直收到此错误:
“无法写入cpanm home'~ / .cpanm':你应该修复它 chown / chmod首先。“
问题是,正如我所说,我没有〜/ 的写权限。
有没有办法告诉安装人员使用~/cgi-bin/.cpanm
?我试图通过在这里和互联网上的其他地方搜索来解决这个问题,但我开始把头撞在墙上。
编辑:所以我使用以下命令尝试了以下Steven的建议:
HOME = $ HOME / cgi-bin cpanm local :: lib
现在,cpanm
成功运行并尝试安装模块,但在整个安装过程中有很多警告并最终失败(可能是某些东西仍在尝试写入禁用的文件夹?)。
以下是一些示例警告:
警告:未找到先决条件CPAN 1.82。我们有1.7601。
警告:未找到先决条件ExtUtils :: Install 1.43。我们有1.32。
警告:未找到先决条件ExtUtils :: MakeMaker 6.42。我们有6.17。
警告:未找到先决条件Module :: Build 0.36。
警告:您无权在/usr/lib/perl5/5.8.5/ExtUtils/Install.pm第114行安装到/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi
mkdir /usr/lib/perl5/5.8.5/App:/usr/lib/perl5/5.8.5/ExtUtils/Install.pm第176行拒绝权限
make:*** [pure_perl_install]错误255
答案 0 :(得分:1)
~
只是访问环境变量$HOME
的简便方法,因此您应该可以执行export HOME=$HOME/cgi-bin
之类的操作,将有效的主目录移动到您拥有的某个目录中写权限。但这会影响很多事情,所以要小心。