技术分享帖(二):Perl安装GD模块

难缠的GD模块

写在前面的
最近因为项目需求,需要利用Perl语言的图形化模块以方便地输出Perl程序处理数据后的数据景观概览。由于Perl语言最初是为了更好地处理文本数据而被开发的脚本语言(Practical Extraction and Report Language, PERL)。图形化分析在Perl社区中使用频率很少。因此目前关于这方面的推送实际并不多。但是这个冷门应用内容恰好被我遇到了,而且在这上面还踩了坑,花了一定的时间。下面根据我的踩坑记录进行一次分享。

Perl的模块介绍

        同样作为高级编程语言,Perl语言也具有类似于R/Python的所谓程序包或模块的插件。无论是模块,程序包或函数包,都是类似的。它们都是一套具有特定的功能,用来完成特定任务的一个程序或一组程序。例如,在R语言中ggplot2是一款非常著名的画图相关程序包,该包不是R语言自带的,需要从CRAN下载安装。并且在每次使用该程序包前需要使用library函数进行加载。对于Python而言,具有类似的画图功能的函数包是Matplotlib,该函数包不是Python原程序自带的,需要通过pip插件进行安装。每次在python的程序中使用Matplotlib相关函数之前需要使用import函数进行加载。而在Perl语言中这种类似的模块也需要根据用户的需求进行自定义下载安装,并且在调用Perl中的特定模块的函数之前,需要使用use函数加载相关的包。与仅使用基本编程逻辑和代码相比,程序包的使用大大提高了数据分析工作者处理、分析及可视化数据的效率。因此在各个领域的大数据处理环节中,使用程序包是非常常见的现象。

如何安装Perl的模块

        作为跨平台的脚本语言,Perl在安装其相关模块上具有十分强大的优势。第一方面Perl5自1994年被开发以来,每年只发布一个稳定版。其周期远远比R语言更新慢。因为稳健的发布周期和开发框架强大的兼容性,使得Perl语言不同版本开发出的模块在不同版本的Perl上兼容性强。相比之下,R语言在这方面显得弱势。例如一些R语言的函数包只能在特定几个版本上使用,而且部分R语言函数包对其依赖包的版本也有很严的要求。第二方面,随着Python的兴起,Perl语言的用户越来越少。因此对于Perl新版本和新程序包的开发进展也变得很慢。第三方面,由于Perl的终旨是There is more than one way to do it.因此对于同一个问题,有多种不同的逻辑和语法能在Perl里实现。因此相比于R,Perl很少会发布新模块。
终上所述,对于大多数情况,安装Perl的特定模块十分容易。

基于CPAN的安装

        与CRAN类似,CPAN是发布存放各种Perl语言相关模块的网站。可以直接在站内搜索需要下载的模块源代码到本地进行安装。例如下载Smart包至本地后输入如下命令即可安装

技术分享帖(二):Perl安装GD模块

tar zxvf Smart-Comments-1.06.tar.gz
cd Smart-Comments-1.06 && perl Makefile.pl

基于Shell终端的自动安装

        与上面手动安装的方法不同,Perl语言可以通过Shell终端直接输入模块名称以实现自动安装。自动安装的方法有两种,1.通过MCPAN的方式; 2.通过CPAN的方式

perl -MCPAN -e shell 

cpan -i SmartComments

GD--难缠的Perl模块

        今天使用MCPAN安装GD时居然收到了报错

Package gdlib was not found in the pkg-config search path.
No pakage ‘gdlib’ found

        看这个报错我一开始以为仅仅只是缺一个叫作gdlib的软件。当我去下载安装gdlib软件后发现还是报错

wget  https://github.com/libgd/libgd/releases/download/gd-2.2.1/libgd-2.2.1.tar.gz
./configure --prefix=$PWD
echo “PATH=$PATH:$my_path_to_soft” >> ~/.bashrc
echo “LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$my_path_to_soft” >> ~/.bashrc
echo “PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$my_path_to_soft” >> ~/.bashrc

        上述代码运行完后提示gdlib安装成功,但是在安装gd的过程中还是出现了报错。百思不得其解。后来通过各种思考验证,发现安装gdlib后还需要安装其他几个程序包才可以正确安装gd。但是Perl并没有给我明显的提示,下面我直接放上最后解决GD安装的代码

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11 && ./configure --prefix=$PWD
make && make install
wget http://www.ijg.org/files/jpegsrc.v9a.tar.gz
tar zxvf jpegsrc.v9a.tar.gz
cd jpeg-9a && ./configure --prefix=$PWD && make && make install
wget https://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.5.5.tar.gz
tar zxvf freetype-2.5.5.tar.gz
cd freetype-2.5.5
./configure --prefix=$PWD && make && make install
wget https://nchc.dl.sourceforge.net/project/lzmantils/xz-5.2.5.tar.gz
tar zxvf xz-5.2.5/ && cd xz-5.2.5 && make && make install

写在后面的
条条道路通罗马,由于我不确定我当前解决GD安装的方法是否在其他版本的Linux系统上适用,所以不能肯定此方法是一个普适的方法。如果其他用户发现不行,建议可以使用Python脚本或R脚本在画图这个阶段进行替代。

技术分享帖(二):Perl安装GD模块》来自互联网公开内容,收录仅供学习使用,如侵权请联系删除。本文URL:https://www.ezixuan.com/1021227.html

(0)
上一篇 2023年 2月 1日 上午9:02
下一篇 2023年 2月 1日 上午9:02