找回密码
 注册
查看: 2005|回复: 2

制作模块寻找依赖的方法

[复制链接]
发表于 2007-12-10 08:45:55 | 显示全部楼层 |阅读模式
如何寻找软件包依赖的库文件

在slax/fanx中添加一个软件常常会遇到这种情况,就是安装在系统中的软件在控制台中输入命令后启动不起来,会提示缺少库文件,那么如何寻找这些库文件呢?


1.        将得到的软件包,rpm包用rpm2tgz转换成tgz包,如果是deb包,可以直接用tar命令解压缩,得到data.tar.gz,一个control.tar.gz,继续解压data.tar.gz,解开后根据目录结构用makepkg打包成tgz包,用installpkg命令安装到系统中。
2.        打开控制台,KDE下有kconsole,输入该软件包的执行文件名运行,看控制台输出什么,要是能启动起来,那么说明该软件包不需要解决依赖问题;如果提示缺少什么库文件那么就用下面的方法将需要的库文件都找齐。
3.        毫无疑问,我们首先应该想到的是google和baidu,搜索缺少的库文件的文件名,一般根据搜索结果就可以知道此库文件属于哪个软件包了。如果搜索结果不是很明了的话就上 www.rpmfind.net上,在打开首页的搜索框内输入缺少的库文件的文件名进行搜索,就能搜到文件所属于的软件包了,当然搜到的结果一般都是rpm包,看好平台和版本将其下载回来。为了方便文件提取,用rpm2tgz命令将下载回来的rpm包转换成tgz包。
4.        怎么从tgz包中提取文件就不多说了,那就是一个tar.gz的压缩包了,KDE的文件管理器可以直接提取。稍微注意一下,比如碰到需要的库文件是 libcdao.so.0.1,可是你解开相同版本号的压缩包后发现只有libcdao.so 那么你可以直接将这个文件改名为 libcdao.so.0.1就可以了使用了,还有就是这些文件一般都是处于/usr/lib下,不行的话试试/usr/local/lib
5.        碰到rpm包应该都没问题了,说说碰到deb包。碰到deb包最好能用alien工具将其转换成tgz包处理,也可以直接用tar命令将其解开,deb包也是一个tar.gz的包,解开以后可以看到又有两个压缩文件,一个data.tar.gz,一个control.tar.gz文件,如果只是提取文件,解开data.tar.gz就可以找到了。
6.        windows下,不管是tgz包,还是deb包,还是rpm包,都可以用7-zip解开提取文件。

顺便提供一些资源网站:

www.slackware.com/getslack  Slackware的官方下载镜像,找到其中的一个镜像进入后能看到slackware的各个版本,根据需要进入寻找,最新的软件包到 slackware-current目录下寻找;
www.linuxpackages.net    slackware的社区tgz包集合,需要的软件如果官方没有的话先来这儿瞧瞧,90%的软件包都能在这儿找到。

www.rpmfind.net   顾名思义,找rpm包,因为rpm包可以很容易转换成tgz包,所以rpm包我们不应该拒绝;

还有很多的arch Linux 和debian Linux 的软件包源都可以拿来使用。Arch Linux 的包和tgz包非常相仿,解开重新makepkg一下就OK,deb包就用alien转换吧,不嫌麻烦就一步一步解压。
发表于 2007-12-10 09:11:49 | 显示全部楼层
谢谢小平的帖子,学习了!
回复

使用道具 举报

发表于 2008-2-19 06:38:20 | 显示全部楼层
http://www.debian.org/distrib/packages 也可以找到一些。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-7-4 07:07 , Processed in 0.052291 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表