bash脚本:获得编译函数库依赖

来源:Linuxeden 作者:c-aries
  

作者:linuxeden团队成员c-aries
PS:炎炎夏日,在加班加点没有空调没有美眉的情况下,从杂物堆里找回以前的笔记,补上了这篇文章 T-T

喜欢程序设计的朋友都会下载源代码,编译安装。

编译安装最烦人的地方是函数库的依赖关系。

解决依赖关系的方法有很多,如使用Debian的 "sudo apt-get build-dep 软件包名" 命令、Google编译出错的提示。

下面介绍一个在Debian下调用dpkg命令获得编译时函数库依赖关系的bash脚本

$ apt-get source mmake
$ cd mmake-2.3/
$ depends.sh
checking for a BSD-compatible install... /usr/bin/install -c
checking for perl... /usr/bin/perl
checking for jikes... no
checking for javac... javac
==> mmake will use 'javac' as its java compiler
umovestr: Input/output error
configure: creating ./config.status
config.status: creating Makefile
config.status: creating mmake
函数库依赖如下:
coreutils (>= 5.97-5.3), libacl1 (>= 2.2.41-1), libattr1 (>= 1:2.4.43-2), libc6-i686 (>= 2.7-18), libncurses5 (>= 5.7+20081213-1), libselinux1 (>= 2.0.65-5), locales (>= 2.7-18),
完成,回车确认
$ cat `which depends.sh`
#! /bin/sh
strace -f -o /tmp/log.$$ ./configure
echo "函数库依赖如下:"
for x in `dpkg -S $(grep open /tmp/log.$$ | perl -pe 's!.* open\(\"([^\"]*).*!$1!' | grep "^/" | sort | uniq | grep -v "^\(/tmp\|/dev\|/proc\)") 2>/dev/null | cut -f1 -d":" | sort | uniq`
do
echo -n " $x (>=" `dpkg -s $x | grep ^Version | cut -f2 -d " "`"),"
done
echo
echo "完成,回车确认"
read input
rm /tmp/log.$$
$

好玩吧>_<

著名的新立得软件包管理器就是按照这个脚本的函数依赖自动解决软件安装依赖的

注:mmake是用perl写的一个自动生java makefile的脚本,大家不要顾名思义哦:)


时间:2009-06-28 20:21 来源:Linuxeden 作者:c-aries 原文链接

好文,顶一下
(6)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量