• perl静态编译DBD


    编译DBD

      项目中经常使用perl,但perl在连接数据库时,需要依赖DBI,DBD驱动,但默认安装DBD驱动时,需要依赖数据库的lib库。

      比如perl连接MySQL,需要安装MySQL client。

    下面使用静态编译,把DBI, DBD, MySQL client的libclient库静态编译在一起。这样,分发到机器上,就可以使用。

    1. 编译perl, DBI

        这一步没有依赖,下载最新的perl,DBI,按照make&&make install安装到/home/myperl目录。

     2. 安装MySQL

        编译最新的MySQL,这里只需要静态编译出libclient.a就可以了,不需要so文件。

       3. 静态编译DBD

        使用/home/myperl的perl来编译

        /home/myperl/bin/perl Makefile.PL --mysql_config=/usr/local/bin/mysql_config

        这样编译出来的/home/myperl是静态编译了DBD的版本,直接分发到目标机器上使用就可以了。

         可以使用ldd mysql.so文件查看依赖。

    使用的时候,pl脚本的解释器指向 #!/home/myperl/bin/perl

    rpm打包

      

    由于环境需要rpm包来使用,尝试写一个简单的makefile,spec文件,用rpmbuild来打一个rpm包。

    步骤:

    1. 准备makefile:
    test : test.o
    cc -o test test.o
    
    test.o : test.c
            cc -c test.c
    
    clean :  
            rm -rf test.o test
    
    install :
            install -d ${DESTDIR}/${PREFIX_PERL}
            install -d ${DESTDIR}/${PREFIX_MS}
            install -m 755 test ${DESTDIR}/${PREFIX_MS}
            cp -r bin/ ${DESTDIR}/${PREFIX_PERL} 
            cp -r lib/ ${DESTDIR}/${PREFIX_PERL}
            cp -r man/ ${DESTDIR}/${PREFIX_PERL}

    2. 准备spec文件

      

    Name:myperl
    Version:1.0.0
    Release:%(echo $RELEASE)%{?dist}
    License:GPL
    
    Group:Application
    BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root
    AutoReqProv: no   :去掉所有依赖检查和提供
    Summary:myperl
    
    %description
    
    %prep
    
    %build
    cd $OLDPWD/../
    make
    
    %install
    cd $OLDPWD/../
    make install DESTDIR=$RPM_BUILD_ROOT PREFIX=/home/myperl
    
    %clean
    rm -rf $RPM_BUILD_ROOT
    
    %files
    %defattr(-,root,root,-)
    /home/myperl/*
    %changelog

    3. build rpm包

      

      rpmbuild myperl.spec

      打出来的就是myperl-1.0.0-1.el6.x86_64.rpm, 这样就可以直接使用了,不依赖任何lib库。

  • 相关阅读:
    数据库得四种隔离级别(非原创,转载文章)
    c#中的数据类型简介(委托)
    c#中的数据类型简介(数组)
    c#中的数据类型简介(枚举)
    c#中的数据类型简介(string)
    c#中的数据类型简介
    二分法的查找图解
    Linux下多个.c文件的编译和Makefile文件
    C语言中const和数组
    grep和正则表达式
  • 原文地址:https://www.cnblogs.com/xpchild/p/3798118.html
Copyright © 2020-2023  润新知