Loading... <p></p> <h3 style="margin-left:28px">一、 Linux<span style="font-family:宋体">源程序包介绍</span></h3> <h4 style="margin-left:28px">1) linux<span style="font-family:宋体">源程序包基础</span></h4> <p class="MsoListParagraph" style="margin-left:28px">1. <span style="font-family:宋体">遵循常用开源协议:</span>BSD<span style="font-family:宋体">、</span>Apache Licence 2.0<span style="font-family:宋体">、</span>GPL<span style="font-family:宋体">、</span>LGPL<span style="font-family:宋体">、</span>MIT</p> <p class="MsoListParagraph" style="margin-left:28px">2. <span style="font-family:宋体">常用开发语言:</span>C, C++, perl</p> <p class="MsoListParagraph" style="margin-left:28px">3. <span style="font-family:宋体">编译过程:预处理</span>–> <span style="font-family:宋体">编译</span> –> <span style="font-family:宋体">汇编</span> –> <span style="font-family:宋体">链接</span></p> <h4 style="margin-left:28px">2) Linux<span style="font-family:宋体">源程序包开发环境</span></h4> <p class="MsoListParagraph" style="margin-left:28px">1. <span style="font-family:宋体">应用程序开发依赖:头文件:</span>/usr/include(<span style="font-family:宋体">标明那些库可以被调用</span>)</p> <p style="text-indent:154px"><span style="font-family:宋体">库文件(开发库,运行库)</span>/lib<span style="font-family:宋体">或者</span>/usr/lib</p> <p style="text-indent:112px"> </p> <p class="MsoListParagraph" style="margin-left:28px">2. <span style="font-family:宋体">库文件概念:是一种程序(无执行入口,不能独立执行,只能被能独立运行的程序调用</span> <span style="font-family:宋体">时执行)。</span></p> <p class="MsoListParagraph" style="margin-left:28px">3. <span style="font-family:宋体">库文件生成:源代码</span> –><span style="font-family:宋体">(转换为)</span> <span style="font-family:宋体">二进制格式。</span></p> <p><span style="font-family:宋体">注:</span>ldd<span style="font-family:宋体">命令</span>:<span style="font-family:宋体">查看应用程序运行所依赖的库文件,使用格式:</span>ldd /path/to/binary_file</p> <p class="MsoListParagraph" style="margin-left:28px">4. ABI: Application Binary Interface <span style="font-family:宋体">:应用程序二进制接口</span>,<span style="font-family:宋体">既操作系统内核支持的二进制接口。</span></p> <p class="MsoListParagraph" style="margin-left:28px">5. Linux<span style="font-family:宋体">系统基础架构图:</span></p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703163746-95.jpg" title="1442565296758742.jpg" alt="1.jpg" /></p> <h4 style="margin-left:28px">3) Linux<span style="font-family:宋体">源程序包编译</span></h4> <p><strong><span style="font-family:宋体">基本特点:</span></strong></p> <p class="MsoListParagraph" style="margin-left:28px">1. <span style="font-family:宋体">源程序编译前基本适用于任何架构平台环境;</span></p> <p class="MsoListParagraph" style="margin-left:28px">2. <span style="font-family:宋体">源程序编译后运行受架构平台环境的限制;</span></p> <p><span style="font-family:宋体">注:有些程序不依赖于硬件运行,依赖于虚拟机,不再依赖于低层硬件平台,后缀:</span>.noarch</p> <p> </p> <table cellspacing="0" cellpadding="0"> <tbody> <tr class="firstRow"> <td width="47" valign="top" style="border-color: windowtext;border-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">序号</span></p> </td> <td width="88" valign="top" style="border-top-color: windowtext;border-right-color: windowtext;border-bottom-color: windowtext;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-style: none;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">源程序</span></p> </td> <td width="92" valign="top" style="border-top-color: windowtext;border-right-color: windowtext;border-bottom-color: windowtext;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-style: none;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">编译环境</span></p> </td> <td width="66" valign="top" style="border-top-color: windowtext;border-right-color: windowtext;border-bottom-color: windowtext;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-style: none;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">编译方式</span></p> </td> <td width="94" valign="top" style="border-top-color: windowtext;border-right-color: windowtext;border-bottom-color: windowtext;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-style: none;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">依赖库</span></p> </td> <td width="85" valign="top" style="border-top-color: windowtext;border-right-color: windowtext;border-bottom-color: windowtext;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-style: none;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">编译结果(二进制程序)</span></p> </td> <td width="50" valign="top" style="border-top-color: windowtext;border-right-color: windowtext;border-bottom-color: windowtext;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-style: none;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">运行条件</span></p> </td> </tr> <tr> <td width="47" valign="top" style="border-right-color: windowtext;border-bottom-color: windowtext;border-left-color: windowtext;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-top-style: none;padding: 0px 7px"> <p><span style="font-size:12px">1</span></p> </td> <td width="88" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">开发程序(</span><span style="font-size:12px">c</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size: 12px">c++</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size:12px">perl</span><span style="font-size:12px;font-family:宋体">)</span></p> </td> <td width="92" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px">linux</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size:12px">windows</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size: 12px">unix</span></p> </td> <td width="66" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">静态编译</span></p> </td> <td width="94" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">开发库、运行库</span></p> </td> <td width="85" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">应用程序(含运行库)</span></p> </td> <td width="50" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px">ABI</span></p> </td> </tr> <tr> <td width="47" valign="top" style="border-right-color: windowtext;border-bottom-color: windowtext;border-left-color: windowtext;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-top-style: none;padding: 0px 7px"> <p><span style="font-size:12px">2</span></p> </td> <td width="88" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">开发程序(</span><span style="font-size:12px">c</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size: 12px">c++</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size:12px">perl</span><span style="font-size:12px;font-family:宋体">)</span></p> </td> <td width="92" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px">linux</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size:12px">windows</span><span style="font-size:12px;font-family:宋体">、</span><span style="font-size: 12px">unix</span></p> </td> <td width="66" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">动态编译</span></p> </td> <td width="94" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">开发库、运行库</span></p> </td> <td width="85" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">应用程序(链接至运行库)</span></p> </td> <td width="50" valign="top" style="border-top-style: none;border-left-style: none;border-bottom-color: windowtext;border-bottom-width: 1px;border-right-color: windowtext;border-right-width: 1px;padding: 0px 7px"> <p><span style="font-size:12px;font-family:宋体">运行库、</span><span style="font-size:12px">ABI</span></p> </td> </tr> </tbody> </table> <p><strong> </strong></p> <h4 style="margin-left:28px">4) Linux<span style="font-family:宋体">源程序包命名格式</span></h4> <p>Name<span style="font-family:宋体">(名称)</span>-major<span style="font-family:宋体">(主版本号)</span>.minor<span style="font-family:宋体">(次本版本号)</span>.release<span style="font-family:宋体">(修订号)</span>.tar.gz</p> <p><span style="font-family:宋体">举例:</span>bash-4.2.3.tar.gz</p> <h4 style="margin-left:28px">5) Linux<span style="font-family:宋体">源程序包的组成</span></h4> <p class="MsoListParagraph" style="margin-left:28px">1. <span style="font-family:宋体">二进制程序:</span>/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/local/APP/{bin,sbin}</p> <p style="text-indent:14px"><span style="font-family:宋体">注意:有些特殊的应用程序放置于</span>libexec<span style="font-family:宋体">目录中;有些第三方应用默认安装于</span>/opt<span style="font-family:宋体">目录</span></p> <p class="MsoListParagraph" style="margin-left:28px">2. <span style="font-family:宋体">库文件(开发库、运行库):</span>/lib64, /usr/lib64, /usr/local/lib64, /usr/local/APP/lib</p> <p class="MsoListParagraph" style="margin-left:28px">3. <span style="font-family:宋体">配置文件:</span>/etc, /usr/local/APP/etc<span style="font-family:宋体">或</span>conf<span style="font-family:宋体">目录</span></p> <p class="MsoListParagraph" style="margin-left:28px">4. <span style="font-family:宋体">帮助文件:</span>/usr/share/man, /usr/local/share/man, /usr/local/APP/man</p> <h3 style="margin-left:28px">二、 Linux<span style="font-family:宋体">源程序包管理器介绍</span></h3> <h4 style="margin-left:28px">1) <span style="font-family:宋体">程序包管理器组成</span>:</h4> <p style="margin-left:28px">1<span style="font-family:宋体">、数据库(程序名及版本、依赖关系:</span>X –> Y,Z <span style="font-family:宋体">、功能性说明、安装生成的各文件路径及校验码</span></p> <p>2<span style="font-family:宋体">、程序的组成清单(文件清单、安装卸载时运行的脚本)</span></p> <h4 style="margin-left:28px">2) <span style="font-family:宋体">包管理器的功能:</span></h4> <p style="margin-left:28px"> <span style="font-family:宋体">打包</span></p> <p style="margin-left:28px"> <span style="font-family:宋体">安装</span></p> <p style="margin-left:28px"> <span style="font-family:宋体">卸载</span></p> <p style="margin-left:28px"> <span style="font-family:宋体">升级</span></p> <p style="margin-left:28px"> <span style="font-family:宋体">校验</span></p> <p style="margin-left:28px"> <span style="font-family:宋体">数据库管理</span></p> <h4 style="margin-left:28px">3) <span style="font-family:宋体">常用包管理器:</span></h4> <p class="MsoListParagraph" style="margin-left:28px">1. Debian: dpkg, <span style="font-family:宋体">后缀</span>.deb</p> <p class="MsoListParagraph" style="margin-left:28px">2. RedHat: rpm, <span style="font-family:宋体">后缀</span>.rpm</p> <p class="MsoListParagraph" style="margin-left:28px">3. <span style="font-family:宋体">简介:</span></p> <p style="text-indent:28px"><span style="font-family:宋体">在</span> GNU/Linux( <span style="font-family:宋体">以下简称</span> Linux) <span style="font-family:宋体">操作系统中,</span>RPM <span style="font-family:宋体">和</span> DPKG <span style="font-family:宋体">为最常见的两类软件包管理工具,他们分别应用于基于</span> RPM <span style="font-family:宋体">软件包的</span> Linux <span style="font-family:宋体">发行版本和</span> DEB <span style="font-family:宋体">软件包的</span> Linux <span style="font-family:宋体">发行版本。软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。</span></p> <p style="text-indent:28px">RPM <span style="font-family:宋体">全称为</span> Redhat Package Manager<span style="font-family:宋体">,最早由</span> Red Hat <span style="font-family:宋体">公司制定实施,随后被</span> GNU <span style="font-family:宋体">开源操作系统接受并成为很多</span> Linux <span style="font-family:宋体">系统</span> (RHEL) <span style="font-family:宋体">的既定软件标准。与</span> RPM <span style="font-family:宋体">进行竞争的是基于</span> Debian <span style="font-family:宋体">操作系统</span> (UBUNTU) <span style="font-family:宋体">的</span> DEB <span style="font-family:宋体">软件包管理工具-</span> DPKG<span style="font-family:宋体">,全称为</span> Debian Package<span style="font-family:宋体">,功能方面与</span> RPM <span style="font-family:宋体">相似。</span></p> <h3 style="margin-left:28px">三、 Linux<span style="font-family:宋体">源程序包管理器前端工具</span></h3> <p style="text-indent:28px"><span style="font-family: 宋体;background: white">由于开源的多态性,</span><span style="font-family: Arial, sans-serif;background: white">Linux </span><span style="font-family: 宋体;background: white">操作系统中的软件之间的依赖性关系处理一直令用户感到头疼。</span>因此可利用前端工具解决包依赖关系。</p> <p> <span style="font-family:宋体">常用前端工具如下:</span></p> <p class="MsoListParagraph" style="margin-left:28px">1. dpkg –> apt-get</p> <p class="MsoListParagraph" style="margin-left:28px">2. rpm –> yum</p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信