Linux 软件安装管理

标签: Linux

Linux 也存在类似 Windows 的图形化软件安装方式;
但是经常作为服务器操作系统的 Linux,经常不会安装图形化操作界面;
所以使用命令行成为 Linux 最常用最方便的软件安装方式;
下面我们主要介绍 Linux 使用命令行进行软件安装和管理;

软件管理简介

1. 源码包

源码包常见的安装包为 tar 包,比如 httpd-2.4.33.tar.gz,它是使用 Unix 的打包工具 tar 打包的;
只要 Linux 安装了 gcc、make 等编译器都支持源码包的安装;

源码包的优点是:
* 开源,有能力的话可以对源码进行修改,所以可以自由选择自己所需的功能;
* 本机兼容性好,更加稳定和高效,只要编译通过,就不存在各种库依赖的问题;
* 卸载方便,直接删除安装目录即可;
* …

源码包的缺点是:
* 安装步骤多,容易出错,解决问题麻烦;
* 安装编译耗时过长,编译麻烦;
* 缺乏自动依赖管理,软件升级麻烦;

2. rpm 包

介于源码包安装的种种局限性,RedHat Linux 提供了一种对源码编译后二进制文件封装的格式 rpm,比如
httpd-2.4.6-80.el7.centos.x86_64.rpm,现在全称为 RPM Package Manager,以前叫 RedHat Package Manager;
rpm 的优点缺点与源码包安装相反,各有优缺,需要用户自行判断选择使用哪种安装方式;

3. 脚本安装

当我们安装复杂大型的软件时,可以使用别人写好的 shell 脚本进行批量自动化安装;
脚本安装时安装的依然是源码包和 rpm 包;
优点是安装简单快捷,缺点则是丢失了安装的自定义;

rpm 命令管理

1. 命名规则

rpm 包拥有统一的命名规则,比如:httpd-2.4.6-80.el7.centos.x86_64.rpm

命名 说明
httpd 包名称
-2.4.6 版本
-80 发布的次数
el7.centos 适合的 Linux 发行版本
x86_64 适合的硬件平台
rpm 包扩展名

2. 安装、升级与卸载命令

  • 安装命令:
rpm -ivh <包全名>

-i(install)安装
-v(verbose)显示详细信息
-h(hash)显示进度
--nodeps 不检测依赖性(不推荐使用)
  • 升级命令(当包未安装时,也可用作安装命令):
rpm -Uvh <包全名>

-U(upgrade)升级
  • 卸载命令:
rpm -e <包名>

-e(erase)卸载
--nodeps 不检测依赖性(不推荐使用)

3. rpm 包查询

  1. 查询命令
rpm [参数] <包名>

-q(query)查询
-i(information)软件信息
-l(list)文件安装目录列表
-R(requires)包依赖性
-p(package)未安装包信息

rpm -qi <包名>

rpm -ql <包名>

rpm -qR <包名>

  1. 查询所有已经安装的 rpm 包
    该命令通常和管道符组合查询已安装的包
rpm -qa

-aall) 所有

  1. 查询文件属于哪个软件包
rpm -qf <文件名>

-f(file)查询文件属于哪个软件包

  1. rpm 包通常安装位置
目录 说明
/etc/ 配置文件
/usr/bin/ 可执行命令
/usr/lib 函数库
/usr/share/doc/ 使用手册
/usr/share/man/ 帮助文件

4. rpm 包校验

rpm -V <包名>

-V(verify)校验指定包中的文件

当 rpm 包文件被修改后,使用校验命令会返回被修改的信息:

  • 验证内容中信息具体说明:
验证信息 说明
S 文件大小是否改变
M 文件类型或权限是否改变
5 文件md5校验值是否改变
D 设备主从代码是否改变
L 文件路径是否改变
U 文件所有者是否改变
G 文件用户组是否改变
T 文件修改时间是否改变

* 文件类型说明:

文件类型 说明
c 配置文件(config file)
d 普通文件(documentation)
g 不属于这个 rpm 包(ghost file)
L 授权文件(license file)
r 描述文件(read me)

yum 在线安装

由于 rpm 包安装时的各种依赖问题导致的不方便,yum 安装方式应运而生;
当使用 yum 目录命令进行软件包安装时,Linux 会从指定的 yum 源下载安装 rpm 包,并且自动解决各种包依赖的问题;

1. yum 源文件

yum 源文件位于 /etc/yum.repos.d/ 目录中,默认生效文件为 CentOS-Base.repo

yum 源文件内容说明:

参数 说明
[base] 容器名称,写在 [ ]
name 容器说明
enabled 是否生效,值为1或者不写时为生效,0不生效
baseurl 源服务器地址
gpgcheck 为1表示 rpm 数字证书生效
gpgkey 数字证书公钥文件保存位置

2. yum 命令

# 列出所有可用软件包列表
yum list
# 列出所有可用的软件组列表
yum grouplist

# 搜索所有和关键词相关的包
yum search <关键词>

# 安装
yum -y install <包名> # -y 遇到确认时自动回答 yes
# 安装指定软件组
yum groupinstall <软件组名>

# 升级(不建议使用)
yum -y update <包名>

# 卸载(不建议使用)
yum -y remove <包名>
# 卸载指定软件组
yum groupremove <软件组名>

源码包安装

源码包通常保存位置为 /usr/local/src/
源码包通常安装位置为 /usr/local/包名/

# 安装C语言编译器
yum -y install gcc

# 下载源码包

# 解压源码包
tar -zxvf httpd-2.4.33.tar.gz

# 进入解压目录
cd httpd-2.4.33

# 软件配置与检查 --prefix指定安装位置
./configure --prefix=/usr/local/apache2

# 编译
make

# 安装
make install

脚本安装

以安装 LNMP 为例:https://lnmp.org/install.html

参考:
慕课网 Linux软件安装管理

版权声明:本文为S_Istvan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/S_Istvan/article/details/80962982