yum 系列(二) 离线部署

自定义 yum 源 vi /etc/yum.repos.d/nexus.repo

[nexus]
name=nexus repository
baseUrl=http://192.168.139.101:8080/repository/163-yum/$releasever/os/$basearch
enabled=1
gpgcheck=0

一、下载 rpm 依赖包

(1) yum 下载 rpm 包

准备一台 全新的 CentOS7 mini 虚拟机 ,联网下载所有所需的 rpm 包和其依赖,

yum install -y --downloadonly --downloaddir=/home/yum/packages createrepo ansible ruby rubygems
# 也可以指定需要安装的 rpm 包,注意不需要 .rpm 后缀
yum install -y --downloadonly --downloaddir=/home/yum/packages yum-utils-1.1.31-45.el7.noarch

注意:

  1. 安装软件包 xxx 下载到 /xxx 位置,然后记得指定 --downloadonly,只下载,不安装。

  2. 此方法,会将主软件包和基于你现在的操作系统缺少的依赖关系包一并下载!

    基于你现在的操作系统,意味着不同版本的操作系统(桌面版、mini版等)下载的软件依赖包个数会不一样!

    你的操作系统已装的包越多,那么下下来的依赖会越少,所以请选择合适的基操作系统!

下载完成后,我们可以看到 /home/yum/packages 下有多个 rpm 包(主包及其依赖),接下来我们就利用这些 rpm 包搭建一个本地 yum 仓库。

(2) yum 设置自动保存下载的 rpm 包

yum 默认情况下,升级或者安装后,会删除下载的 rpm 包。不过,我们也可以如下设置升级后不删除下载的 rpm 包。

修改 /etc/yum.conf

[main]
cachedir=/home/yum/packages
keepcache=1

将 keepcache=0 修改为 keepcache=1, 安装或者升级后,在目录 /home/yum/packages 下就会有下载的 rpm 包了。

二、搭建本地 yum 仓库

(1) 拷贝 rpm 包

将拷贝下载的 rpm 包到离线目标机器(假设为 /home/yum/packages)

(2) createrepo 安装

# 先删除 deltarpm 包,注意删除 libxml2  后 yum 不可用,提示
# libxml2.so.2: cannot open shared object file: No such file or directory
# rpm -qa | grep libxml2 | xargs rpm -e --nodeps
rpm -qa | grep deltarpm| xargs rpm -e --nodeps rpm -ivh /home/yum/packages/deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh /home/yum/packages/python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh /home/yum/packages/libxml2-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh /home/yum/packages/libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh /home/yum/packages/createrepo-0.9.9-28.el7.noarch.rpm

(3) createrepo 生成 yum 仓库

createrepo /home/yum/packages           # 生成 yum 仓库
createrepo --update /home/yum/packages # 更新 yum 仓库

(4) 添加 yum 配制文件

cat > /etc/yum.repos.d/yum.repo << EOF
[local]
# 名称描述
name=Local Repository
# yum 源目录,源地址,可以用 file://,ftp://,http:// 等
baseurl=file:///home/yum/packages
# 是否启用该 yum 源,0 为禁用
enabled=1
# 检查 GPG-KEY,0 为不检查,1 为检查
gpgcheck=0
EOF

注:cat > yum.repo 有则覆盖,无则生成;cat >> yum.repo 有则追加,无则生成。

(5) 更新 yum 仓库

yum clean all
yum repolist
yum makecache

完整的 shell 脚本:

# 1. 安装  createrepo
cd /home/yum/packages # rpm -qa | grep libxml2 | xargs rpm -e --nodeps
rpm -qa | grep deltarpm | xargs rpm -e --nodeps rpm -ivh /home/yum/packages/deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh /home/yum/packages/python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh /home/yum/packages/libxml2-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh /home/yum/packages/libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh /home/yum/packages/createrepo-0.9.9-28.el7.noarch.rpm # 2. 生成 yum 仓库
createrepo /home/yum/packages # 3. 添加配制文件
cat > /etc/yum.repos.d/yum.repo << EOF
[local]
# 名称描述
name=Local Repository
# yum 源目录,源地址,可以用 file://,ftp://,http:// 等
baseurl=file:///home/yum/packages
# 是否启用该 yum 源,0 为禁用
enabled=1
# 检查 GPG-KEY,0 为不检查,1 为检查
gpgcheck=0
EOF # 4. 更新 yum 源
mkdir -p /home/yum/yum.repos.d
mv /etc/yum.repos.d/Cent* /home/yum/yum.repos.d/ yum clean all
yum repolist
yum makecache

三、yum 默认源(/etc/yum.repos.d/CentOS-Base.repo)

(1) 默认源配置

[root@localhost packages]# cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
# [base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

可以看到 yum 默认有 base、updates、extras 三个源。

(2) yum repolist

可以用 yum repolist 查看,其中 local 是我本地添加的源。

base/7/x86_64                      CentOS-7 - Base                                 9,911
extras/7/x86_64 CentOS-7 - Extras 313
local Local Repository 37
updates/7/x86_64 CentOS-7 - Updates 683

(3) yum list

yum list | grep yum

结果如下:

[root@localhost packages]# yum list  | grep yum
yum.noarch 3.4.3-150.el7.centos @anaconda
yum-metadata-parser.x86_64 1.1.4-10.el7 @anaconda
yum-plugin-fastestmirror.noarch 1.1.31-40.el7 @anaconda
PackageKit-yum.x86_64 1.1.5-2.el7.centos updates
PackageKit-yum-plugin.x86_64 1.1.5-2.el7.centos updates
centos-release-yum4.noarch 1-2.el7.centos extras
kabi-yum-plugins.noarch 1.0-3.el7.centos base
yum.noarch 3.4.3-158.el7.centos base
yum-NetworkManager-dispatcher.noarch 1.1.31-45.el7 base
yum-cron.noarch 3.4.3-158.el7.centos base
yum-langpacks.noarch 0.4.2-7.el7 base
yum-plugin-aliases.noarch 1.1.31-45.el7 base

第一列为 rpm 包名,第二列为 rpm 包版本,第三列为 rpm 包所在的源仓库,其中 @ 表示已安装。


每天用心记录一点点。内容也许不重要,但习惯很重要!

yum 系列(二) 离线部署的更多相关文章

  1. Windows Azure入门教学系列 (二):部署第一个Web Role程序

    本文是Windows Azure入门教学的第二篇文章. 在第一篇教学中,我们已经创建了第一个Web Role程序.在这篇教学中,我们将学习如何把该Web Role程序部署到云端. 注意:您需要购买Wi ...

  2. Kafka系列二之部署与使用

    Kafka部署与使用 写在前面 从上一篇Kafka的架构介绍和安装中,可能,你还一直很蒙,kafka到底该怎么使用呢?接下来,我们就来介绍Kafka的部署与使用.上篇文章中我们说到,Kafka的几个重 ...

  3. C#开发BIMFACE系列48 Nginx部署并加载离线数据包

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列47 IIS部署并加载离线数据包>中详细介绍了IIS部署并访问的完整步 ...

  4. ASP.NET Core部署系列二:发布到CentOS上

    前言: 在上一节中,通过一系列的步骤,已经将项目部署到IIS上,虽然遇到了一些问题,但最终解决并成功运行了.而在这一节中,将尝试通过linux系统的环境下,部署项目,实现Net Core跨平台的亮点. ...

  5. arcgis api for js入门开发系列一arcgis api离线部署

    在我的GIS之家QQ群里,很多都是arcgis api for js开发的新手,他们一般都是GIS专业的学生,或者从计算机专业刚刚转向来的giser,他们难免会遇到各种webgis开发的简单问题,由于 ...

  6. ldap配置系列二:jenkins集成ldap

    ldap配置系列二:jenkins集成ldap jenkins简介 jenkins是一个独立的.开放源码的自动化服务器,它可以用于自动化与构建.测试.交付或部署软件相关的各种任务. jenkins官方 ...

  7. Hadoop生态圈-基于yum源的方式部署Cloudera Manager5.15.1

    Hadoop生态圈-基于yum源的方式部署Cloudera Manager5.15.1 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我之前分享过关于离线方式部署Cloudera ...

  8. 数据仓库006 - MySQL 5.6.x - Linux最佳生产环境离线部署

    一.离线安装包 文件准备 这里以mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz为例,记一次MySQL 5.6.x 的生产环境离线部署过程.使用SecureCRT连接 ...

  9. CDH5.16.1集群企业真正离线部署

    一.准备工作 1.离线部署主要分为三块: MySQL离线部署 CM离线部署 Parcel文件离线源部署 2.规划 节点 MySQL部署组件 Parcel文件离线源 CM服务进程 大数据组件 hadoo ...

随机推荐

  1. 20155315 2016-2017-2 《Java程序设计》第八周学习总结

    教材学习内容总结 第14章 NIO与NIO2 1.认识NIO NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进 ...

  2. springboot项目配置拦截器,进行登陆等拦截

    新建拦截类: public class LoginInterceptor implements HandlerInterceptor{ private static Log logger = LogF ...

  3. MyBatis_Study_003(字段名与属性名称不一致,resultMap)

    源码:https://github.com/carryLess/mbtsstd-003 1.主配置文件 <?xml version="1.0" encoding=" ...

  4. 升级到SQL Server 2012/2014时一些需要考虑的事项

    1. 使用Upgrade Adviser评估升级前需要解决的事情. https://msdn.microsoft.com/zh-cn/library/ms144256(v=sql.110).aspx ...

  5. Kubernetes才是微服务和DevOps的桥梁

    一.从企业上云的三大架构看容器平台的三种视角 一切都从企业上云的三大架构开始. 如图所示,企业上的三大架构为IT架构,应用架构和数据架构,在不同的公司,不同的人,不同的角色,关注的重点不同. 对于大部 ...

  6. git连接报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

    在Linux上已经安装过git(自己搭建)了,本机(windows)想连接过去,通过git bash敲了下clone命令提示没权限: $ git clone git@111.11.111.11:cod ...

  7. ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段(EXP-00056: 遇到 ORACLE 错误 1652 ORA-01652: unable to extend temp segment by 128 in tablespace TEMP)

    数据库报 ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段 两种解决方式: 第一种) sql>select * from v$tempfile; 发现tem ...

  8. linux Xinetd服务简介

    http://www.chuanke.com/course/72351180839190528______.html 1.什么是xinetdextended internet daemonxinetd ...

  9. 黄聪:360浏览器、chrome开发扩展插件教程(3)关于本地存储数据

    转载:http://www.cnblogs.com/walkingp/archive/2011/04/04/2003875.html HTML5中的localStorage localStorage与 ...

  10. 学习笔记之C++入门到精通(名师教学·手把手教会)【职坐标】_腾讯课堂

    C++入门到精通(名师教学·手把手教会)[职坐标]_腾讯课堂 https://ke.qq.com/course/101465#term_id=100105503 https://github.com/ ...