脚本宝典收集整理的这篇文章主要介绍了『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Linux系统下的软件包只有源码包和二进制包,就这两种包。
Tips:
- Windows系统中的软件和Linux系统的软件是不通用的。
- Windows系统中的软件是经过编译后的
.exe
文件和.msi
。
(1)什么是源码包
以前我们一直在说,Linux系统飞速发展的一个根本原因就是开源。所谓的源码包,就是直接给你一个开放的源程序。也就是说作者写的时候是什么样,写完就直接给你,这就是源码包。
Linux系统中最早的程序都是这样的源码包。
(2)源码包的优点
abcd
翻译成0101
的过程),所以更加适合自己的系统,更加稳定也效率更高(之前有一个大概的估算,如果使用源码包安装软件,要比使用同版本同样性能的二进制包,软件的效能要高5个百分点)。(3)源码包的缺点
类似于Windows系统的.exe
文件。二进制包安装较源码包安装更为方便,但是二进制包就不在是开源的了,因为二进制包中是已经编译好的文件。
二进制包分类:
提示:
- DPKG包和RPM包,这两种包系统是不通用的。这也是两个系统最大的区别。
- 但是Red Hat中的安装过程和Debian中软件的安装是一一对应的。如果以后用到Debian系统,查阅一下与之对应的命令即可。
(1)RPM包的优点:
(2)RPM包的缺点:
a
时需要先安装软件b
和c
,而安装b
软件时需要安装软件d
和e
。这时需要先安装d
和e
,再安装b
和c
,最后才能安装a
包。所以通过RPM包安装软件,如果软件有依赖性的话,软件则是有一定的安装顺序的。如果依赖性非常强的话,会非常的繁琐。(Linux系统中绝大多数软件包都会有依赖的软件包)(3)注意
注意:这里多强调一下上边的依赖性。
依赖性分为:
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包依赖管理的数据库,来解决这个问题的。
rpm
命令手动进行安装,自己解决包之间的依赖性。yum
在线安装:yum
命令会自动连接到Red Hat
的官方服务器上的包依赖数据库,不管何种依赖关系,需要的包都会自动的下载到本地,然后在自动进行安装。注意:
- 如果是正版的
Red Hat
系列的Linux系统,会收费,但是CentOS
里的yum
是免费的。- 还有要注意一点Linux系统中,二进制包、RPM包、默认安装包都指的是二进制包。
yum
只是源码包和二进制包的在线安装方式。
软件既有源码包版本,又有RPM包版本,如何选择?
建议:
以上是脚本宝典为你收集整理的『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍全部内容,希望文章能够帮你解决『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。