yum 仓库实现 - 2| 学习笔记

简介: 快速学习 yum 仓库实现 - 2。

开发者学堂课程【Linux 软件包安装和 yumyum 仓库实现 - 2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/590/detail/8338


yum 仓库实现 - 2

 

内容简介:

1.利用 yum 仓库安装需要的包

2.yum 仓库中的其他配置

3.yum 仓库客户端配置文件

4.实验:基于 HTTP 协议的网络 yum 仓库

 

1.利用 yum 仓库安装需要的包

在 Centos 上利用相同的方法搭好一个 Yum 仓库,用 repolist 可以看到仓库的信息, centos 是仓库的名称,base 是它的对应的 ID。 

仓库有了之后可以利用仓库做很多事,除了装软件,还可以去做查询等等。

比方说,可以用 info 去安装 System config- Kick Start,也能看到这个包的信息:

[root@centos7 ~]#yum info system-config-kickstart

Loaded plugins : fastestmirror, , langpacks_

Loading mirror speeds from cached hostfile

AvaiTable Packages

Name: system-config-kickstart

Arch : noarch

version: 2.9.7

Release: 1.el7

size: 348 k

Repo: base

summary: A graphical interface for making kickstart files

URL: http: //fedoraproject.org/wiki/systemconfig/Tools

License:GPLv2+

Description : Kickstart configurator is a graphical tool for creating kickstart files.

这个信息和 rpm 命令有一个选项很像叫 qi,不过这里显示的是仓库里的包的版本信息描述。

此外,也可以去列出所有仓库里的包, List 列出所有仓库里的包,Installed 表示已经装好的包。

其中,最左边一列是包名,中间一列是版本号。at 开头表示已经装好的包。

当然 at 后面跟着,实际上就是表示你是通过哪种方法安装好的包,anaconda 是安装操作系统的安装向导,base 说的是什么呢?

base 说的是利用 yum base 源安装的,不是安装操系统安装的,是后来装好系统以后,利用 Yum,通过 base 仓库安装。 

可以去 System-config-kick 看到的如果是 at 开头的就表示安装上了,如果没有at开头就表示没有安装,available Package 是现在还没有安装的可用的包,如果通过 yum 查看已知包是否已经装好,可以使用命令 rpm -q、echo $? 查询。

通过一个脚本实现初始化的功能,实现仓库的配置,创建一个 bak 文件,将系统下的目录移动到 bak 下,

装上 httpd 包

cat > letc/ yum.repos.d/ base.repo

[base]

name=cdrom repo

baseurl=file:/l lmisc/cd/

gpgkey=file: /llmisc/ cd/RPM-GPG-KEY-Centos-7

EOF

rpm -q httpd &>/dev/null ll yum install httpd

2.yum 仓库中的其他配置

仓库的主配置文件:vim/etc/yum.conf,在这个文件中它定义了很多和仓库相关的内容。

cachedir=/var/cache/yum/ $basearch/ $releasever

keepcache=0

debugleve1=2

logfi1e=/var / log/yum. Log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

installon1y_limit=5

bugtracker_url=http: / /bugs.centos.org/set_project_id=19&ref=http:rg/ bug_report_page.php?category=yum

distroverpkg=centos-release

#This is the default,if you make this bigger yum won't see if the metadata

# is newer on the remote and so you'11 "gain" the bandwidth of not having to

# download the new metadata and "pay" for it by yum not having correct

#information.

#It is esp. important,to have correct metadata,for distributions like

# Fedora which don't keep old packages around. If you don't 1ike this checking# interupting your command line usage,it's much better to have something

# manually check the metadata once an hour (yum-updatesd will do this).#metadata expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo#in /etc/yum.repos.d

~

"/etc/vum.conf" 25L. 969℃1.1A17 

Cachedir 是缓存 yum 中的源数据,keepcache=0 表示这个包安装完成后会被删除,debugleve1=2 调试,logfi1e=/var / log/yum.  

Log 日志中记录了利用 yum 安装了哪些包,exactarch=1 为是否匹配架构,obsoletes=1 是过期的包的管理,plugins=1 是否支持插件,installon1y_limit=5是否支持五个并发的进程组织安装。

处理 yum 故障的两种方式:

第一确认文件格式是否正确、缓存路径是否存在,第二是否是缓存出现问题,清除缓存。

 

3.yum 客户端配置文件

/etc/yum.conf : 为所有仓库提供公共配置

/etc/yum.repos.d/*.repo: 为仓库的指向提供配置

仓库指向的定义∶

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}

gpgcheck={1/0}

gpgkey=URL

enablegroups={1/0}

failovermethod={roundrobin|priority}

cost=默认为1000

enabled={1|0}是在特殊的场景下临时的禁用或启用某些仓库,failovermethod={roundrobin|priority}是实现多个仓库冗余,为了容错创建多个仓库路径,

其中 roundrobin :

意为随机挑选,默认值,priority: 按顺序访问。 

光盘源:

[base]

name=Centos

baseur1=file:/ l/misc/ cd

https://mirrors.aliyun.com/centos/7/os/x86_64/gpgcheck=0

epel 源:

[epel]

name=EPEL

baseurl=http://mirrors.aliyun.com/epe1/$releasever/$basea

https://mirrors.tuna.tsinghua.edu.cn/epe1/$releasgpg

check=0

enabled=0

想把安装依赖性的包卸载干净,可以利用命令 yum history 查看以前的安装信息,再使用 yum history undo 撤销操作,如果错删也可以使用 yum history redo 后悔操作。

yum的repo配置文件中可用的变量有如下︰

①$releasever:当前OS的发行版的主版本号

②$arch:平台,i386,i486,i586,x86_64 等

③$basearch :基础平台;i386,x86_64

④$YUMO-$YUM9:自定义变量 

实例:

http://server/centos/$releasever/$basearch/http://server/centos/7/x86_64

http://server/centos/6/i384

①yum 源

阿里云 repo 文件http://mirrors.aliyun.com/repo/

②CentOS 系统的yum源

阿里云:

https://mirrors.aliyun.com/centos/$releasever/os/x86_64/ 

清华大学:

https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/x86_64/

③EPEL 的 yum 源

阿里云: https://mirrors.aliyun.com/epel/$releasever/x86_64

④阿里巴巴开源软件

https://opsx.alibaba.com/

 

4.实验:基于 HTTP 协议的网络 yum 仓库

CentOS: yum, dnf

YUM: Yellowdog Update Modifier , rpm 的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date 的替代工具.

yum repository: yum repo,存储了众多 rpm 包,以及包的相关的元数据文件(放置于特定目录 repodata 下 )

生产中搭建一个局域网内部的服务器,文件服务器基于以下几种格式:

http://

https://

ftp://

file://

(1)建立 yum 服务器

①配置仓库

mkdir /mnt/ cdrom 临时创建一个文件夹

mount /dev/ sro /mnt/ cdrom  挂上安装光盘

vim /etc/ yum.repos.d/base.repo 临时配置一个yum源

[root@centos7 ~]#cat /etc/yum.repos.d/base.repo

[base]

name=Centos

baseur7-fi1e:/ l/misc/cd

gpgcheck=0

[epel]

name=EPEL

baseurl=http: //mirrors.aliyun . com/epe1/$releaseverch

gpgcheck=0

enabled=o

②安装 httpd 包

命令 Yum install httpd,先用本地光盘的路径,给自己来提供服务,安装 httpd 包

③查看 httpd 包中含有的文件

命令rpm -ql httpd可以查看包里面所有包括的文件列表,其中比较关注的是/var/www/htm,这是一个文件夹,用来存放我们基于HTTP协议共享目录的所在地。

事实上,当我们去访问某个网站的时候,看到的这些内容,实际上就来自于我们说的这个工作默认。

如果你要是用 Apache 就是 APP 这个网站提供了外部服务,那你看到的这些页面的内容就是来自于这个文件。

接下来,作为一个 Http 它是一个稍微有点规模的一应用,那么对于这种一般有规模的应用,往往是有以服务的方式运行的,它都是希望长期运行的。要长期运行,它就意味着开着不停,假设有一个程序长期开着不停,是没法执行其他的文件的。

所以那些服务希望长期运行的,它往往是在后面执行称为后台执行,所谓后台执行就是他执行的时候,它是不占用你的终端资源的。

④启用服务

有一个文件可以用来实现服务的后台执行,这个文件叫 service,这个 service 文件在 USRCT 目录下。

这种服务它都是后台执行的,所以我们需要启用它,可以直接执行命令 systemctl Start HTTP service。 

它是后台执行的,它可以接着工作,后面悄悄为我们提供专业的称呼叫后台服务。

⑤创建目录结构

参考安装源 CentOS,它支持各种版本,对于 centos 的7,它的 CPU 只有一个。

这个路径稍后建立的时候要参考它的路径来建立自己的参考路径。

具体创建如下:

[root@centos7 html]#mkdir -pv centos/{6,7}/os/x86_64/

kdir: created directory ' centos’

mkdir: created directory ' centos/6’

mkdir:created directory ' centos/6/os'

mkdir:created directory ' centos/6/os/x86_64/'

mkdir: created directory ' centos/7'

mkdir:created directory ' centos/7/os’

mkdir: created directory ' centos/7'/os/x86_64/’ 

⑥挂入安装光盘

[root@centos7htm1]#mount/dev/srO /var/www/htm1/centos/6/ 7/

[root@centos7htm1]#mount/dev/sr0 /var/www/htm1/centos/7/os/x86_64/mount:/dev/sr0 is write-protected,mounting read-only

(2)配置 yum 客户端

把自己的仓库配置文件给它

name=Centos

#baseurl=file:/ l/misc/cd

baseur1=http://192.168.34.7/centos/$releasever/os/$basearch

gpgcheck=0

[epe1]name=EPEL

baseur1=http: //mirrors.aliyun . com/epe1 / $basearch

gpgcheck=0

enabled=0

相关文章
|
6月前
|
缓存
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
366 0
|
Linux 应用服务中间件 nginx
CentOS7搭建yum源仓库(阿里源)
CentOS7搭建yum源仓库(阿里源)
1967 0
|
3月前
|
缓存 Linux 网络安全
解决 CentOS 7 官方 yum 仓库无法使用的最佳实践
【8月更文挑战第18天】若 CentOS 7 的官方 YUM 仓库无法使用,可按以下步骤解决: 1. **检查网络连接**: - 确认服务器能正常上网,可通过访问外部网站或网络诊断测试。 - 检查防火墙设置,避免其阻挡 YUM 的网络访问。 2. **检查 YUM 配置**: - 核实 `/etc/yum.repos.d/` 下的 `CentOS-Base.repo` 文件中仓库地址正确无误。 - 确认配置文件内的 `enabled` 选项设为 `1` 以启用仓库。
1664 0
|
5月前
|
Ubuntu Python
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
739 1
|
6月前
|
存储 缓存 Unix
|
6月前
|
缓存 Linux 测试技术
搭建本地YUM仓库
在Redhat 9系统中,通过挂载系统安装盘到/mnt,然后创建本地YUM仓库以实现软件包管理。首先查看磁盘挂载情况,将ISO镜像挂载到/mnt。接着,备份`/etc/yum.repos.d/`目录内容,删除原有仓库,创建`loaclhost.repo`文件并配置指向/mnt中的Package目录。运行`yum clean all`清除缓存,`yum makecache`建立元数据。最后,成功通过新配置的本地仓库安装了bind软件及其依赖。
247 3
|
6月前
|
Linux
Linux 学习笔记七:YUM安装软件
Linux 学习笔记七:YUM安装软件
109 0
|
6月前
|
SQL 消息中间件 分布式计算
Hadoop学习笔记(HDP)-Part.05 Yum源配置
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
152 0
|
6月前
|
缓存
简易yum仓库搭建
简易yum仓库搭建,实验准备,获取yum仓库、安装httpd,客户机配置yum源,测试、验证
135 0
|
缓存 安全 网络协议
部署YUM仓库及NFS共享服务
部署YUM仓库及NFS共享服务
228 0