请教,关于在linux下安装perl模块的问题
Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装。第一种方法是从CPAN上下载
您需要的模块,手工编译、安装。第二种方法是联上internet,使用一个叫做CPAN的模块自动完
成下载、编译、安装的全过程。
a、手工安装的步骤:
从CPAN下载了DBI模块113版的压缩文件DBI-113targz,假设放在/usr/local/src/下。
cd /usr/local/src
解压缩这个文件:
tar xvzf DBI-113targz
这时会新建一个DBI-113的目录。
cd DBI-113
生成makefile:
perl MakefilePL
建立模块
make
测试模块
make test
如果测试结果报告“all test ok”,您就可以放心地安装编译好的模块了。安装模块前,先要
确保您对perl5安装目录有可写权限(通常以su命令获得),执行:
make install
现在,写个程序试试吧。
#!/usr/bin/perl -w
use strict;
use DBI;
上述步骤适合于Linux/Unix下绝大多数的Perl模块。可能还有少数模块的安装方法略有差别,
所以最好先看看安装目录里的README或INSTALL。另外,上述过程是针对动态链接的Perl编译
器(所有Linux下预安装的Perl都是动态链接的),如果您在使用一个静态链接的Perl,您需要将
新的模块静态链接到perl编译器中,可能还需要重启机器。
b、使用CPAN模块自动安装:
安装前需要先联上线,并且您需要取得root权限。
perl -MCPAN -e shell
初次运行CPAN时需要做一些设置,如果您的机器是直接与internet相联(拨号上网、专线,etc),
那么一路回车就行了,只需要在最后选一个离您最近的CPAN镜像站点。例如我选的是位于国内的
中国自由软件库ftp://freesoftcgigovcn/pub/languages/perl/CPAN 。否则,如果您的机器
位于防火墙之后,还需要设置ftp代理或http代理。
获得帮助
cpan>h
列出CPAN上所有模块的列表
cpan>m
根据关键字在CPAN上查找某个模块:
cpan[1]> i /scws/
CPAN: Storable loaded ok (v220)
Going to read '/home/orisun/cpan/Metadata'
Database was generated on Sat, 17 Nov 2012 08:07:03 GMT
Distribution XUERON/Text-Scws-001targz
Module Text::Scws (XUERON/Text-Scws-001targz)
2 items found
安装模块
cpan>install DBI
自动完成DBI模块从下载到安装的全过程。
退出
cpan>q
perldoc -f func #查看perl函数的使用方法
你说的 xterminal 应该是个终端程序吧,如果这个程序允许传入参数的话,你可以在perl 里面调用 system("xterminal程序的路径 A程序的路径");
这样就可以用 xterminal来打开A程序。
linux 和 perl 都属于自由软件,将二者结合真是妙不可言。
遵循以下步骤一般就可安装好 perl ,perl 就能在 linux 下欢唱。
1。取得最新版本的 perl,当前版本为 560,即 stabletargz。
2。解文件包:
gunzip stabletargz
tar xvf stabletar
得到目录 perl-560
3。在目录 perl-560 下安装 perl:
rm -f configsh Policysh
sh Configure -de
make
make test
make install
configsh Policysh 为以前安装时的配置文件,新安装或升级安装时
需要将其删除。
sh Configure -de 安装使用默认配置,一般而言将会 ok 。
安装完成后 perl 所在目录为 /usr/local/lib/perl5, perl 执行文件
在 /usr/local/bin 中。
4。关于 html 文件
安装 perl 时不能自动安装 html 文件, 在 perl-560 目录中有一
个installhtml 文件, 执行 perl installhtml --help 可得到使用帮助,使用
installhtml可将 pod 及 pm 文件编译得到相应的 html 文件文件, 它的具
体使用请自己看。
下面是我所写的一个具有类似功能的程序。
simple_find("560");# 含 pm 文件的源目录
use Pod::Html;
sub simple_find{
$sourth="/usr/local/lib/perl5/560html/"; #含 html的目标目录
my ($input)=@_;
my $file;
$ddir=$sourth$input;
$cont=`file $ddir`;
if ($cont !~/$ddir\:\sdirectory/){
`mkdir $ddir`;
}
opendir(md,$input);
my @file=readdir(md);
closedir(md);
@pfile= grep(m/\pm/,@file);
my @dfile= grep(!m/\pm/,@file);
@dfile=grep(!m/^\/,@dfile);
foreach $pfile(@pfile){
$pfile=~/\pm/;
$dfile=$`;
$sfile=$input"/"$pfile;
$dfile=$sourth$input"/"$dfile"\html";
pod2html(
"--infile=$sfile",
"--outfile=$dfile");
}
foreach $file(@dfile){
$vale=$input"/"$file;
$cont=`file $vale`;
if ($cont=~/$vale\:\sdirectory/){
simple_find($vale);
}
}
}
使用以上程序得到一个与源目录结构一致的目标目录,包含相应的 html文
件。
注: 使用以上两种方法都会产生不能转化某行类错误,其实它无关大
局,可以忽略。
5。模块安装
gunzip Moduletargz
tar xvf Moudletar
转到相应目录
perl MakefilePL
make
make test
make install
安装完成后模块在 /usr/local/lib/perl5/site_perl 目录中, html
文件不能自动安装,需使用前面介绍方法进行安装。
Q2:在编译的perl中会有中文,请问是否可以显示中文?
可以显示中文
Q3:经过chmod处理后的可执行文件,是否可以翻译为perl语言?然后重新修改脚本?
chmod只是改变属性,不影响perl。因此,可以以翻译为perl语言或重新修改脚本
Q1中的Genesis没有用过。不过perl可以编成exe的文件。成为exe后,应该可以解决调用问题。
1、打开kali linux的终端。创建一个文件并命名为dutestc。在终端输入:touch testc。
2、可以看到已经生成了一个后缀为testc的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vim testc或者gvim testc打开这个文件并编写代码。
3、编写完了这个代码。现在开始编译源文件。在终端中输入:gcc testcgcc是linux自带的c语言编译器。如果是windows则要用ide工具来编译。linux系统一般写C语言用gcc +vim+gdb三个自带的工具就可以了。
4、打完gcc testc编译完C源文件。然后就可以看见aout的文件。一般linux系统就默认为aout为编译完的文件。现在运行aout文件。在aout文件的目录下打开终端并输入/aout就是运行文件了。
5、如果想要编译完的文件名不要用aout文件。就可以在编译时打入gcc testc -o testout然后就可以看见有一个testout文件 了。-o后面跟着的编译生成的文件名。
6、再运行testout在终端中输入/testout结果如图。这样在linux系统下编译并运行C语言就完成了。
1、在安装时,指定路径 --prefix=/usr/bin
2、如果已经安装,你可以修改系统环境变量,或者做一个链接即可
修改系统环境变量在:/etc/profile
做链接 ln -s
运行时ctrl+z暂停程序
jobs -l 查看暂停程序的序号号
bg %jobnumber 将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
如果不能运行应该不会是由于不同平台的解释器造成的。
有可能是解释器版本不同,
有可能有些包没有安装,
有可能linux和window下使用的路径不同,比如一个用“/”一个用“\”
有的时候,脚本开头的 #!/bin/perl 也可能引起麻烦
还有可能其他原因 ,但都不应该是由于不同平台的解释器造成的
-------------------------------------------------
跨平台本来就是很麻烦的事。只要不适用系统特性,解释器一般不会带来什么麻烦的。
0条评论