目录
1 软件安装包分类
根据安装包是否经过封装,将其分为源码包与二进制包(又称为封装后的软件包),两种安装包的安装方式不同。
2 源码包
2.1 源码包简介
源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,Linux 中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为 Tarball。GNU社区、官方网站都有源码包下载。
源码包需要我们自己去软件官方网站进行下载,包中通常包含以下内容:
- 1)源代码文件。
- 2)配置和检测程序(如 configure 或 config 等)。
- 3)软件安装说明和软件说明(如 INSTALL 或 README)。
使用源码包安装软件具有以下优点:
- 1)开源。如果你有足够的能力,则可以修改源代码,进行二次开发。
- 2)可以自由选择所需的功能。
- 3)因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。
- 4)卸载方便。
使用源码包安装软件也有以下不足:
- 1)安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。
- 2)编译时间较长,所以安装时间比二进制安装要长。
- 3)因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决。
2.2 源码包安装注意事项
(1)需要进行编译,指定安装的路径和编译所需要的功能。
(2)必须要有C语言编码器。
2.3 源码包安装过程
(1)安装C语言编码器:gcc,输入命令yum -y install gcc
(2)下载源码包
(3)确定目录(系统单方面推荐存放和安装位置):
- 1)源码包保存位置:/usr/local/src
- 2)软件安装位置:/usr/local/xxx
(4)解压缩,并进入解压缩后的目录,可看到软件包有很多文件。先了解软件是干什么用的(如resdme),查看软件的安装方法(如install)
(5)软件的配置与检测。在解压缩后的目录下输入命令:./configure --prefix=/usr/local/python3
,其中prefix=后面的为软件的安装路径。通过配置脚本指定安装路径和功能,并且生成makefile编译脚本文件,即:
- 1)指定安装路径
- 2)检测系统环境是否支持安装,是否有缺省
- 3)将定义好的功能选项和环境信息写入Makefile文件
(6)编译。在解压缩后的目录下输入命令:make
。通过make命令控制makefile文件进行顺序编译,使用gcc将源码包翻译成机器语言,如果报错,可清空临时文件:make clean
(7)编译安装。在解压缩后的目录下输入命令:make install
。将编译好的文件安装到configure指定的目录下
(8)启动服务。安装方法中会告诉如何启动服务。
(9)卸载:直接把configure指定的安装目录全部清空即可(rm -rf 目录名)。
tips:
apache的主页在安装目录下的htdocs文件夹下。
3 二进制包安装过程
3.1 二进制包简介
相比源码包,二进制包是在软件发布时已经进行过编译的软件包,所以安装速度比源码包快得多(和 Windows 下软件安装速度相当)。也正是因为已经进行通译,大家无法看到软件的源代码。
使用二进制包安装软件具有以下 2 点好处:
- 1)安装便捷。包管理系统简单,只通过几个命令就可以实现包的安装、升级、査询和卸载。
- 2)安装速度比源码包安装快得多。
使用 RMP 包安装软件有如下不足:
- 1)经过编译,不能在看到源代码。
- 2)功能选择不如源码包灵活。
- 3)有些软件具有依赖关系。有时我们会发现,在安装软件包 a 时需要先安装 b 和 c,而在安装 b 时需要先安装 d 和 e。这就需要先安装 d 和 e,再安装 b 和 c,最后才能安装 a。比如,我买了一个漂亮的灯具,打算安装在客厅里,可是在安装灯具之前,客厅需要有顶棚,并且顶棚需要刷好油漆。安装软件和装修及其类似,需要有一定的顺序,有时依赖性会非常强。
- 4)需要根据系统的类型选择不同后缀名的安装包。
- 5)不能指定安装路径,只能按照默认的安装路径安装。
二进制包是 Linux 下默认的软件安装包,因此二进制包又被称为默认安装软件包。目前主要有以下 2 大主流的二进制软件包:
- 1)rpm包:red hat package manerger, 后缀为rpm。功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
- 2)deb 包:安装在Debian Linux 上的包,后缀为deb。主要应用在 Debian 和 Ubuntu 、kali中。
tips:
1)为什么我们安装系统时不需要根据依赖关系去安装呢?
因为光盘中有依赖关系列表。
3.2 CentOS二进制包安装及管理
3.2.1 RPM包的命令管理
本地管理,软件包已经下载或安装到本地。
- rpm -ivh 包全名:i为安装,v为显示详细信息和h为显示安装进度
- rpm -Uvh 包全名:升级软件包
- rpm -e 包名:卸载
- rpm -q 包名:q为:query查询,查看安装的软件包的版本,源码安装的包不可查
- rpm -qa :查询所有安装过的的rpm软件包
- rpm -qi 包名:查看包详细信息
- rpm -ql 包名:查看安装的软件包的所有安装位置
- rpm -qf 文件名:通过任意文件名,查看它所属的包全名
3.2.2 RPM包的安装过程
要求:以安装CentOS 7 x86_64中的tree安装包为例讲述安装过程。
(1)首先进入到CentOS 7 x86_64的目录中,其rpm软件包放在Packeges目录中,在Packeges目录中搜索出带关键字tree的文件。
(2)确认系统是否有安装过该软件。输入命令 rpm -qa | grep "tree"
,查询是否安装过tree包,图中可看出并没有安装过。
(3)查看该软件包的作用。输入命令rpm -qpi tree-1.6.0-10.el7.x86_64.rpm
,查看该软件的详细信息,其中description为描述该软件的作用。
(4)确认该软件的安装路径,输入命令rpm -qpl tree-1.6.0-10.el7.x86_64.rpm
,查询该软件安装后的安装路径。注意,由于是在package目录下,因此包均用的相对路径。
(5)安装软件。输入命令rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
,安装软件。其中i为安装,v为显示详细信息和h为显示安装进度。
(6)使用软件。输入命令tree /boot验证下该软件的功能。
(7)假如需要卸载软件。在任何目录下均可,输入命令rpm -e tree
.并验证下是否卸载成功。
3.2.3 RPM包的yum管理:
云管理,软件包需要联网下载,也可更改配置使用本地yum源。
yum安装会自动解决安装的依赖性问题,即安装时需要依赖包时会自动通过服务器下载并安装,不用用户手动安装。
- yum list:查看yum上所有可用软件包
- yum search 包名:通过部分包名查看可用可用软件包
- yum -y install 包名:安装,(-y)是安装时不询问
- yum update 包名:升级软件包,如果省略包名则升级所有,包括liunx内核
- yum remove 包名:卸载软件,但会卸载全部依赖,谨慎!
- yum grouplist:查看所有安装的组,比如桌面、输入法等
- yum groupinstall 软件组名:安装软件包组,卸载用groupremove
tips:
1)操作系统yum源文件默认路径,yum源文件指定了操作系统依赖关系列表的位置
2)打开系统自带的一个yum源文件,查看yum源文件的格式。
3.3 Kali二进制包安装及管理
3.3.1 dpkg方法安装deb包
总体安装思路:
- 1)找到相应的软件包,比如soft.version.deb,下载到本机某个目录
- 2)打开一个终端,cd soft.version.deb所在的目录;
- 3)输入dpkg -i soft.version.deb
相关命令:
- 1) 查询命令用法:dpkg --help
- 2)安装:dpkg –i deb的软件包名
- 3)卸载:dpkg –e 软件名
- 4)查询当前系统安装的软件包:dpkg –l 软件名
3.3.2 apt方式安装deb包
(1)打开一个终端。
(2)查询软件的名称或相关信息:apt-cache search software
(3)如果2中找到了软件software,则用命令安装软件:apt-get install software
(4)卸载一个已安装的软件包:apt-get remove software
4 安装示例
后续有需要安装具体软件时再补充具体安装示例。
5 归纳
(1)掌握安装包分为源码包与二进制包(又称为封装后的软件包)。
(2)熟悉不同版本操作系统中源码包的安装方法。
(3)熟悉不同版本操作系统中二进制软件包的安装方法。
(4)掌握yum方式安装软件包。
参考文章
[1] 《linux安装软件的几种方式(kali平台)和一些实用的软件(持续更新)》
[2] 《千锋源码包安装视频》
[3] 《千锋rpm安装方法视频》
[4] 《千锋yum安装方法视频》
[5] 《Linux软件包(源码包和二进制包)》
[6] 《Linux的RPM和源码包(CentOS)》
[7] 《Kali及其他Linux系统软件分类及安装》