Linux软件管理的一些总结

dnf 包管理工具

dnf 是 yum 的升级版,与 yum 相比提升了性能,也提供了一些新功能。在 CentOS8 和 RHEL8 中默认使用 dnf 作为包管理工具。它的命令跟 yum 类似,下面是一些常用的命令。

  1. 安装软件包
1
sudo dnf install package-name
  1. 搜索软件包
1
sudo dnf search keyword
  1. 列出已安装的软件包
1
sudo dnf list installed
  1. 升级软件包
1
sudo dnf update
  1. 删除软件包
1
sudo dnf remove package-name
  1. 列出可用软件组
1
sudo dnf group list
  1. 安装软件组
1
sudo dnf group install package-group
  1. 清理缓存
1
sudo dnf clean all
  1. 查看软件包信息
1
sudo dnf info package-name

EPEL 存储库

EPEL(Extra Packages for Enterprise Linux) 是针对企业级Linux发行版(如 CentOS、RHEL)的一个社区维护的软件包存储库。EPEL 存储库中包含了一些额外的软件包,这些软件包在原始发行版的 Linux 存储库中可能没有包含,但在企业环境中非常有用。比如咱们常用的 Redis、Nginx。在这里可以查看 epel 有哪些软件包:https://rhel.pkgs.org/8/epel-x86_64/8/

用 yum 或 dnf 安装 epel 存储库

1
2
sudo yum install epel-release
sudo dnf install epel-release

systemctl 管理工具

systemctl 是一个用于管理系统服务的命令行工具,用于替代传统的 init 系统。它有以下常用的命令

  • systemctl start service_name: 启动一个服务。
  • systemctl stop service_name: 停止一个服务。
  • systemctl restart service_name: 重启一个服务。
  • systemctl reload service_name: 重新加载服务的配置。
  • systemctl status service_name: 查看服务的状态信息。
  • systemctl enable service_name: 设置服务在开机时自动启动。
  • systemctl disable service_name: 禁用服务的开机自动启动。

每一个服务在 /usr/lib/systemd/system 目录下都有一个 service 文件,service 文件中的 ExecStartExecStop 控制服务如何启动与停止。reload 功能由 systemctl 提供。

如果你要让 systemctl 管理自己的软件,同样需要在 /usr/lib/systemd/system 下创建自己的 service 文件,然后执行 sudo systemctl daemon-reload 命令使配置生效。

添加 sudo 用户与限制 root 登录

  1. 添加用户并加入 sudo 组
1
2
3
sudo useradd username
sudo passwd username
sudo usermod -aG wheel username
  1. 设置执行 sudo 命令不输入密码
1
2
3
sudo visudo
# 或者
sudo vim /etc/sudoers

​ 在编辑文件中加入这一行 username ALL=(ALL) NOPASSWD: ALL

  1. 设置不允许 root 用户登录
1
sudo vim /etc/ssh/sshd_config

​ 找到并修改 PermitRootLogin no

​ 重启 sshd

1
sudo systemctl restart sshd