若想搞懂整个配置过程和原理,就按照章节(1 / 2)一步一步地来。

若想直接一步到位,不想花过多时间,尽快配好,就直接看附件章节。

什么是yum源?

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora、RedHat/RHEL、SUSE以及CentOS等Linux发行版的/repo/【Shell】前端【软件包管理器】。

yum源 := yum仓库 := yum管理下的软件源/软件仓库

怎么生动地理解这一点呢?

yum 类同于 CENTOS操作系统的 软件管理器;Web前端开发的 npm 包(依赖)管理软件;Java后端开发的 maven 包(依赖)管理软件。

值得注意的是,CENTOS 8新增了 DNF 包管理器,以取代之前OS版本的 YUM。

1 本地YUM源

1.1 [YUM仓库/服务端] 获取:软件包资源

Eg: 操作系统的镜像iso文件



1.2 [YUM仓库/服务端] 挂载/搭建:yum仓库(资源)

即 搭建yum仓库

将操作系统镜像(CentOS-....-.iso)挂载在本地目录中;

此次【挂载】目录为/var/www/html/repo/(此目录本身不存在,需要创建);

为什么是/var/www/html目录?

因为以便以后发布http(d)服务,http(d)服务中配置文件/etc/httpd/conf/httpd.conf的默认发布Web资源目录正是"DocumentRoot "/var/www/html"

可参见此博文: CentOS7搭建httpd服务 - CSDN

mkdir /var/www/
mkdir /var/www/html
mkdir /var/www/html/repo mkdir /iso
(上传iso镜像到目录/iso/下)
mount /iso/CentOS7-1804.iso /var/www/html/repo/

  • 特别说明

    • 1.vmware下的centos虚拟机一般重启后,此mount命令就失效了,重启后需要重新执行mount命令进行挂载
    • 2.基于1,若不想每次重启后都重新挂载,可配置开机自启shell,具体操作如下:
sudo chmod +x /etc/rc.d/rc.local
sudo echo "mount /iso/CentOS7-1804.iso /var/www/html/repo/" >> /etc/rc.d/rc.local
source /etc/profile
  • 【查看/核验】
df -h /iso/CentOS7-1804.iso # 查看指定文件(or目录)所属的磁盘/文件系统及其挂载路径
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 15T 38G 15T 1% / df –h # 查看已挂载设备的信息
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 15T 14G 15T 1% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9.4M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda2 1016M 131M 886M 13% /boot
/dev/sda1 200M 9.5M 191M 5% /boot/efi
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/loop0 4.1G 4.1G 0 100% /var/www/html/repo ll /var/www/html/repo # 查看挂载的目录中是否有内容
total 654
-rw-r--r--. 1 root root 14 Dec 5 2016 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 Dec 5 2016 EFI
-rw-r--r--. 1 root root 215 Dec 10 2015 EULA
-rw-r--r--. 1 root root 18009 Dec 10 2015 GPL
drwxr-xr-x. 3 root root 2048 Dec 5 2016 images
drwxr-xr-x. 2 root root 2048 Dec 5 2016 isolinux
drwxr-xr-x. 2 root root 2048 Dec 5 2016 LiveOS
drwxrwxr-x. 2 root root 630784 Dec 5 2016 Packages
drwxrwxr-x. 2 root root 4096 Dec 5 2016 repodata
-rw-r--r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 Dec 5 2016 TRANS.TBL

1.3 [客户端/本地] 配置:yumRepoName.repo文件

即 配置yum源

在默认配置文件目录中添加编辑配置文件;此次添加的配置文件为repo_local.repo

【本地主机 配置 本地的YUM源仓库】
cd /etc/yum.repos.d/
touch repo_local.repo # 后缀必须为repo
vi repo_local.repo
[repo_local] # yum仓库名,必须与文件名【repo_local.repo】的前半部分一致
name=repo for local # yum仓库的描述信息
baseurl=file:///var/www/html/repo/ # yum源的访问地址(目录内,一般含: /Packages、/repodata等子目录)。file://+本地yum源目录是本地yum源访问地址的固定格式
enabled=1 # 启用仓库
gpgcheck=0 # 不进行红帽标签检查 【本地主机 屏蔽 其他YUM仓库(repo)】
ll /etc/yum.repos.d/
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-CR.repo CentOS-CR.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak
mv CentOS-Media.repo CentOS-Media.repo.bak
mv CentOS-Sources.repo CentOS-Sources.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak

1.4 检验:搭建yum成功与否

yum repolist       # 查看yum源中是否有软件包/软件包个数

repo_local仓库中存在9911个软件包 即 本地yum仓库源搭建成功

2 网络YUM源

即 通过发布http服务来搭建、共享yum仓库

安装httpd软件,启动httpd服务,并设置httpd为开机启动,以http链接地址来访问yum源/仓库

2.1 [服务端] 搭建: 本地YUM仓库

详见本博文:

  • 1.1 [YUM仓库/服务端] 获取:软件包资源
  • 1.2 [YUM仓库/服务端] 挂载/搭建:yum仓库(资源)
  • 1.3 [客户端/本地] 配置:yumRepoName.repo文件<repo_local.repo>

2.2 [服务端] 安装/重启/设置开机启动:httpd软件 --> 发布HTTP服务

httpd服务的默认Web资源目录 即 /var/www/html/

可参见此博文:

yum -y install httpd
systemctl restart httpd
systemctl enable httpd # 开机启动 [防火墙:开启HTTPD服务的80端口]
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=80/tcp # 防火墙开启80端口 补充: [可选项]
firewall-cmd --list-all # 查看防火墙信息
firewall-cmd --query-port=80/tcp # 查看防火墙的指定端口是否开启HTTPD服务的80端口
systemctl restart firewalld

【查看/核验】查看httpd是否安装成功,httpd服务是否启动

ps -ef | grep httpd

ss -lntp | grep httpd


http://serverIP:9999/dirName

2.3 [客户端] 配置:yumRepoName.repo文件

在默认配置文件目录中添加编辑配置文件。此次添加的配置文件为repo_http.repo.

【本机 配置 指定远程主机的YUM源仓库】
cd /etc/yum.repos.d/
touch repo_http.repo # 后缀必须为repo
vi repo_http.repo
[repo_http] # yum仓库名,必须与文件名【repo_local.repo】的前半部分一致
name=repo for http # yum仓库的描述信息
baseurl=http://176.130.2.72/repo/ # yum源的网络访问地址(目录内,一般含: /Packages、/repodata等子目录)。
enabled=1 # 启用仓库
# 通过 yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 选项,或者通过 PackageKit 的"添加/删除软件"工具,也能够方便地启用和禁用指定的软件仓库 # Eg: yum --enablerepo=epel -y install xrdp
gpgcheck=0 # 不进行红帽标签检查 【本机 屏蔽 其他YUM仓库(repo)】
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-CR.repo CentOS-CR.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak
mv CentOS-Media.repo CentOS-Media.repo.bak
mv CentOS-Sources.repo CentOS-Sources.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak

2.4 [客户端/服务端] 检验:搭建yum成功与否

详见本文: 1.4 检验:搭建yum成功与否

yum repolist

3 自建yum源仓库

即 使用自行下载的rpm制作yum仓库,以httpd或Nginx发布Web共享yum源服务

3.1 创建统一归档/存放RPM包的目录

mkdir -p /app/yum/centos7/x86_64/

3.2 下载所需的RPM软件包,并放在同一个目录中

查找、下载RPM等软件包的推荐网站

里面有2个下载好的软件包

3.3 createrepo : 创建可用的yum源文件

createrepo命令:用于创建yum源(软件仓库),即为存放于本地的rpm包目录建立索引,描述各包所需依赖的信息,生成元数据信息。可生成yum软件包清单文件。

yum -y install createrepo
createrepo --version
createrepo -pdo /app/yum/centos7/x86_64/ /app/yum/centos7/x86_64/
createrepo --update -v /app/yum/centos7/x86_64/ # 若归档目录添加或删除了rpm包,可update更新索引,不必重新生成,节省时间
[补充: 备注/可选项]
[root@CENTOS7-20200707 ~]# createrepo -v /app/yum/centos7/x86_64
Spawning worker 0 with 1 pkgs
Worker 0: reading nano-2.3.1-10.el7.x86_64.rpm
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: Mon Jul 27 16:58:18 2020
Ending other db creation: Mon Jul 27 16:58:18 2020
Starting filelists db creation: Mon Jul 27 16:58:18 2020
Ending filelists db creation: Mon Jul 27 16:58:18 2020
Starting primary db creation: Mon Jul 27 16:58:18 2020
Ending primary db creation: Mon Jul 27 16:58:18 2020
Sqlite DBs complete [root@CENTOS7-20200707 ~]# ls /app/yum/centos7/x86_64/repodata
095096a77a0e87e74a7f0643be9dac988673d6b6d7663955620ff337cd6ab56d-filelists.xml.gz
0bd7f5f95ba7827f903a03bc8dfaf69ac6e286f30872af854de450746392fbe7-primary.xml.gz
8219a3fe4e77eab1c0dde4cbbd0a3893dae31fbe5b19aaf084deb36e7dc3016d-filelists.sqlite.bz2
9505d2b881f676b5c7ea72b1ac40e66ec48e3b79cf1dae55eff6e47155626e3b-other.sqlite.bz2
a2de74407d710f8f310a54d4ae166de3423c58f02f0827d63b8177e4b48afe00-other.xml.gz
b80638e29d421f080b67b51db0a9a65490bb2473ba95dba946c3cbb06a8e2552-primary.sqlite.bz2
repomd.xml

3.4 配置:Web共享服务(httpd)

【2 配置/发布 Apache HTTP(D)服务】
mkdir -p /var/www/html vi /etc/selinux/config
SELINUX=disabled (避免出现权限不足,访问不了WEB资源的情况) yum -y install httpd
systemctl restart httpd
systemctl enable httpd # 设置开机启动
firewall-cmd --permanent --zone=public --add-port=80/tcp
ss -lntp
"httpd"
关闭端口 firewall-cmd --permanent --zone=public --remove-port=80/tcp
ps -ef | grep httpd
systemctl restart firewalld

3.5 将该目录复制到/var/www/html/中

cp -a /app/yum/centos7/x86_64/     /var/www/html/

ln -s /app/yum/centos7/x86_64/ /var/www/html/x86_64
删除软链接: rm /var/www/html/x86_64

访问: http://ip/x86_64

3.6 [客户端] 配置:yumRepoName.repo文件

在默认配置文件目录中添加编辑配置文件。此次添加的配置文件为repo_self.repo.

cd /etc/yum.repos.d/
touch repo_self.repo # 后缀必须为repo
vi repo_self.repo
[repo_self] # yum仓库名,必须与文件名【repo_local.repo】的前半部分一致
name=repo for self
baseurl=http://176.130.2.72/x86_64/ # yum源的访问地址
enabled=1 # 启用仓库
gpgcheck=0 # 不进行红帽标签检查

3.7 检验:搭建yum成功与否

详见本文: 1.4 检验:搭建yum成功与否

yum repolist

4 附件/福利: 搭建基于HTTP服务发布的YUM源仓库

源自一实际项目的实操全过程

4.1 [服务端] 制作本地YUM源仓库

【1 制作本地YUM】

mkdir -p /var/www/html/repo
mkdir /iso (FTP上传镜像到/iso/CentOS-7-x86_64-DVD-1611.iso ) mount /iso/CentOS-7-x86_64-DVD-1611.iso /var/www/html/repo ll /var/www/html/repo/
若iso镜像挂载到文件系统目标目录下成功,则:改文件系统目录下会出现iso镜像内的各类文件资源

若 mount 时出现: mount: /iso/CentOS-7-x86_64-DVD-1611.iso is not a block device (maybe try -o loop'?)解决方法:mount后加参数-o loop(使用 loop 模式用来将一个文件/档案当成硬盘分割挂上系统;网上有人说,iso文件镜像都是需要添加-o loop`)

mount -o loop /iso/CentOS-7-x86_64-DVD-1611.iso /var/www/html/repo

【2 配置/发布 HTTPD服务】

yum -y install httpd
systemctl restart httpd
systemctl enable httpd
firewall-cmd --permanent --zone=public --add-port=25/tcp
ss -lntp
"master"
关闭端口
firewall-cmd --permanent --zone=public --remove-port=25/tcp
firewall-cmd --permanent --zone=public --add-port=80/tcp
ss -lntp
"httpd"
ps -ef | grep httpd
systemctl restart firewalld

【3 配置制作的本地YUM源仓库】

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-CR.repo CentOS-CR.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak
mv CentOS-Media.repo CentOS-Media.repo.bak
mv CentOS-Sources.repo CentOS-Sources.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
touch repo_local.repo
vi repo_local.repo
[repo_local]
name=repo for local
baseurl=file:///var/www/html/repo/
enabled=1
gpgcheck=0

【4 查看/核验 YUM源】

df -h 【查看ISO镜像挂载情况】
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 15T 14G 15T 1% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9.4M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda2 1016M 131M 886M 13% /boot
/dev/sda1 200M 9.5M 191M 5% /boot/efi
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/loop0 4.1G 4.1G 0 100% /var/www/html/repo
ll /var/www/html/repo 【查看挂载目录文件】
total 654
-rw-r--r--. 1 root root 14 Dec 5 2016 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 Dec 5 2016 EFI
-rw-r--r--. 1 root root 215 Dec 10 2015 EULA
-rw-r--r--. 1 root root 18009 Dec 10 2015 GPL
drwxr-xr-x. 3 root root 2048 Dec 5 2016 images
drwxr-xr-x. 2 root root 2048 Dec 5 2016 isolinux
drwxr-xr-x. 2 root root 2048 Dec 5 2016 LiveOS
drwxrwxr-x. 2 root root 630784 Dec 5 2016 Packages
drwxrwxr-x. 2 root root 4096 Dec 5 2016 repodata
-rw-r--r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 Dec 5 2016 TRANS.TBL
yum repolist 【检验yum源】
...
repo_local repo for local
...

4.2 [客户端] 其他主机 配置 远程/网络yum源

cd /etc/yum.repos.d/
touch repo_http.repo
vi repo_http.repo
[repo_http]
name=repo for http
baseurl=http://xx.xx.xx.xx/repo/
enabled=1
gpgcheck=0 mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-CR.repo CentOS-CR.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak
mv CentOS-Media.repo CentOS-Media.repo.bak
mv CentOS-Sources.repo CentOS-Sources.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak systemctl start firewalld
systemctl status firewalld
firewall-cmd --permanent --zone=public --add-port=80/tcp
systemctl restart firewalld
iptables -L -n | grep 已添加的端口
firewall-cmd --state
firewall-cmd --list-all [验证是否yum生效]
yum repolist

Y yum 仓库管理

Y.1 yum-config-manager

yum-config-manageryum 仓库管理命令

yum-config-manager 命令的本质是对 /etc/yum.repos.d/(库数据的储存位置)文件夹下文件的增删查改,推荐使用 yum-config-manager 命令进行改动。

yum-config-manager 命令对资源库进行管理。

  • 查询仓库内容
# yum repolist all # 显示所有资源库
# yum repolist enabled # 显示所有已启动的资源库
# yum repolist disabled # 显示所有被禁用的资源库

搭配grep使用,例如:

# yum repolist all | grep php

  • 添加 repository
$ yum-config-manager --add-repo repository_url
  • 切换库中资源 : 禁用 + 启用
# yum-config-manager --disable itemName
# yum-config-manager --enable itemName

或者直接编辑 /etc/yum.repos.d/ 下的对应资源库文件

enabled=0 # 禁用
enabled=1 # 启用

如果同时启用了多个版本,安装时会自动选择新版本

  • 删除仓库

/etc/yum.repos.d/ 下手动删除对应 .repo 文件即可。但要注意,这会使得该库中所有信息被删除。

X 参考文献

[Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库]的更多相关文章

  1. centos7如何配置yum仓库

    centos7如何配置yum仓库 一.总结 一句话总结: 备份原仓库配置原件,接来下按需求 百度 是指定本地光盘作为yum仓库,还是使用网络源作为yum仓库 二.centos7如何配置yum仓库 1. ...

  2. Linux(CentOS7)下配置多个tomcat

    记录 Linux(CentOS7) 下配置多个 tomcat 的操作过程. 一.下载tomcat 前提:安装配置好jdk环境,未配置可参考Linux(CentOS7)下安装jdk1.8. 从 tomc ...

  3. Centos7搭建在线yum源

    1: 首先关闭防护墙或者设置规则通过且关闭selinux Systemctl diablefirewalld  永久关闭防火墙 vim/etc/sysconfig/selinux 并修改SELINUX ...

  4. CentOS7.1 JDK安装 和 CentOS7.1配置yum源

    1.卸载自带OPENJDK #查看自身jdk java -verson #查看自身安装的java  rpm -qa | grep java #显示如下 python-javapackages-3.4. ...

  5. linux下如何配置yum源

    first:挂载本地镜像文件(挂载:意为将某个文件放置在系统的一个目录下) mkdir     /media/cdrom  #新建镜像文件挂载目录 cd         /usr/local/src  ...

  6. Linux 6.2配置yum本地

    yum 1.挂在iso文件 [root@localhostmedia]# mount /dev/cdrom /media 2.安装createrepo createrepo是配置YUM源的配置工具,检 ...

  7. Linux(CentOS7)修改默认yum源为国内的阿里云、网易yum源

    修改方式: echo 备份当前的yum源 mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex echo 新建空的yum源设置目录 mkdir /etc/ ...

  8. Linux(Centos7)搭建LAMP(Apache+PHP+Mysql环境)

    目录 Linux搭建LAMP(Apache+PHP+Mysql环境)Centos7 一. 检查系统环境 1.确认centos版本 2.检查是否安装过apache 3.检查是否安装过Mysql 4.清理 ...

  9. Linux CentOS7 安装配置 IPtables

    2021-08-11 1. 前言 防火墙其实就是实现 Linux 下访问控制功能的,分为硬件和软件的防火墙两种类型.无论在何网络中,防火墙工作的地方一定是网络的边缘.防火墙的策略.规则就是去定义防火墙 ...

  10. [Linux]CentOS7搭建Nginx + MySQL + PHP

    ------------------------------------------------------------------------------------- Nginx安装参考地址:ht ...

随机推荐

  1. Git简介及使用

    1.Git简介 GIT= 版本控制 + 备份服务器 我们称用来存放上传档案的地方就做Repository.用中文来说,有点像是档案仓库的意思. 不过,通常我们还是使用Repository这个名词.当有 ...

  2. 使用python的turtle库画一个冰墩墩

    目录 先看效果图 设置一个画布 画左手和手内 画轮廓和其他部分 画细节(眼睛.鼻子.嘴巴等) 画头部彩虹 画五环标志 最后(别忘记还有一个结束) 先看效果图 设置一个画布 点击查看代码 import ...

  3. Jmeter----Badboy录制

    Badboy Badboy安装后出现错误,需要设置 Preferences-->General-->Enable Recording on Startup?的√去掉,play-->S ...

  4. 导出数据库表以及备注为excel

    import com.alibaba.excel.annotation.ExcelProperty; import lombok.AllArgsConstructor; import lombok.D ...

  5. FCC 中级算法题 Arguments Optional

    Arguments Optional 创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 例如,add ...

  6. JavaScript基础学习之二

    目录 JavaScript HTML DOM事件 事件触发1 事件触发2 addEventListener() 事件冒泡或事件捕获? 事件委托 removeEventListener() 方法 事件对 ...

  7. Python Boolean类型 判断

    and 判断非Boolean类型数据会自动转换类型 "A" and "B" → "B" 因为表达式 A 和 B都为True所以返回 &quo ...

  8. CentOS7 安裝DHCP服務並啟用DHCP failover

    1. 安裝dhcp服務 yum install -y dhcp 2. host1 vi /etc/dhcp/dhcpd.failover failover peer "dhcpfailove ...

  9. OSS 解锁

    一.解开LSKEYF00的编辑锁定  进入SE30,点击Tips & Tricks按钮,输入以下代码     UPDATE PROGDIR SET EDTX = ''       WHERE ...

  10. 【转载】PostgreSQL逻辑订阅logical

    原文地址:https://blog.csdn.net/gguxxing008/article/details/106356086 逻辑订阅是PostgreSQL10.0开始支持的新功能,Postgre ...