Linux系统下只有源码包、二进制包,就这两种包。
Tips: windows系统中的软件和Linux系统的软件是不通用的。 windows系统中的软件是经过编译后的.exe文件和.msi。
以前我们一直在说,Linux系统飞速发展的一个根本原因就是开源。所谓的源码包,就是直接给你一个开放的源程序。作者写的时候是什么样,写完就直接给你,这就是源码包。
Linux系统中最早的程序都是这样的源码包。
类似于windows系统的exe文件。二进制包安装较源码包安装更为方便,但是二进制包就不在是开源的了,因为二进制包中是已经编译好的文件。
提示:
DPKG包和RPM包,这两种包系统是不通用的。这也是两个系统最大的区别。但是Red Hat中的安装过程和Debian中软件的安装是一一对应的。如果以后用到Debian系统,查阅一下与之对应的命令即可。注意:这里多强调一下上边的依赖性
依赖性分为:
树形依赖 a–>b—>c a包依赖b包,b包依赖c包。所以需要先安装c包,在安装b包,最后在安装c包。环形依赖a—>b—>c—>a 这种环形的依赖关系,按照上边树形依赖的解释,是无法安装的。但是这种依赖关系解决起来很简单,就是把a、b、c包同时安装,就是用一条命令同时安装三个包就能解决。模块依赖(函数库依赖) 最烦麻烦就是这种模块依赖关系,我们举一个例子,尝试安装以下文件: [root@localhost Packages]# rpm -ivh mysql-connector-odbc-5.2.5-7.e17.x86_64.rpm 错误:依赖检测失败: libodbc.so.2()(64bit)被mysql-connector-odbc-5.2.5-7.e17.x86_64需要 libodbcinst.so.2()(64bit)被mysql-connector-odbc-5.2.5-7.el7.x86_64需要 注意: libodbc.so.2是一个文件的名字,并不是一个包名,你要把这个文件所在的包安装上,这个文件就存在了。发现报错,需要安装“libodbc.so.2”函数库文件,这时会发现在光盘中根本找不到这个文件。那是因为这个函数库没有单独成包,是包含在某一个软件包中的。而如果要知道该文件在哪个软件包中,需要查询网站http://www.rpmfind.net/(很方便),如图:
点击搜索之后,会显示在不同的Linux版本中,安装哪个包,如下图 这是个网站的原理,是通过查询一个RPM包依赖管理的数据库,来解决这个问题的。
注意:
如果是正版的Red Hat系列的Linux系统,会收费,但是CentOS里的yum是免费的。还有要注意一点Linux系统中,二进制包、rpm包、默认安装包都指的是二进制包。yum只是源码包和二进制包的在线安装方式。软件既有源码包版本,又有RPM包版本,如何选择?
建议:
源码包:如果服务是给大量客户端提供访问的,建议使用源码包,源码包效率更高(如搭建LAMP环境)。RPM包:如果程序是给少量用户访问,或者本地使用的,建议RPM包,因为RPM管理方便。