yum 仓库

发布时间:2024年01月16日

一,yum仓库

(一)yum简介

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间

(二)yum 实现过程

要有安装包
安装包来源:
1.光驱里自带挂载提供软件包
2.网络下载到本地
3.直接通过网络

Packages文件夹? ? ? ?repodata文件夹(元数据? ? 软件的依赖关系,软件的位置 ? )

(三),yum?配置文件

1,主配置文件

位置:/etc/yum.conf

基本不需要动 默认就好

[root@localhost]# /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //是否保存缓存 ?0代表不保存,1代表保存
debuglevel=2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//调试级别了解即可
logfile=/var/log/yum.log?? ??? ??? ??? ??? ? // 日志文件位置
exactarch=1?? ??? ??? ??? ??? ??? ??? ??? ? ? ? //是否允许不同版本的rpm安装
obsoletes=1?? ??? ??? ??? ??? ??? ??? ??? ??? ?//update 的一个参数是否可以允许旧版本的运行?? ?
gpgcheck=1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//验证秘钥
plugins=1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //是否允许插件1代表可以
installonly_limit=5 ? ? ? ? ? ? ? ? ? ? ? ? //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量

?2,仓库配置文件

位置:/etc/yum.repos.d/*.repo

一定是 .repo 结尾

3,日志文件

位置:/var/log/yum.log

(四)yum?命令详细解释

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum provides\精确查找
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo显示所有的包组具体信息显示具体的包组的具体信息
yum install\安装具体软件包
yum groupinstall\安装具体软件包组
yum update所有软件升级具体软件升级
命令不加关键字加入关键词、软件包、软件包组
yum group update所有包组升级具体包组升级
yum remove\卸载具体软件
yum groupremove\卸载具体包组软件
yum history查看当前yum操作历史\
yum history undo加入序号卸载序号里安装的软件\
yum history redo加入序号重新执行序号里的操作\

1,yum?查询相关命令

1.1?yum list [软件名]

显示可用的安装包,如不加软件名是显示所有的可用包

[root@localhost ~]# yum list httpd

[root@localhost ~]# yum list *httpd*
#包含httpd 的软件包

1.2?yum info [软件名]

可以理解为rpm -qi(已安装)

显示安装包详细信息,详情如下

[root@localhost ~]# yum info httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安装的软件包
名称 ? ?:httpd
架构 ? ?:x86_64
版本 ? ?:2.4.6
发布 ? ?:67.el7.centos
大小 ? ?:2.7 M
源 ? ?:abc
简介 ? ?: Apache HTTP Server
网址 ? ?:http://httpd.apache.org/
协议 ? ?: ASL 2.0
描述 ? ?: The Apache HTTP Server is a powerful, efficient, and
? ? ? ? ? ? : extensible web server.

(如不加软件名是显示所有包的详细信息 ?)

1.3?yum search <关键词>

根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来

?[root@localhost ~]# yum search ftp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
========================= N/S matched: ftp =========================
ftp.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
tftp.x86_64 : The client for the Trivial File Transfer Protocol
? ? ? ? ? ? : (TFTP)
tftp-server.x86_64 : The server for the Trivial File Transfer
? ? ? ? ? ? ? ? ? ?: Protocol (TFTP)
vsftpd.x86_64 : Very Secure Ftp Daemon
curl.x86_64 : A utility for getting files from remote servers (FTP,
? ? ? ? ? ? : HTTP, and others)
lftp.x86_64 : A sophisticated file transfer program

?1.4?yum provides <关键词>

你知道某个命令却不知道具体的包可以用此命令查找

写绝对路径

?当不知道绝对路径 前面写*

1.5?yum grouplist [包组名]

安装包组的查询 不加包组名 就是显示所有

1.6?yum groupinfo <包组名>

不加包组名显示全部

2, yum?安装升级相关命令

2,1?yum install [软件名]

安装软件包,如例子yum install安装http服务? ? 加? -y

2.2?yum groupinstall <包组名>

包组安装同yum install

?yum group install gnome desktop -y

2.3? yum update

更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新。

2.4?yum groupupdate

组包更新和单个安装包更新差不多

3,yum软件卸载

3.1yum remove <软件名>

卸载已安装的软件必须加软件名

3.2yum groupremove <包组名>

同软件包卸载不做赘述

3.3?yum history

查看历史的使用记录

具体使用环境:

①?直接卸载,只能卸载主包,载不了依赖关系

②??找到 history

yum history info 7

? ?再undo

可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除

yum history redo 4 (再来一次)

yum history undo 6 (取消操作)

(五)搭建仓库的方式

1,搭建阿里云仓库 (http方式外网环境)

1.1?目的:国外云仓库比较慢,可以使用阿里云仓库代替

1.2切换到 yum.repo.d 目录 将自带的仓库移走

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# ls
bak

1.3? ?手搓阿里云仓库

[ali]
name=aliyun
#baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/? ? ? ? ? ? ? ? ??
gpgcheck=0

1.4?手搓额外元仓库


[epel] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0

1.5?手搓更新包仓库

[update] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0

注意:1,baseurl=后面可接多条地址

? ? ? ? ? ?2,这个地址一定要到? ?能看到元数据和安装包的页面

2,ftp方式搭建云仓库

2.1? 实验目的:

生产环境中,让一台机器(服务机)单独作为软件安装存储机器,其他机器可省下更多的空间

服务机:

2.2?服务机下载?vsftpd

2.3?服务机? 启动vsftpd?程序

2.4? 在? /var/ftp/? ?新建一个ccc文件夹? ? 并将光盘挂载到这个文件里

这样我们使用ccc? 这个文件夹等于使用? 光盘了(光盘里有packages? 和元数据)

2.5? ?去到客户机

把有干扰的网络元全部移走

2.6? 手搓一个? 本地元

3,http 方式搭建云仓库

3.1? 实验目的:

生产环境中,让一台机器(服务机)单独作为软件安装存储机器,其他机器可省下更多的空间

步骤与ftp方式搭建云仓库?基本一致


2通过httpd 协议搭建内网yum仓库服务器
服务端:
systemctl ? stop ?firewalld
seteforce ? 0
yum ?install ?httpd
systemctl ?stop ?nginx

systemctl ?start ? httpd

cd ?/var/www/html
mkdir ? centos7
mount /dev/sr0 ? ? ?/var/www/html/centos7

客户端
systemctl ? stop ?firewalld
seteforce ? 0
cd ?/etc/yum.repos.d
mkdir ?bak
mv *.repo ? bak
vim? http.repo
[http]
name=http
baseurl=http://192.168.91.100/centos7 ??
gpgcheck=0

5,把?epl源下载到本地? ? 使用

5.1?实验目的:防止以后没网,也要下载网络元的软件,服务机先把网络仓库下到本地,

5.2? 此项实验和? ? 实验6相似

5.3? ?先下载额外元

[root@localhost ~]#yum install epel-release
#安装epel源 ? ?生成epel仓库文件

5,4? ?同步epl?元? ?到指定文件夹

[root@localhost ~]# reposync -r epel -p /root/
#下载同步epel源 ?根据epel仓库文件去找目录

?5.5? ?此时我们现在只有安装包(packages)? ? ? ? ? ? ? ? ? ?所以我们需要安装? ? ?建立元数据的命令

[root@localhost ~]# yum -y install createrepo
#安装建立元数据命令

?5.6? 建立元数据? ?这样? ?/root/?有安装包也有元数据了

[root@localhost ~]# createrepo -v /root/epel
#建立元数据 ? ?软件目录 ?依赖关系 ?

6,自行打包后建立元数据yum仓库

6.1?实验目的:自研公司小软件 想要用yum安装

原理,要到该软件所有的安装包和依赖关系,手搓一个本地元? ? 本地安装

6.2? 假如tree? 是我们自研的小软件,想要用yum安装

6.3? 将安装包? 挪到我们新建的 /data/test/packages/? ??

?6.4? createrepo? ? -v? ?/data/test/

在/data/test/? ?生成元信息

6.5? ?我们看到??/data/test/? ? ? ? 有我们安装软件不可缺少的两项? ?安装包和元数据了

6.6? 避免干扰,将网络元移走,手搓一个本地元

?

6.7? 清除缓存,重新下载元数据

6.8?安装成功

7,离线安装软件

7.1实验目的:客户机没有任何网 ,服务机只下载不安装,再把安装包一个一个拷给客户机

7.2??--downloadonly #只下载不安装

? ? ? ??--downloaddir=绝对目录路径 ?#下载到某一目录 ?

7.3? ls? /opt? ? ?然后再导给客户机就好

?

?

二,误删rpm?命令补救方法

1,rpm -e rpm?

直接删除? ?是删除不掉的

2,rpm -e rpm --nodeps?

需要强制删除? ? ? ? (--nodeps?#忽略依赖关系)

3,关机重启? ?321? 进入急救模式

4,?把rpm 从光驱 装进根

三,?将文件制作成镜像(光盘)

mkisofs -r -o ?/root/xxx.iso ?/data/centos7/epel?
制作成镜像

四,升级内核

分为编译安装内核? ? ? ?和yum安装内核

此次展示yum安装内核

1,?安装? ?yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

2,?会新增一个元

?3,改?元配置文件

?

4,?找到? 内核5,?看本机目前的内核

?6,找到? lt?版本的主包

7,?升级内核

8,升级内核后,并不会覆盖原来的内核? ?开机界面可选

文章来源:https://blog.csdn.net/wyq2070857323/article/details/135623201
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。