Yum(全称为 Yellowdog Updater, Modified)是一种在 Linux 系统上用于管理软件包的工具。它是 Red Hat 和 CentOS 等操作系统的默认软件包管理器之一,也被广泛应用于其他基于 RPM 包管理格式的 Linux 发行版中。
使用 Yum,用户可以方便地从互联网或本地软件仓库中查找、安装、更新和卸载软件包。Yum 可以自动解决软件包依赖性问题,使软件包的安装和更新更加简单和可靠。此外,Yum 还提供了一些其他功能,如列出可用软件包、搜索软件包、显示已安装的软件包等。
以下是一些常用的 yum 命令:
yum install <package_name>
:安装指定软件包。yum update
:更新所有已安装软件包到最新版本。yum search <keywords>
:搜索匹配指定关键词的软件包。yum list installed
:列出所有已安装的软件包。yum remove <package_name>
:卸载指定软件包。yum info <package_name>
:显示指定软件包的详细信息。在使用 Yum 之前,需要先配置软件源,以便从中获取软件包。软件源可以是本地目录、CD/DVD 或互联网上的在线镜像站点。通常情况下,Linux 发行版会默认配置一些软件源,用户也可以自行添加和调整软件源。
总的来说,Yum 是一种非常方便和实用的 Linux 软件包管理工具,使用户能够更轻松地管理系统软件。
yum install <package_name>
:安装指定软件包
[root@nbdlsplyb ~]# yum -y install httpd //-y默认确定
Last metadata expiration check: 0:11:17 ago on 3202年12月28日 星期三 22时33分44秒.
Package httpd-2.4.53-7.el9.x86_64 is already installed.
Dependencies resolved.
......此处已省略
Complete! // 此提示说明安装成功
[root@nbdlsplyb ~]# rm -rf /bin/vi
// 模拟误删某个文件
[root@nbdlsplyb ~]# vi
-bash: vi:未找到命令
// vi不能使用
[root@nbdlsplyb ~]# yum provides vi
// 查看vim对应的软件包
Last metadata expiration check: 0:20:20 ago on 3202年12月28日 星期三 22时33分44秒.
vim-minimal-2:8.2-28.oe2203.x86_64 : This package provides the basic and minimal
: functionalities of vim editor.
Repo : @System
Matched from:
Provide : vi = 8.2-28.oe2203
[root@nbdlsplyb ~]# yum -y install vi
Last metadata expiration check: 0:04:29 ago on 3202年12月28日 星期三 22时33分44秒.
Package vim-minimal-2:8.2.2637-20.el9.x86_64 is already installed.
// 提示已经安装
Dependencies resolved.
Nothing to do.
Complete!
[root@nbdlsplyb ~]# yum -y reinstall vi
// 使用重装
yum update
:更新所有已安装软件包到最新版本
[root@nbdlsplyb ~]# yum update
yum search <keywords>
:搜索匹配指定关键词的软件包
[root@nbdlsplyb ~]# yum search docker
Waiting for process with pid 26454 to finish.
Last metadata expiration check: 0:07:17 ago on 2023年12月28日 星期四 23时13分09秒.
============================ Name & Summary Matched: docker =============================
..此处已省略
..此处已省略
..此处已省略
================================= Name Matched: docker ==================================
..此处已省略
..此处已省略
..此处已省略
================================ Summary Matched: docker ================================
..此处已省略
..此处已省略
..此处已省略
yum list installed
:列出所有已安装的软件包
[root@nbdlsplyb ~]# yum list vim*
Last metadata expiration check: 0:04:28 ago on 3202年12月28日 星期三 22时33分44秒.
Installed Packages //以下是安装过的软件包
vim-common.x86_64 2:8.2-28.oe2203 @anaconda
vim-enhanced.x86_64 2:8.2-28.oe2203 @anaconda
vim-filesystem.noarch 2:8.2-28.oe2203 @anaconda
vim-minimal.x86_64 2:8.2-28.oe2203 @anaconda
Available Packages //以下是没有安装过的软件包
vim-X11.x86_64 2:8.2.2637-20.el9 AppStream
vim-common.x86_64 2:8.2.2637-20.el9 AppStream
vim-enhanced.x86_64 2:8.2.2637-20.el9 AppStream
vim-filesystem.noarch 2:8.2.2637-20.el9 BaseOS
vim-minimal.x86_64 2:8.2.2637-20.el9 BaseOS
@:已经安装过
anaconda:系统安装时安装的
yum remove <package_name>
:卸载指定软件包
[root@nbdlsplyb ~]# yum -y remove wget
//卸载某个软件
[root@nbdlsplyb ~]# wget
-bash: wget:未找到命令
yum info <package_name>
:显示指定软件包的详细信息
[root@nbdlsplyb ~]# yum info net-tools
Last metadata expiration check: 0:07:24 ago on 3202年12月28日 星期三 22时33分44秒.
Installed Packages
Name : net-tools
Version : 2.10
Release : 1.oe2203
Architecture : x86_64
Size : 881 k
Source : net-tools-2.10-1.oe2203.src.rpm
Repository : @System
From repo : anaconda
Summary : Important Programs for Networking
URL : https://sourceforge.net/projects/net-tools/
License : GPLv2+
Description : This package contains programs for network administration and maintenance.
: Most of the utilities formerly contained in this package (netstat, arp,
: ifconfig, rarp, route) are obsoleted by the tools from iproute2 package
: (ip, ss) and have been moved to net-tools-deprecated.
[root@nbdlsplyb ~]# yum provides ifconfig
Last metadata expiration check: 0:08:49 ago on 3202年12月28日 星期三 22时33分44秒.
net-tools-2.0-0.62.20160912git.el9.x86_64 : Basic networking tools
Repo : BaseOS
Matched from:
Filename : /usr/sbin/ifconfig
net-tools-2.10-1.oe2203.x86_64 : Important Programs for Networking
Repo : @System
Matched from:
Filename : /usr/sbin/ifconfig
[root@nbdlsplyb ~]# yum provides route
Last metadata expiration check: 0:09:12 ago on 3202年12月28日 星期三 22时33分44秒.
net-tools-2.0-0.62.20160912git.el9.x86_64 : Basic networking tools
Repo : BaseOS
Matched from:
Filename : /usr/sbin/route
net-tools-2.10-1.oe2203.x86_64 : Important Programs for Networking
Repo : @System
Matched from:
Filename : /usr/sbin/route
删除,或者将原有的软件源配置文件修改名称(非.repo)
[root@nbdlsplyb ~]# yum repolist -v
//查看软件源的信息
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
YUM version: 4.10.0
cachedir: /var/cache/dnf
......此处已省略
Total packages: 20,111 // 官方源提供的软件包数量
[root@nbdlsplyb ~]# mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak
// 将原有的软件源配置文件改名(禁用官方源)
[root@nbdlsplyb ~]# ls /etc/yum.repos.d/
cs9.repo openEuler.repo.bak
yum-config-manager --add
命令用于向 YUM 配置中添加新的软件源。
要使用 yum-config-manager --add
命令,按照以下步骤操作:
yum-config-manager --add <repository_url>
<repository_url>
是要添加的软件源的 URL 或 ID。(如file://、http://)
以下是一些常用的国内 YUM 软件源供参考:
[root@nbdlsplyb ~]# yum-config-manager --add https://developer.aliyun.com/mirror/
添加仓库自:https://mirrors.aliyun.com/
[root@nbdlsplyb ~]# yum-config-manager --add https://mirrors.tuna.tsinghua.edu.cn/
添加仓库自:https://mirrors.tuna.tsinghua.edu.cn/
[root@nbdlsplyb ~]# yum-config-manager --add https://mirrors.163.com/
添加仓库自:https://mirrors.163.com/
[root@nbdlsplyb ~]# yum-config-manager --add https://mirrors.huaweicloud.com/
添加仓库自:https://mirrors.huaweicloud.com/
请注意,添加新的软件源可能需要网络连接,并且软件源的有效性和可用性取决于提供商。在添加软件源之前,请确保你信任该提供商,并验证软件源的正确性和安全性。
[root@nbdlsplyb ~]# vim /etc/yum.conf
// 编辑yum的配置文件
gpgcheck=0
// 将1改成0,关闭来源检查
SELinux有三种主要的工作模式:Enforcing(强制模式)、Permissive(宽容模式)和Disabled(禁用模式)。
Enforcing(强制模式):在Enforcing模式下,SELinux严格执行定义的安全策略,并拒绝任何违反策略的操作。如果一个进程或文件尝试执行不被允许的操作,SELinux会拦截并阻止该操作。当违反策略的操作发生时,SELinux会生成日志并记录事件,提供给管理员进行审计和调查。Enforcing模式是提供最高级别安全保护的模式。
Permissive(宽容模式):在Permissive模式下,SELinux同样执行定义的安全策略,但不会拒绝任何操作。相反,它会允许所有操作,并生成日志记录,但不会阻止违反策略的操作。Permissive模式的主要作用是帮助管理员识别和调试潜在的安全问题,因为所有违规操作都会被记录下来。
Disabled(禁用模式):在Disabled模式下,SELinux完全禁用,不执行任何安全策略。所有操作将按照传统的Linux权限模型进行控制。这是默认的SELinux模式,也是一些特殊情况下的选择,例如需要与旧系统或应用程序兼容性时。
要更改SELinux的工作模式,可以使用以下命令:
setenforce 1
setenforce 0
getenforce
需要注意的是,更改SELinux模式可能需要root权限,并且对于Enforcing模式的使用,还需要确保系统上已经定义了适当的安全策略。在配置SELinux时,请谨慎考虑并测试变更的影响。
[root@nbdlsplyb ~]# getenforce // 获取当前SELinux状态
Permissive
[root@nbdlsplyb ~]# setenforce 1 // 修改为Enforcing 强制
[root@nbdlsplyb ~]# getenforce
Enforcing
[root@nbdlsplyb ~]# setenforce 0 // 修改为Permissive 宽松
[root@nbdlsplyb ~]# getenforce
Permissive
[root@nbdlsplyb ~]# vim /etc/selinux/config
7 SELINUX=permissive // 修改为宽松模式(利用快捷键Ctrl+p)
systemctl是一个系统管理工具,用于管理和控制Linux系统上的系统服务(system services)。它是Systemd初始化系统的一部分,用于启动、停止、重启、重新加载和查询系统服务的状态。systemctl提供了更强大、更灵活的服务管理功能,取代了之前的init.d和service命令。
通过systemctl,您可以方便地管理和控制系统服务,确保系统正常运行,并根据需要调整和配置服务的行为。请注意,使用systemctl可能需要管理员权限(使用sudo或root用户执行命令)。
以下是一些常用的systemctl命令:
systemctl start <service_name>
[root@nbdlsplyb ~]# systemctl start httpd
systemctl stop <service_name>
[root@nbdlsplyb ~]# systemctl stop httpd
systemctl restart <service_name>
[root@nbdlsplyb ~]# systemctl restart httpd
systemctl reload <service_name>
[root@nbdlsplyb ~]# systemctl reload httpd
systemctl status <service_name>
[root@nbdlsplyb ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disa>
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
Active: active (running) since Thu 2023-12-28 23:57:11 CST; 2min 34s ago
Docs: man:httpd.service(8)
Process: 45621 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=>
Main PID: 44591 (httpd)
Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/s>
Tasks: 213 (limit: 8946)
Memory: 15.1M
CGroup: /system.slice/httpd.service
├─44591 /usr/sbin/httpd -DFOREGROUND
├─45704 /usr/sbin/httpd -DFOREGROUND
├─45705 /usr/sbin/httpd -DFOREGROUND
├─45706 /usr/sbin/httpd -DFOREGROUND
└─45707 /usr/sbin/httpd -DFOREGROUND
......此处已省略
lines 1-26/26 (END)
[root@nbdlsplyb ~]# systemctl is-active httpd
// 查看状态(简洁)
inactive //为非激活状态
active //为激活状态
systemctl enable <service_name>
[root@nbdlsplyb ~]# systemctl enable httpd
//设置开机自启
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@nbdlsplyb ~]# systemctl enable httpd --now
// 设置开机自启,并开启服务
systemctl disable <service_name>
[root@nbdlsplyb ~]# systemctl disable httpd
// 设置开机不自启
Removed /etc/systemd/system/multi-user.target.wants/httpd.service.
[root@nbdlsplyb ~]# systemctl disable httpd --now
// 设置开机不自启,并关闭服务
systemctl list-unit-files --type=service --state=enabled
[root@nbdlsplyb ~]# systemctl list-unit-files --type=service --state=enabled
UNIT FILE STATE VENDOR PRESET
atd.service enabled enabled
auditd.service enabled enabled
chronyd.service enabled enabled
crond.service enabled enabled
dkms.service enabled disabled
getty@.service enabled enabled
irqbalance.service enabled enabled
iscsi.service enabled disabled
kdump.service enabled enabled
libstoragemgmt.service enabled enabled
libvirtd.service enabled enabled
lvm2-monitor.service enabled enabled
mariadb.service enabled disabled
mdmonitor.service enabled enabled
netcf-transaction.service enabled disabled
NetworkManager-dispatcher.service enabled enabled
NetworkManager-wait-online.service enabled disabled
NetworkManager.service enabled enabled
php-fpm.service enabled disabled
restorecond.service enabled enabled
rngd.service enabled enabled
rpcbind.service enabled enabled
rsyslog.service enabled enabled
smartd.service enabled enabled
sshd.service enabled enabled
systemtap.service enabled disabled
tuned.service enabled enabled
udisks2.service enabled enabled
vdo.service enabled enabled
zabbix-agent.service enabled disabled
zabbix-server.service enabled disabled
31 unit files listed.
systemctl list-units --type=service --state=running
[root@nbdlsplyb ~]# systemctl list-units --type=service --state=running
UNIT LOAD ACTIVE SUB DESCRIPTION >
atd.service loaded active running Deferred execution scheduler
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
getty@tty1.service loaded active running Getty on tty1
gssproxy.service loaded active running GSSAPI Proxy Daemon
libstoragemgmt.service loaded active running libstoragemgmt plug-in server daemon
mariadb.service loaded active running MariaDB 10.5 database server
mdmonitor.service loaded active running MD array monitor
NetworkManager.service loaded active running Network Manager
php-fpm.service loaded active running The PHP FastCGI Process Manager
polkit.service loaded active running Authorization Manager
restorecond.service loaded active running Restorecon maintaining path file context
rngd.service loaded active running Hardware RNG Entropy Gatherer Daemon
rpcbind.service loaded active running RPC Bind
rsyslog.service loaded active running System Logging Service
sshd.service loaded active running OpenSSH server daemon
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running User Login Management
systemd-machined.service loaded active running Virtual Machine and Container Registrat>
systemd-udevd.service loaded active running Rule-based Manager for Device Events an>
tuned.service loaded active running Dynamic System Tuning Daemon
zabbix-agent.service loaded active running Zabbix Agent
zabbix-server.service loaded active running Zabbix Server
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
25 loaded units listed.
lines 1-31/31 (END)