一、软件包管理简介
1.软件包分类
(1)源码包
脚本安装包
(2)二进制包(RPM、系统默认包)
源码包: 直接把代码给你的包,可以看到源代码。
Linux是用c语言写的,所以源码包大部分是用c写的,但是少数使用c++写的。就这么说吧,源码包就是用c语言源代码直接给你的包,可以看到源程序。
脚本安装包: 脚本安装包并不多见,绝大多数都是源码包进行在开发之后的源码包。他的特征是不需要手工安装,有点类似于Windows中的软件,事先写好安装界面,只要执行安装程。Windows的安装程序一般是setup.exe,脚本安装包的程序是install.sh
二进制包: 经过编译之后的包,编译成了机器语言,不可以看源代码。因为厂商事先进行了编译,所以省略了你的编译过程,软件包安装更快。Windows编译完是 .exe格式。centos编译完是 .RPM格式。就是在我们安装Linux系统是用到的镜像光盘,里面的包的格式就是RPM格式。
干货来了: 目前Linux开发的版本有两大系列,一类是Redhat系列:比如centos。它的二进制软件包是RPM包。一类是debian和Ubuntu系列。 它的二进制软件包是deb包,这两类系列最大的不同就是是二进制的软件包不同,两种包管理系统不一样,除了这个区别之外,两种发行版本剩余的东西基本一样,命令、配置文件的保存位置基本一致。
2.源码包
源码包的优点:
(1) 开源:如果有足够的能力,可以修改源代码。
(2) 可以自由选择所需的功能。如何还不满足你的要求,你有足够的能力的话,还可以修改源代码。
(3) 软件是编译安装,所以更加适合自己的系统更加稳定,效率更高。
(4) 卸载方便
备注: 1. 经过统计,如果用源码包安装的软件比用RPM包安装的软件,在相同的软件,相同的版本,相同的计算机上,它的效率要高5%左右,不要小看这5%,如果我们的这个软件是对外提供访问的,比如说网站apache,一天的访问量是几十万,甚至上百万的访问量,多5%相当于多好几万的访问量,用源码包装,不改变硬件的条件下,凭空就多出好几万人,那当然用源码包装更好。
2. 其实源码包没有卸载命令,这里说的卸载,就是说你可以直接包源码包安装的目录直接删掉。在Windows里卸载软件的时候不能直接删除目录,这样会遗留大量的垃圾文件,正确的做法应该是在控制面板里卸载,但是这样还是会遗留一些垃圾文件。
源码包的缺点:
在我们安装Linux时,用的是光盘的镜像文件,我们会发现里面的镜像文件的包不是源码包,而是RPM格式的包,这正是RPM包也叫系统默认包的原因。所以源码包有些它的缺点:
(1) 安装过程步骤较多,尤其安装大的软件集合时(如LAMP环境搭建),容易出现拼写错误。
(2) 编译过程时间过程较长,安装比二进制安装时间长。
(3) 因为是编译安装,安装过程中一旦报错新手很难解决。
备注: 1. 安装比较慢,容易报错,不太适合初学者。 2. 早期时Linux是源代码安装的,而不是用RPM包装的,gentoo的Linux使用源代码装的,如果用源码包安装几个G的操作系统,需要3天左右,进行不断编译安装,时间的长短也跟软件包的多少也有关系。
3.RPM包
二进制包的优点:
(1)包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询、和卸载。
(2)安装速度比源码包安装快的多。
备注: 1. Linux经过一段发展之后也开发出来了自己的二进.制包,对Redhat来讲就是RPM包。
2. 二进制包是厂商事先编译过,给我们的软件包是编译完的,所以省去了编译的过程,速度更快,跟Windows安装程序的速度差不多。
二进制包的缺点:
(1) 经过编译,不再可以看到源代码
(2) 功能选择不如源码包灵活
(3) 依赖性
备注: 1. 什么是依赖性那?举个栗子: 当安装软件包A时,先要安装软件包B,当安装B时,先安装软件包C。这时安装软件包的顺序时CBA。卸载的时候依次卸载为ABC。2. 在Windows当中,也有一些这样的依赖性,只是它不像Linux当中所有的RPM包基本上都有依赖性,这么繁琐。比如说在Windows中打个大型的游戏,玩这个游戏,必须有相应的东西做支撑,首先又块比较好的显卡,其次给这块显卡安装最新的驱动,安装微软多媒体的控制平台等。很多的大型软件,需安装其他的支持。
4.结尾
(1)为什么在电脑里安装软件?(这个问题貌似有点…)
任何一个操作系统或者说一台计算机,如果没有软件做支持,它能实现的功能非常少。如果一台计算机没有操作系统,它是一个铁疙瘩,没有任何功能,就是一个空壳。如果仅有操作系统的计算机,可以比喻成一个一个花瓶,看起来很漂亮,但是只有一些简答的存储功能,剩下的一些功能都没有。在Windows里聊天看电影打游戏,如果要实现这样的功能,就要有相应的软件作为支持,比如看电影就要播放器,要聊天就要有时间沟通工具。那Linux同样也是这样,如果没有软件作为支持,它能实现的功能非常少,大多数的软件用于服务器,个人软件应用起来的感觉和使用频率没有Windows的好,但是在服务器来讲,软件不管从稳定性,还是安全性,还是软件的多样性来讲,都不比Windows差,很多软件都比Windows好。
首先明确一点,Windows中的所有的安装包都不能在Linux当中安装和使用,也就是说,在Windows中,.exe程序是不能再Linux当中直接安装使用的。好处是,Windows当中的大量的病毒和木马对Linux来讲都是不可识别的,就算上传到Linux服务器上,看到的也是不能执行也不认识的普通文件,但是有一点坏处是,所有的软件包都必须针对Linux再做单独的开发。在Linux当中聊QQ,那只能下载Linux版本的QQ,才可以进行安装。Windows版本在Linux上面是不能用的,这种开发在个人软件上可能没有Windows做的好,数量多。Linux主要做给服务器用的,服务器端软件数量是众多的。