1、常用 Linux 软件包安装方式与命令
早期在 Linux 系统中安装软件只能采取编译源码包的方式,而且还需要自行解决软件之间的依赖关系,安装好一个服务程序难度非常大,不仅需要具备丰富的知识和技能,还要有良好的耐心。
随着 Linux 的普及,软件安装工具的不断改进,在 Linux 上安装软件也变得越来越便捷,提供包括从源码编译安装到最高级的在线自动安装、更新和管理等方式。
1.1、RPM 安装方式
RPM(Redhat Package Manager,红帽软件包管理器)是由 Red Hat 公司提出的一种软件包管理标准,可用于软件包的安装、升级、校验和卸载等。由于 RPM 遵循 GPL 许可协议且功能强大方便,因而广受欢迎,逐渐受到其他发行版的采用。
常用的 RPM 命令及其作用
选项 | 作用 |
---|---|
rpm -ivh filename.rpm | 安装软件,并显示安装进度 |
rpm -Uvh filename.rpm | 升级软件包 |
rpm -e filename.rpm | 卸载软件包 |
rpm -qpi filename.rpm | 列出 RPM 软件包的描述信息 |
rpm -qpl filename.rpm | 列出 RPM 软件包内的文件信息 |
rpm -qf filename | 查询文件属于哪个 RPM |
1.2、YUM 安装方式
由于 RPM 安装方式需要用户解决软件之间的依赖关系,安装难度较大,且效率低下,
为此,人们推出了高级软件包管理工具 YUM。
YUM(Yellow dog Updater and Modified)是 RHEL 中基于 RPM 的软件包管理器,可以将它看成一个软件仓库管理器,软件仓库中的 RPM 软件包可以是由红帽官方发布的,也可以是由第三方或自己编写的。
YUM 能够从指定的软件仓库中自动下载、安装或更新 RPM 包,并自动处理和安装所有依赖的软件包,使得安装软件变得非常简单,是 RHEL 7 中首选的软件安装与管理方式。
常见的 Yum 命令及其作用
命令 | 作用 |
---|---|
yum repolist all | 列出所有软件仓库及其状态 |
yum list all | 列出软件仓库中所有软件包 |
yum search软件包名称 | 搜索软件库中的 RPM 软件包 |
yum install 软件包名称 | 安装软件包 |
yum update 软件包名称 | 升级软件包 |
yum remove 软件包名称 | 移除软件包 |
yum clean all | 清除所有仓库缓存 |
yum check-update | 检查可更新的软件包 |
yum info 件包名称 | 查看软件包信息 |
1.3、DNF 安装方式
Yum 虽然解决了软件的依赖关系问题,但仍然还是存在分析不准确、内存占用量大和运行效率低等问题。于是在 2015 发布了新一代的 RPM 软件包管理器——DNF,并成为 RHEL 8 默认的软件安装与管理工具。
DNF 是 Yum 管理工具的提升版,它继承了 YUM 原有的命令格式和使用习惯。在 RHEL 8 中,yum 与 dnf 这两个命令是通用的,但更建议使用 dnf 命令。
命令 | 作用 |
---|---|
dnf clean all | 清除软件仓库缓存 |
dnf repolist all | 列出所有软件仓库及其状态 |
dnf list all | 列出软件仓库中所有软件包 |
dnf search 软件包名 | 搜索软件库中的 RPM 软件包 |
dnf install 软件包名 | 安装软件包,可加选项-y 自动确认 |
dnf remove 软件包名 | 移除软件包,可加选项-y 自动确认 |
dnf info 软件包名 | 查看软件包信息 |
dnf update 软件包名 | 升级软件包 |
dnf check-update | 检查可更新的软件包 |
2、常用 Linux 系统服务管理命令
RHEL7 之前的版本,以及很多其它 Linux 发行版对系统服务的管理均采用传统的命令,从 RHEL7 开始使用 systemctl 命令来管理系统服务,它们之间有比较大的差异。以服务 foo为例,对该服务的管理命令及差别如表所示。
传统命令 | RHEL 7/8 命令 | 作用 |
---|---|---|
service foo start | systemctl start foo | 启动服务 |
service foo restart | systemctl restart foo | 重启服务 |
service foo stop | systemctl stop foo | 停止服务 |
service foo reload | systemctl reload foo | 重新加载配置文件但不关闭服务 |
service foo status | systemctl status foo | 查看服务状态 |
chkconfig foo on | systemctl enable foo | 开机自启动 |
chkconfig foo off | systemctl disable foo | 开机不自启动 |
chkconfig foo | systemctl is-enabled foo | 查看指定服务是否开机自启动 |