linux 安装xml文件,Linux下XML::Simple无root权限安装

XML::Simple简介

XML::Simple 基本上有两个功能;它将 XML 文本文档转换为 Perl 数据结构(匿名散列和数组的组合),以及将这种数据结构转换回 XML 文本文档。提供了两个函数:XMLin() 和 XMLout()。第一个子函数读取 XML 文件,返回一个引用。给出适当数据结构的引用,第二个子函数将它转换为 XML 文档,根据参数的不同,产生的 XML 文档采用字符串格式或文件形式。

XML::Simple 有两个主要限制。首先,在输入方面,它将完整的 XML 文件读入内存,所以如果文件非常大或者需要处理 XML 数据流,就不能使用这个模块。第二,它无法处理 XML 混合内容,也就是在一个元素体中同时存在文本和子元素的情况.

为何需要XML::Simple

在用Trinotate: Transcriptome Functional Annotation and Analysis对De Novo转录组数据进行注释时,需要运行RNAMMER来识别rRNA转录本,同时将XML输出文件解析为gff结果;这一过程就需要XML::Simple这一模块;

否则将报错../rnammer error converting xml into gff

安装XML::Simple

XML::Simple模块的安装需要至少以下两个依赖包:XML::Parser和XML::SAX::Expat

注意:一定按照 XML::Parser、XML::SAX::Expat、XML::Simple的顺序依次安装;

XML::Parser一般可以在cpan下顺利安装,但是XML::SAX::Expat在正常的cpan安装将因为权限问题而中断:

1

2

3

4

5

6$ perl -MCPAN -e shell

cpan> install XML::Simple

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ERROR: Can't create '/usr/local/share/man/man3'

Do not have write permissions on '/usr/local/share/man/man3'

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

所以就涉及到在Linux下如何无root权限安装perl模块?

这里推荐更加好用,更加人性的cpanm,**在没有 Root 权限时会自动安装到当前用户家目录的perl/lib文件夹下。

cpanm安装

下载cpanm到自己的目录下,并修改可执行权限

1

2$ wget http://xrl.us/cpanm --no-check-certificate -O cpanm

$ chmod +x cpanm

将路径写到bashrc文件中

1export PATH=~/software/perl/:$PATH

perl模块安装

XML::SAX::Expat1$ cpanm XML::SAX::Expat

注意:第一次安装时,cpanm会创建一个~/perl5目录,而perl模块的安装位置为~/perl5/lib/perl5,将这个变量写入bashrc文件的PERL5LIB变量中

1

2

3export PERL5LIB=~/perl5/lib/perl5

source ~/.bashrc

验证安装

perldoc XML::SAX::Expat

输出正常帮助文档则表明安装成功;

cpanm还有更多用法,参见扶凯 blog使用 CPANMinus 来安装 Perl 模块和其它技巧

XML::Simple1$ cpanm XML::Simple

报错:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46t/0_Config.t ............ ok

t/1_XMLin.t .............

Failed 84/132 subtests

t/2_XMLout.t ............ ok

t/3_Storable.t ..........

Failed 21/23 subtests

t/4_MemShare.t ..........

Failed 7/8 subtests

t/5_MemCopy.t ...........

Failed 6/7 subtests

t/6_ObjIntf.t ........... ok

t/7_SaxStuff.t ..........

Failed 12/14 subtests

t/8_Namespaces.t ........ ok

t/9_Strict.t ............ ok

t/A_XMLParser.t ......... ok

t/B_Hooks.t .............

Failed 4/12 subtests

(less 3 skipped subtests: 5 okay)

t/release-pod-syntax.t .. skipped: these tests are for release candidate testing

Test Summary Report

-------------------

t/1_XMLin.t (Wstat: 139 Tests: 48 Failed: 0)

Non-zero wait status: 139

Parse errors: Bad plan. You planned 132 tests but ran 48.

t/3_Storable.t (Wstat: 139 Tests: 2 Failed: 0)

Non-zero wait status: 139

Parse errors: Bad plan. You planned 23 tests but ran 2.

t/4_MemShare.t (Wstat: 139 Tests: 1 Failed: 0)

Non-zero wait status: 139

Parse errors: Bad plan. You planned 8 tests but ran 1.

t/5_MemCopy.t (Wstat: 139 Tests: 1 Failed: 0)

Non-zero wait status: 139

Parse errors: Bad plan. You planned 7 tests but ran 1.

t/7_SaxStuff.t (Wstat: 139 Tests: 2 Failed: 0)

Non-zero wait status: 139

Parse errors: Bad plan. You planned 14 tests but ran 2.

t/B_Hooks.t (Wstat: 139 Tests: 8 Failed: 0)

Non-zero wait status: 139

Parse errors: Bad plan. You planned 12 tests but ran 8.

Files=13, Tests=367, 3 wallclock secs ( 0.11 usr 0.05 sys + 1.61 cusr 0.35 csys = 2.12 CPU)

Result: FAIL

Failed 6/13 test programs. 0/367 subtests failed.

make: *** [test_dynamic] Error 255

-> FAIL Installing XML::Simple failed.

可以看出是text时存在其他依赖包的缺失,解决办法如下:

1

2

3

4

5

6

7

8

9

10$ cpanm XML::LibXML::SAX::Parser

$ cpanm XML::LibXML::SAX

$ cpanm XML::SAX::PurePerl

$ cpanm XML::Simple

--> Working on XML::Simple

Fetching http://www.cpan.org/authors/id/G/GR/GRANTM/XML-Simple-2.22.tar.gz ... OK

Configuring XML-Simple-2.22 ... OK

Building and testing XML-Simple-2.22 ... OK

Successfully installed XML-Simple-2.22

1 distribution installed

more:https://bugzilla.redhat.com/show_bug.cgi?id=233003

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值