目录

  • 1 软件安装包分类
  • 2 源码包
    • 2.1 源码包简介
    • 2.2 源码包安装注意事项
    • 2.3 源码包安装过程
  • 3 二进制包安装过程
    • 3.1 二进制包简介
    • 3.2 CentOS二进制包安装及管理
      • 3.2.1 RPM包的命令管理
      • 3.2.2 RPM包的安装过程
      • 3.2.3 RPM包的yum管理:
    • 3.3 Kali二进制包安装及管理
      • 3.3.1 dpkg方法安装deb包
      • 3.3.2 apt方式安装deb包
  • 4 安装示例
  • 5 归纳
  • 参考文章

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系统软件分类及安装》

【Linux系统】第8节 Linux系统软件分类及安装相关推荐

  1. git 的安装以及使用:是一个开源的分布式版本控制系统,可以对项目进行版本管理。 早期是linux之父用来管理linux系统源代码的(linux是和windows一样操作系统 开源免费的操作...

    ## 总结 - 学会使用基本的git命令 管理源代码 - 学会去github创建仓库 并将代码上传到github的仓库 (有待完成 回家有网再push) - 了解本地的.git和服务器github的. ...

  2. linux设置sfq队列参数,Linux系统运维之Linux高级流量控制工具TC使用方法

    Linux系统运维之Linux高级流量控制工具TC使用方法 本文标签: 运维 流量劫持 Linux系统运维之Linux高级流量控制工具TC使用方法, 在做MHA测试的时候,有一个重要的环节就是测试MH ...

  3. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  4. php 登录 linux服务器,如何实现linux系统远程登录到linux服务器

    linux系统登录到远程linux服务器: 有多种不同的协议可供选择,也许SSH是"最好"的.SSH是secure shell的简写,意为"安全的shell". ...

  5. Linux系统磁状态检测,检测Linux硬件状态

    计算机系统是由软件系统和硬件系统共同组成的.检测硬件状态对于保障整个系统的稳定是非常重要的.不论操作系统是使用Linux.还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了.这里我们主要 ...

  6. 如何查看linux系统的存储空间大小,linux 如何查看硬盘大小,存储空间大小等系统信息及硬件信息...

    一.linux CPU大小 [root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpui ...

  7. 如何制作linux系统硬盘,手把手带你自制Linux系统之二 简易Linux的制作

    手把手带你自制Linux系统之二 简易Linux的制作 本文利用CentOS5.5自带内核制作一个可以正常启动的Mini Linux. 打开上一篇准备工作中创建的CentOS虚拟机,为另一台虚拟机Mi ...

  8. Linux系统-小倒腾之Linux DIY定制裁剪(New kernel+Busybox)o_o(二)

    在前面的<Linux系统-小倒腾之Linux DIY定制裁剪(附带简单网络功能)o_o(一)>博文中,我通过对一个Linux系统的裁剪,最终制作出来了一个带有网络功能的微型Linux系统; ...

  9. linux系统查看串口占用,Linux 系统串口信息查看

    先确认系统启动的时候串口的信息. ECM_5412@chenfl:~$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 2.511678] ...

最新文章

  1. 软件开发环境-过程控制和消息服务器
  2. java面试 内存中堆和栈的区别
  3. 【Python】青少年蓝桥杯_每日一题_3.05_排列组合
  4. C++中std::tr1::function和bind 组件的使用
  5. 零距离泛目录站群开源版源码
  6. percona-toolkit源码编译安装
  7. svn与eclipse的集成(第三方插件与eclipse的集成)
  8. C# 基于 adb 控制安卓
  9. nginx在linux reload报错,nginx reload和reopen
  10. 实测:一周不更新文章头条号指数会掉多少?
  11. [GBase 8s 教程]GBase 8s 分页语法
  12. 微型计算机的性能主要取决于什么,微型计算机的性能主要取决于什么?
  13. android无线充电器推荐,和安卓通用的无线充电器门派推荐
  14. Django实现小程序的登录验证功能,并维护登录态
  15. ratingBar进度条
  16. python各种命令
  17. 三相异步电动机的制动
  18. php多语言翻译替换,PHP多语言翻译的实践
  19. 为了证明 Windows 11 有多安全,微软亲自「黑」掉了自家电脑
  20. 西门子smartclient怎么用_西门子s7-200smart modbus-tcp通信实例编程详细指导

热门文章

  1. spring+mybatis(Oracle的 round()+decode())值为.00的问题
  2. 【简单数字式电容测量仪 】
  3. 共享内存-父子进程、非亲缘关系进程通信
  4. 帮助你整理碎片信息的App——《卡片夹》
  5. STM32控制ULN2003驱动步进电机28BYJ-48
  6. 计算机取证 报告,计算机取证实验报告(共6篇).doc
  7. 名师讲坛—Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)
  8. 计算机系统崩溃了怎么办,电脑系统崩溃怎么办?如何恢复电脑里的文件方法介绍...
  9. vue 打包部署去掉#注意事项
  10. Qt 文件和文件夹操作