『无欲则无求』Linux软件包管理 — 39、Linux系统软件包介绍
文章目录
- 1、Linux系统软件包分类
- 2、源码包
- (1)什么是源码包
- (2)源码包的优点
- (3)源码包的缺点
- 3、二进制包
- (1)二进制包分类
- (2)RPM包的优点:
- (3)RPM包的缺点:
- 4、RPM包的两种安装方法
- 5、小结
1、Linux系统软件包分类
Linux系统下只有源码包、二进制包,就这两种包。
Tips:
windows系统中的软件和Linux系统的软件是不通用的。
windows系统中的软件是经过编译后的.exe文件和.msi。
2、源码包
(1)什么是源码包
以前我们一直在说,Linux系统飞速发展的一个根本原因就是开源。所谓的源码包,就是直接给你一个开放的源程序。作者写的时候是什么样,写完就直接给你,这就是源码包。
Linux系统中最早的程序都是这样的源码包。
(2)源码包的优点
- 开源,如果有足够的能力,可以修改源代码(有利于学习,有利于推广)。
- 可以自由选择所需的功能。
- 软件是编译安装(编译:把abcd翻译成0101的过程),所以更加适合自己的系统,更加稳定也效率更高(之前有一个大概的估算,如果使用源码包安装软件,要比使用同版本同样性能的二进制包,软件的效能要高5个百分点)。
- 卸载方便(直接把安装目录删除就可以了,基本上没有残余文件)。
(3)源码包的缺点
- 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误。
- 编译过程时间较长,安装比二进制安装时间长。
- 因为是编译安装,编译安装过程容易报错,一旦报错新手很难解决。
3、二进制包
类似于windows系统的exe文件。二进制包安装较源码包安装更为方便,但是二进制包就不在是开源的了,因为二进制包中是已经编译好的文件。
(1)二进制包分类
- DPKG包:是由Debian Linux所开发出来的包管理机制,通过DPKG包Debian Linux就可以进行软件包管理。主要应用在Debian和unbuntu中。(也经常叫deb包)
- RPM包:是由Red Hat公司所开发的包管理系统。功能强大,安装、升级、查询和卸载都非常简单和方便。目前很多Linux都在使用这种包管理方式,包括Fedora、CentoS、SuSE等。我们将要学习RPM包管理系统。
提示:
- DPKG包和RPM包,这两种包系统是不通用的。这也是两个系统最大的区别。
- 但是Red Hat中的安装过程和Debian中软件的安装是一一对应的。如果以后用到Debian系统,查阅一下与之对应的命令即可。
(2)RPM包的优点:
- 包管理系统操作简单,只通过几个命令就可以实现包的安装、升级、查询和卸载。(编辑过程基本不会报错了,因为厂商已经提前编译好了)
- 安装速度比源码包安装快的多。
(3)RPM包的缺点:
- 经过编译,不再可以看到源代码。
- 功能选择不如源码包灵活。
- 依赖性。有时我们会发现需要安装软件包a时需要先安装软件b和c,而安装b软件时需要安装软件d和e。这时需要先安装d和e,再安装b和c,最后才能安装a包。所以通过RPM包安装软件,如果软件有依赖性的话,软件则是有一定的安装顺序的。如果依赖性非常强的话,会非常的繁琐。(Linux系统中绝大多数软件包都会有依赖的软件包)
注意:这里多强调一下上边的依赖性
依赖性分为:
- 树形依赖 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包依赖管理的数据库,来解决这个问题的。
4、RPM包的两种安装方法
- 手动(手工命令安装):就是通过rpm命令手动进行安装,自己解决包之间的依赖性。
- yum在线安装:yum命令会自动连接到Red Hat的官方服务器上的包依赖数据库,不管何种依赖关系,需要的包都会自动的下载到本地,然后在自动进行安装。
注意:
- 如果是正版的Red Hat系列的Linux系统,会收费,但是CentOS里的yum是免费的。
- 还有要注意一点Linux系统中,二进制包、rpm包、默认安装包都指的是二进制包。yum只是源码包和二进制包的在线安装方式。
5、小结
软件既有源码包版本,又有RPM包版本,如何选择?
建议:
- 源码包:如果服务是给大量客户端提供访问的,建议使用源码包,源码包效率更高(如搭建LAMP环境)。
- RPM包:如果程序是给少量用户访问,或者本地使用的,建议RPM包,因为RPM管理方便。
『无欲则无求』Linux软件包管理 — 39、Linux系统软件包介绍相关推荐
- 『无欲则无求』Linux系统管理 — 81、Linux进程的查看(ps命令)
文章目录 1.ps命令介绍 2.ps aux命令示例 3.ps -le命令示例 4.说明 5.pstree命令 1.ps命令介绍 ps命令是用来静态显示系统中进程的命令. 不过这个命令有些特殊,它部分 ...
- Linux中deb软件包管理怎么看,Deb软件包管理
一.流行的两种软件包管理机制 1.Debian Linux首先提出"软件包"的管理机制--Deb软件包 将应用程序的二进制文件.配置文档.man/info帮助页面等文件合并打包在一 ...
- 大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 、 Yum软件包仓库操作(概念与实操)
大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 . Yum软件包仓库操作(概念与实操) 一.RPM软件包管理 1.常见软件包类型 2.RPM包文件名特征 3.RP ...
- linux进程管理机制,linux进程管理,linux进程管理机制
linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...
- 软件包管理 之 Linux软件安装之RPM的安装技巧
1.如何安装rpm软件包 rmp软件包的安装可以使用程序rpm来完成.执行下面的命令 rpm -i your-package.rpm 其中your-package.rpm是你要安装的rpm包的文件名, ...
- linux软件包管理工具,Linux 软件包管理器-----yum配置详解一
一.yum简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定 ...
- linux 软件包管理设置,Linux速通08 网络原理及基础设置、软件包管理
使用 ifconfig命令来维护网络 # ifconfig 命令:显示所有正在启动的网卡的详细信息或设定系统中网卡的 IP地址 # 应用 ifconfig命令设定网卡的 IP地址: * 例:修改 et ...
- linux软件包管理解析,linux学习笔记_09_软件包管理解析.doc
linux学习笔记_09_软件包管理解析 软件包管理 软件包分类 源码包(C语言编写的源代码) linux主要由C语言来写. 源码包可以用写字板打开 脚本安装包:源码包进行再开发的源码包(提供安装界面 ...
- [日推荐]『讯飞快读』人工智能高效管理时间
科大讯飞大家都不陌生,去年锤子发布会上着实的火了一把,科大讯飞专业从事智能语音及语言技术等方面的研究,语音技术实现了人机语音交互,使人与机器之间沟通变得像人与人沟通一样简单.语音技术主要包括语音合成和 ...
最新文章
- 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...
- 我们都准备好进入数字货币+无现金世界了?
- 与自定义词典 分词_使用jieba库进行中文分词、关键词提取、添加自定义的词典进行分词...
- Silverlight 解谜游戏 之十六 消失的蒙娜丽莎
- Emmet Cheat Sheet(Sublime编辑)
- Python中map的使用方法
- 23.3. 操作系统监控需求
- python mysql到处excel
- 博文视点官方blog正式开张~~~~~~~~~
- 【SQL】实验四 数据库的安全性、数据库备份、数据库恢复等机制
- 中查询每个班成绩前三_重磅 2020卫生资格中初级考试成绩今天公布了
- font-awesome在Vue项目中的使用(npm使用)
- android mvp快速创建,学习MVPArms历程之Android Studio快速创建MVPArms项目
- CSS如何将段落的首行缩进两个字符(图文详解)
- comtrol 终端服务器,终端服务器:远程控制台管理———终端服务器
- 漫谈广告竞价模式(二)
- 视频广告场景识别方案总结
- Spring Cloud Contract实践
- 微信小程序代码保存后,自动格式化代码
- 安装完Ubuntu16.04后要做的事
热门文章
- 兄弟情谊 bromance
- php implicit flush,php – implicit_flush的“严重性能影响”是什么?
- 分手后挽回的概率有多大,怎么挽回才可以成功!
- mix2s适配鸿蒙,技巧篇:MIX2S使用三大常见问题 95%的小米用户都在关注
- 管理系统无法运行Java_无法使用32位版本的DISM为正在运行的64位操作系统服务
- 计算机丢失d3dx9_25,win10系统安装帝国时代提示3d3dx9_25.dll丢失的设置步骤
- 【(本科组)第十一届将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。请问,总共能排列如多少个不同的单词。
- 由于管理员设置的策略,该磁盘处于脱机状态
- mysql delete 表关联删除数据_MYSQL中delete删除多表数据与删除关联数据
- php mysql宠物社交网站kf15168