本文转载自:简书作者 IstvanShaw 的文章 Linux 软件安装管理
Linux 也存在类似 Windows 的图形化软件安装方式;
但是经常作为服务器操作系统的 Linux,经常不会安装图形化操作界面;
所以使用命令行成为 Linux 最常用最方便的软件安装方式;
下面我们主要介绍 Linux 使用命令行进行软件安装和管理;
软件管理简介
1. 源码包
源码包常见的安装包为 tar 包,比如 httpd-2.4.33.tar.gz
,它是使用 Unix 的打包工具 tar 打包的;
只要 Linux 安装了 gcc 等编译器都支持源码包的安装;
源码包的优点是:
- 开源,有能力的话可以对源码进行修改,所以可以自由选择自己所需的功能;
- 本机兼容性好,更加稳定和高效,只要编译通过,就不存在各种库依赖的问题;
- 卸载方便,直接删除安装目录即可;
- ...
源码包的缺点是:
- 安装步骤多,容易出错,解决问题麻烦;
- 安装编译耗时过长,编译麻烦;
- 缺乏自动依赖管理,软件升级麻烦;
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 包查询
- 查询命令
rpm [参数] <包名>
-q(query)查询
-i(information)软件信息
-l(list)文件安装目录列表
-R(requires)包依赖性
-p(package)未安装包信息
- 查询所有已经安装的 rpm 包
该命令通常和管道符组合查询已安装的包
rpm -qa
-a(all) 所有
- 查询文件属于哪个软件包
rpm -qf <文件名>
-f(file)查询文件属于哪个软件包
- 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软件安装管理