perl静态编译DBD
编译DBD
项目中经常使用perl,但perl在连接数据库时,需要依赖DBI,DBD驱动,但默认安装DBD驱动时,需要依赖数据库的lib库。
比如perl连接MySQL,需要安装MySQL client。
下面使用静态编译,把DBI, DBD, MySQL client的libclient库静态编译在一起。这样,分发到机器上,就可以使用。
- 编译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包。
步骤:
- 准备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的更多相关文章
- Qt库的静态编译
一.准备软件1. MinGW (C:\Qt\MinGW)http://pan.baidu.com/share/link?shareid=174269&uk=673227135这个文件解 ...
- 静态编译Qt5.4.1和Qt WebKit
图灵社区文章地址:http://www.ituring.com.cn/article/195148WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以来都觉 ...
- Qt5.4静态编译方法
静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库.这样就可以发布单 ...
- VS2010使用静态编译的qt库(Qt 5)
Qt 5引入了一种新的编写方式. Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的q ...
- Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)
大致流程: 1.安装Qt(源码版)以及其他必要的环境 2.编译/安装 3.配置 4.使用 ----------正文分割线---------- 1.安装Qt(源码版) 1.1 下载Qt(两个地址二选一即 ...
- 静态编译Qt5.4.1和Qt WebKit(网事如风的blog)good
blog文章地址:http://godebug.org/index.php/archives/133/ WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以 ...
- 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...
- QT5静态编译教程,主要针对vs2012(渡世白玉)
QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2 ...
- VS2010使用静态编译的qt库
Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的qt-windows-opensou ...
随机推荐
- Telerik柱状图(1)
此随笔主要是介绍一下Telerik的柱状图控件中的一种.效果图为: 此图展示了五个人每个季度的绩效成绩,用图形方式展示数据可以让用户更直观的去看数据,分析数据,不多说了,在这个分享一下我录得视频讲解, ...
- 搭建java开发环境
windows 去Oracle官网下载exe文件,双击安装. 修改系统环境变量(我的电脑 -> 属性 -> 高级 -> 环境变量). JAVA_HOME: D:\Java\jdk1. ...
- e+开发中的各种问题
1.数据交换后走的查询公式还是controller所配置的公式
- Spark-Cassandra-Connector 插入数据函数saveToCassandra
在spark-shell中将数据保存到cassandra: var data = normalfill.map(line => line.split("\u0005")) d ...
- 安装centos 6.7
安装centos 6.7 系统 首先系统安装引导,本次系统安装是通过虚拟机安装,与真是环境十分接近 系统引导后第一步是询问是否检测硬盘,选择不检测(Skip) 然后等待系统引导进入安装界面,进入后我们 ...
- Licode Install CentOS 7.0
mysqldump --add-drop-table -uroot -p123456 jit >/extra_disk/jit.sql sudo npm install -g node-gyp ...
- InkPicture 控件使用_01
private System.ComponentModel.Container components = null; private Microsoft.Ink.InkOverlay m_InkOv ...
- svn-添加忽略文件
svn ps svn:ignore '文件夹名|文件名(不能是文件夹/文件名)' . svn pe svn:ignore . export SVN_EDITOR=/usr/bin/vim #设置环境变 ...
- (转载)在Delphi中利用MSDASC来配置数据库链接
在Delphi中利用MSDASC来配置数据库链接 在运行期进行数据库的连接是一个问题,自己写一个窗体配置吧,数据库不一样,所用的参数也不一样,还有那讨厌的连接字符串,有时真不知该写什么好.那天无意中发 ...
- “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法
最近在项目中,使用EF编程时,在使用泛型类型的过程中,写了一上午,结果生成时,编译不通过,报出如下错误: “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法.如图: 找了好久,终 ...