CentOS7中yum命令详解,本地源,在线源,混合源
目录
Linux系统中常用的软件包管理工具
-
apt-get:Debian和Ubuntu系统中常用的软件包管理工具,通过命令行进行软件包的安装、更新和卸载。
-
yum:适用于Red Hat、CentOS等RPM包管理系统的软件包管理工具,也是通过命令行进行软件包的安装、更新和卸载。
-
dnf:Fedora系统中的软件包管理工具,是yum的后续版本,提供更快的包管理速度和更好的依赖关系解决方案。
-
zypper:适用于openSUSE和SUSE Linux Enterprise系统的软件包管理工具,通过命令行进行软件包的安装、更新和卸载。
-
pacman:适用于Arch Linux系统的软件包管理工具,也是通过命令行进行软件包的安装、更新和卸载。
-
snap:一种跨发行版的软件打包和分发系统,它可以在不同的Linux发行版上安装相同的软件包,通过命令行进行软件包的安装、更新和卸载。
-
tar:是一种Linux系统中的归档工具,用于将多个文件或目录打包成一个单独的文件(通常是.tar文件)。tar可以压缩和解压缩文件,也可以在打包时指定压缩方法(例如gzip、bzip2等)。tar的命令格式为:tar [options] [file(s)]。
tar常用参数说明
-c:创建打包文件
-v:显示指令执行过程
-f:指定文件
-r:向已经存在的打包文件中添加文件
-x:还原文件
-t:列出备份文件的内容
tar常用用法
打包命令:tar -cvf [打包文件名] [待打包文件或目录]
解包命令:tar -xvf [打包文件名]
压缩命令:tar -czvf [压缩文件名] [待压缩文件或目录]
解压缩命令:tar -xzvf [压缩文件名]
添加文件命令:tar -rvf [打包文件名] [待添加文件或目录]
查看打包文件内容命令:tar -tvf [打包文件名]
8. rpm:一种Linux系统中的软件包管理工具,用于安装、升级和删除.rpm格式的软件包。
用rpm时需要先对rpm包所需的依赖包yum下载,需要手动下载 RPM 文件并提供给 RPM 工具进行操作。
错误示例
[root@master Packages]# rpm -ivh tomcat-lib-7.0.76-7.el7_5.noarch.rpm
error: Failed dependencies:
apache-commons-collections is needed by tomcat-lib-0:7.0.76-7.el7_5.noarch
apache-commons-dbcp is needed by tomcat-lib-0:7.0.76-7.el7_5.noarch
apache-commons-pool is needed by tomcat-lib-0:7.0.76-7.el7_5.noarch
ecj >= 1:4.2.1 is needed by tomcat-lib-0:7.0.76-7.el7_5.noarch
tomcat-el-2.2-api = 0:7.0.76-7.el7_5 is needed by tomcat-lib-0:7.0.76-7.el7_5.noarch
tomcat-jsp-2.2-api = 0:7.0.76-7.el7_5 is needed by tomcat-lib-0:7.0.76-7.el7_5.noarch
tomcat-servlet-3.0-api = 0:7.0.76-7.el7_5 is needed by tomcat-lib-0:7.0.76-7.el7_5.noarch
rpm可以查询软件包的信息、检查软件包的完整性和签名。
rpm的命令格式为:rpm [options] [command] [package]
rpm常见的参数说明
-i:安装软件包
-U:升级系统中已安装的软件包
-e:卸载/删除软件包
-q:查询软件包的信息
-qa:列出系统中所有已安装的软件包
-qf:通过指定文件路径查询与之关联的软件包
-qi:显示软件包的详细信息
-ql:列出软件包安装的文件列表
-qR:显示软件包的依赖关系
-v:验证软件包
-vf:验证指定文件是否属于某个软件包
-va:验证系统中所有已安装的软件包
--relocate:重新安装软件包到不同的目录
--nodeps:在安装或卸载软件包时忽略依赖关系检查
--force:强制执行操作,即使可能会导致问题
--test:模拟操作,而不实际执行
--help:获取更多详细的帮助信息
简单来说yum用于从软件仓库中下载和安装软件包,tar用于打包和压缩文件,rpm用于管理.rpm格式的软件包。
yum详解
yum是一种Linux系统中的软件包管理工具,用于从指定的软件仓库中下载、安装、升级和删除软件包。
yum可以自动处理软件包间的依赖关系,并在安装或升级软件包时自动下载并安装所需的依赖项。
相当于rpm方式的升级。
yum支持配置多个不同的软件仓库,并可以通过配置插件来扩展其功能。库的形式:本地仓库(光盘镜像)、在线仓库(第三方提供)
元数据:所有的安装包的位置以及安装之间的依赖关系,都保存在元数据当中。
yum常见的目录
yum主配置文件:/etc/yum.conf
yum日志文件:/var/log/yum.log
yum仓库配置文件目录:/etc/yum.repos.d/
yum缓存目录:/var/cache/yum/
yum的本地源和在线源
yum安装必须要有库,库里面的包都是rpm格式的包。配置文件在 /etc/yum.repos.d/ 目录下,每个rpeo配置文件代表一个yum软件源。本地源与在线源都在这里配置
[root@xxtg ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
查看系统中可用的 yum 软件源:yum repollist
yum repolist 会遍历 /etc/yum.repos.d/ 目录下的所有 .repo 文件,显示启用(enable)的软件源。
[root@xxtg ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: ftp.sjtu.edu.cn
* updates: mirrors.aliyun.com
repo id repo name status
!base/7/x86_64 CentOS-7 - Base 10,072
!extras/7/x86_64 CentOS-7 - Extras 518
!updates/7/x86_64 CentOS-7 - Updates 5,527
repolist: 16,117
其中,Base 软件源提供了 CentOS 7 的基本软件包,而 Extras 软件源和 Updates 软件源分别提供了额外的软件包和安全更新。
在上面的显示中,Base 软件源中有 10072 个软件包可用,而 Updates 软件源中则有 5527 个软件包可用,可用的软件包总数为 16117。
本地源特点
本地源是指将软件包存储在本地服务器或计算机上,供系统使用。这些软件包可以是操作系统的安装介质、更新补丁或其他软件包。
特点:本地源不需要互联网连接;安装软件包速度快;本地源可以通过验证和审查软件包的完整性和来源,提供更高的安全性保障;本地源需要手动更新软件包,可能相对更新延迟;需要足够的存储空间来存储软件包。
安装本地源步骤
1、准备一个包含 CentOS 安装光盘或 ISO 镜像的目录
2、创建一个新的 Yum 仓库配置文件。在终端中使用文本编辑器(如 vi 或 nano)打开一个新文件,命名为 "文件名.repo"
3、在该repo文件中添加以下内容:
[local]
name=Local Yum Repository
baseurl=file:///path/to/your/directory
enabled=1
gpgcheck=0
这个 /path/to/your/directory 为包含 CentOS 安装光盘或 ISO 镜像的目录的实际路径。
这个配置文件指定了一个本地仓库,它使用 file:/// 协议指向本地目录,并且禁用了 GPG 校验(此处为演示目的,实际按情况考虑是否启用 GPG 校验来确保软件包的完整性)。
4、运行以下命令以清除 Yum 缓存并重建仓库缓存:
sudo yum clean all && yum makecache
安装本地源具体演示
#将光盘驱动器的设备文件挂载到目录 /mnt 上,使得光盘中的内容在文件系统中可访问
[root@xxtg ~]# mount /dev/cdrom /mnt/
#为方便演示,将/etc/yum.repos.d/目录下的文件删除
[root@xxtg ~]# cd /etc/yum.repos.d
[root@xxtg yum.repos.d]# rm -rf *
#编写本地源
[root@xxtg yum.repos.d]# vim local.repo
[local]
#标签,必须和文件名一一对应
name=123
#描述文件信息,可以随便填
baseurl=file:///mnt
#指定镜像的目录,挂载光盘镜像的挂载点
gpgcheck=0
#不检查软件的序列号,加快寻找依赖关系和安装速度
enable=1
#开启此yum源,默认就是开启,可以不加
#清除 Yum 缓存并重建仓库缓存
[root@xxtg yum.repos.d]# yum clean all && yum makecache
#测试一下,下载安装 tree
[root@xxtg yum.repos.d]# yum -y install tree
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
tree x86_64 1.6.0-10.el7 local 46 k
Transaction Summary
========================================================================================
#可以看到用的是本地源
http方式安装本地源实验
虚拟机1:172.16.80.12
虚拟机2:172.16.80. 13
虚拟机1(172.16.80.12):
[root@xxtg ~]# systemctl stop firewalld
[root@xxtg ~]# setenforce 0
#安装http,编写本地yum源
[root@xxtg ~]# yum -y install httpd
[root@xxtg ~]# systemctl start httpd.service
[root@xxtg ~]# cd /etc/yum.repos.d/
[root@xxtg yum.repos.d]# rm -rf * #实验需要,删除其他repo
[root@xxtg yum.repos.d]# vim http.repo
[http]
name=321
baseurl=http://172.16.80.12/centos7
gpgcheck=0
#设置镜像
[root@xxtg yum.repos.d]# cd /var/www/html/
[root@xxtg html]# mkdir centos7
#如果/dev/cdrom和/mnt挂载了,解挂载:umount /dev/cdrom /mnt/
[root@xxtg html]# mount /dev/cdrom /var/www/html/centos7/
#在浏览器中访问172.16.80.12/centos7
#清除 Yum 缓存并重建仓库缓存
[root@xxtg html]# yum clean all && yum makecache
虚拟机2(172.16.80.13):
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# vim local.repo
[local]
name=111
baseurl=http://172.16.80.12/centos7
gpgcheck=0
[root@localhost yum.repos.d]# yum clean all && yum makecache
[root@localhost yum.repos.d]# yum -y install httpd #测试
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
httpd x86_64 2.4.6-88.el7.centos local 2.7 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7_4.1 local 103 k
apr-util x86_64 1.5.2-6.el7 local 92 k
httpd-tools x86_64 2.4.6-88.el7.centos local 90 k
mailcap noarch 2.1.41-2.el7 local 31 k
Transaction Summary
========================================================================================
在浏览器中访问172.16.80.12/centos7
ftp方式安装本地源实验
虚拟机1:172.16.80.12
虚拟机2:172.16.80. 13
虚拟机1:
[root@xxtg ~]# systemctl stop firewalld
[root@xxtg ~]# setenforce 0
[root@xxtg ~]# yum -y install vsftpd
[root@xxtg ~]# cd /var/ftp/
[root@xxtg ftp]# mkdir vsftpd
[root@xxtg yum.repos.d]# mount /dev/cdrom /var/ftp/vsftpd/
[root@xxtg ftp]# cd /etc/yum.repos.d/
[root@xxtg yum.repos.d]# rm -rf *
[root@xxtg yum.repos.d]# vim vsftpd.repo
[vsftpd]
name=123
baseurl=ftp://172.16.80.12/vsftpd
gpgcheck=0
[root@xxtg yum.repos.d]# systemctl restart vsftpd
虚拟机2:
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# vim local.repo
[local]
name=111
baseurl=ftp://172.16.80.12/vsftpd
gpgcheck=0
[root@localhost yum.repos.d]# yum clean all && yum makecache
#测试
[root@localhost yum.repos.d]# yum -y install tree
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
tree x86_64 1.6.0-10.el7 local 46 k
Transaction Summary
========================================================================================
在线源特点
在线源是指通过互联网从远程服务器获取软件包。常见的例子包括官方软件库和第三方软件库。
特点:更新及时;使用方便;提供的软件包多样;依赖于互联网连接;需要注意源的可靠性和软件包的完整性,以避免下载到恶意软件或受损的软件。
安装在线源
[root@xxtg ~]# cd /etc/yum.repos.d/
[root@xxtg yum.repos.d]# ls
local.repo
#第一步骤:在 /etc/yum.repos.d/ 目录下载 aliyun yum源repo文件
[root@xxtg yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@xxtg yum.repos.d]# ls
Centos-7.repo local.repo
#第二步骤:
[root@xxtg yum.repos.d]# yum clean all && yum makecache
混合源:本地源和在线源混合在一起,在一个配置文件
[root@xxtg ~]# systemctl stop firewalld
[root@xxtg ~]# setenforce 0
[root@xxtg ~]# mount /dev/cdrom /mnt/
[root@xxtg ~]# cd /etc/yum.repos.d/
[root@xxtg yum.repos.d]# rm -rf *
[root@xxtg yum.repos.d]# vim fixed
[fixed]
#这个是本地的
name=123
baseurl=file:///mnt
gpgcheck=0
enabled=1
priority=1
[test]
#在线的
name=321
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enable=1
priority=2
#priority代表的是优先级。数字越小优先级越高
[root@xxtg yum.repos.d]# yum clean all && yum makecache
yum命令语法和常用用法
yum的命令格式为:yum [options] [command] [package]
常用选项
-y:在执行操作时自动回答 "yes",不需要用户确认。
-q:静默模式,只显示关键信息,不输出冗长的详细日志。
-v:显示详细的操作日志。
-h:显示帮助信息。
常用命令
#常用命令
yum install <package_name>:安装指定的软件包。
yum update <package_name>:更新指定的软件包。
yum remove <package_name>:卸载指定的软件包。
yum info <package_name>:获取指定软件包的详细信息。
yum list <package_name>:列出所有或指定软件包的信息。
yum search <keyword>:搜索软件包名称、简介或描述中包含指定关键词的软件包。
yum groupinstall <group_name>:安装指定的软件组。
yum groupupdate <group_name>:更新指定的软件组。
yum grouplist:列出所有可用的软件组。
yum check-update:检查所有已安装软件包是否有可用更新。
yum clean all:清除yum缓存,以释放磁盘空间。
yum makecache:建立新的yum源的缓存,创建yum源的元数据。
yum history:查看yum命令执行历史记录。
yum provides <filename>:查找提供指定文件名的软件包。
yum repolist:列出yum源的列表。
yum-config-manager:配置yum源。