当前位置: 首页 > news >正文

perl 下使用非root用户安装模块

 

perl下安装模块可以使用cpan命令,但是通常我们不具有root用户权限,所以只能以sudo方式安装模块。

例如需要安装Net::SCP::Expect模块,

执行cpan Net::SCP::Expect

首次使用cpan命令会出现 choice  local or sudo的样式,默认为local,建议使用sudo.

最后会出现

ERROR: Can't create '/usr/local/man/man3'
Do not have write permissions on '/usr/local/man/man3'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 at -e line 1.
Makefile:706: recipe for target 'pure_site_install' failed
make: *** [pure_site_install] Error 13
  RYBSKEJ/Net-SCP-Expect-0.16.tar.gz
  /usr/bin/make install  -- NOT OK
----
  You may have to su to root to install the package
  (Or you may want to run something like
    o conf make_install_make_command 'sudo make'

 由于非root用户无法在/usr/local目录下进行操作。

执行sudo cpan Net::SCP::Expect

即可正常安装模块。

 


 

参考:Linux系统在CPAN中安装Perl模块的方法


 

参考:查看安装的perl模块版本的方法

 

手动查询的方法

 

查询path: perldoc -l $1

查询版本: perl -M$1 -e 'print $1->VERSION. "\n"'

一个例子:

[root@atlas73 ~]# perl -MConfig::IniFiles -e 'print Config::IniFiles->VERSION. "\n"'

没安装此模块,则输出如下

Can't locate Config/IniFiles.pm in @INC (you may need to install the Config::IniFiles module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.2 /usr/local/share/perl/5.22.2 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .).
BEGIN failed--compilation aborted.

另一个例子

[root@atlas73 ~]$ perl -MNet::SCP::Expect -e 'print Net::SCP::Expect->VERSION. "\n"'

已安装此模块,输出版本号:

0.16

2.66


删除已安装的模块

使用App::pmunintsall模块来实现:cpan>install App::pmuninstall

安装完成后,退出cpan

执行删除模块操作:cmd>pm-uninstall DBD::Oracle  

 

相关文章:

  • Jps命令—使用详解
  • Codeforces Round #389 (Div. 2) 752E(二分答案)
  • Oracle函数-单行函数-字符单行函数
  • JavaScript的apply()方法和call()方法
  • apache http server 开启ssl 与tomcat交互
  • 国际直拨电话号码格式
  • Spring-boot-admin功能说明
  • Linux 进程与线程六
  • UML课程复习重点
  • 前端面试通关指南
  • 网络广告计费方式常用术语
  • sails 跨域请求处理 -- config.cors
  • memcache命令
  • openlayers 3监听地图分辨率变化事件
  • Jython开发环境搭建
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • ES6之路之模块详解
  • gulp 教程
  • Java Agent 学习笔记
  • Java,console输出实时的转向GUI textbox
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript学习总结——原型
  • leetcode98. Validate Binary Search Tree
  • magento 货币换算
  • nginx 负载服务器优化
  • SpingCloudBus整合RabbitMQ
  • SpringCloud集成分布式事务LCN (一)
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Web Storage相关
  • windows-nginx-https-本地配置
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 排序(1):冒泡排序
  • 驱动程序原理
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 一份游戏开发学习路线
  • 自动记录MySQL慢查询快照脚本
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​configparser --- 配置文件解析器​
  • ​马来语翻译中文去哪比较好?
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • (2)MFC+openGL单文档框架glFrame
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (南京观海微电子)——COF介绍
  • (十)c52学习之旅-定时器实验
  • (十六)串口UART
  • .java 9 找不到符号_java找不到符号
  • .Mobi域名介绍
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 动态调用WebService + WSE + UsernameToken