当前位置:嗨网首页>书籍在线阅读

11-解决依赖关系

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.2.2 解决依赖关系

仅仅在文件系统中包含一个像init这样的可执行文件是不够的,不能指望这样就可以完成系统的引导。将一个可执行程序放入文件系统中时,必须同时满足它的依赖关系。大多数应用程序有两类依赖关系:一种是动态链接的应用程序对程序库的依赖,这种应用程序中包含未解决的引用,这需要由程序库提供;另一种是应用程序可能需要的外部配置文件或数据文件。我们可以使用工具来确定前一种依赖关系,但要想知道后一种依赖关系,则至少需要对相关的应用程序有个基本的理解。

举个例子说明一下就会比较清楚了。init就是一个动态链接的可执行程序。为了运行init,我们必须要满足它对程序库的依赖,有一专门为此开发的工具:ldd。为了找出某个应用所依赖的程序库,只需对它运行一下交叉版本的ldd就可以了:

96.png 从这个ldd的输出中,我们可以看到Power架构的init可执行程序依赖两个程序库——标准C程序库(libc.so.6)和Linux动态加载器(ld.so.1)。

为了满足应用程序的第二种依赖关系,即它可能需要的配置文件和数据文件,唯一的办法就是了解一下这个子系统是如何工作的。举例来说,init期望从/etc目录的inittab数据文件中读取其运行配置。除非你所使用的工具(比如第16章中讲述的一些工具)中内置了这种信息,否则你必须自行提供这些信息。