编译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 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.
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库。

perl静态编译DBD的更多相关文章

  1. Qt库的静态编译

    一.准备软件1. MinGW     (C:\Qt\MinGW)http://pan.baidu.com/share/link?shareid=174269&uk=673227135这个文件解 ...

  2. 静态编译Qt5.4.1和Qt WebKit

    图灵社区文章地址:http://www.ituring.com.cn/article/195148WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以来都觉 ...

  3. Qt5.4静态编译方法

    静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库.这样就可以发布单 ...

  4. VS2010使用静态编译的qt库(Qt 5)

    Qt 5引入了一种新的编写方式. Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的q ...

  5. Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)

    大致流程: 1.安装Qt(源码版)以及其他必要的环境 2.编译/安装 3.配置 4.使用 ----------正文分割线---------- 1.安装Qt(源码版) 1.1 下载Qt(两个地址二选一即 ...

  6. 静态编译Qt5.4.1和Qt WebKit(网事如风的blog)good

    blog文章地址:http://godebug.org/index.php/archives/133/ WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以 ...

  7. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

  8. QT5静态编译教程,主要针对vs2012(渡世白玉)

    QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2 ...

  9. VS2010使用静态编译的qt库

    Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的qt-windows-opensou ...

随机推荐

  1. c#打开txt文件并导入到textbox中

    OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Title = " 请选择您要导入的模板文件:&qu ...

  2. java新手笔记21 接口

    1.接口 package com.yfs.javase; public interface IDemo1 {//interface 接口 public /*abstract*/ void method ...

  3. 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)

    使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC) 程序代码下载 程序代码下载:点此下载 前言 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.N ...

  4. Java 编译解释

    JDK提供的主要开发工具有:编译程序,解释执行程序.调试程序.Applet执行程序.文档管理程序.包管理程序等. 1.编译程序:javac.exe,对应的javac命令将Java源程序转换为字节码. ...

  5. (hdu)1042 N! 大数相乘

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1042 Problem Description Given an integer N( ≤ ...

  6. 九度OJ 1370 数组中出现次数超过一半的数字

    题目地址:http://ac.jobdu.com/problem.php?pid=1370 题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2 ...

  7. mysql 5.7.16多源复制

    演示一下在MySQL下搭建多主一从的过程. 实验环境: 192.168.24.129:3306 192.168.24.129:3307 192.168.24.129:3308 主库操作 导出数据 分别 ...

  8. PHP中的预定义超全局数组

    定义 超全局变量,是在全部作用域中始终可用的内置变量. PHP中的许多预定义变量都是"超全局的",这意味着它们在一个脚本的全部作用域中都可用. 在函数或方法中无需执行 global ...

  9. [转载]如何重装Grub,使其可以引导双系统

    引言: GRUB是一个多重操作系统的启动管理器.用来引导不同的系统,如windows,Linux.一般来说要先装Windows,后装Linux,这样grub才能生效(grub存在于linux的安装中) ...

  10. VS2013发布web项目到IIS上遇到的问题总结

    vs2010发布网站到本地IIS的步骤  http://blog.csdn.net/cx_wzp/article/details/8805365 问题一:HTTP 错误 403.14 - Forbid ...