替代pod update速度慢的lg_pod_plugin安装使用详解

目录
  • 1. 安装方式
  • 2. 如何使用lg_pod_plugin
  • 3. 工作原理

1. 安装方式

推荐使用bundle 安装lg_pod_plugin , 免去手动安装 gem install lg_pod_plugin , 方便后续升级lg_pod_plugin版本, 适合团队开发, 总不能让所有人在自己电脑上都安装一次 lg_pod_plugin吧.

  • 创建 Gemfile 文件
bundle init #初始化一个bundle 环境, 类似于pod init
  • 编写Gemfile 文件, 类似于 Podfile
# 建议使用ruby-china镜像去安装 所有依赖组件
source 'https://gems.ruby-china.com/' # 跟podfile写法是一样的
gem 'git', '~> 1.12.0' #指定 git 版本
gem 'sqlite3', '~> 1.4.4' # 指定 sqlite3版本
gem 'cocoapods', '~> 1.11.3' #指定 cocoapods版本
gem 'lg_pod_plugin', '~> 1.0.0' #指定 lg_pod_plugin版本
  • 安装项目所需要的依赖组件
   bundle install / bundle update #类似于pod install pod update

2. 如何使用lg_pod_plugin

  • 导入 lg_pod_plugin
    require 'lg_pod_plugin' #ruby通过require 关键字导入一个框架
  • 实例化 LgPodPlugin::Install对象, 需要在 target 下初始化
target 'HelloMBox' do
  #通过LgPodPlugin.install(target) 方式初始化 Install对象, 然后在block 内编写 组件安装描述信息
  LgPodPlugin.install(self) do
  end
end
  • 编写组件安装描述信息

不会处理 git && tag, git && commit, 交给Cocoapods去下载, 因为通过tag , commit获取的缓存是稳定的. 还有pod 'YYModel', '1.0.0' 这种Release pod 也不会进行处理, 只对 git && branch有效.

target 'HelloMBox' do
  #通过LgPodPlugin.install(target) 方式初始化 Install对象, 然后在block 内编写 组件安装描述信息
  LgPodPlugin.install(self) do
    #这个方法块里所有 pod 被 lg_pod_plugin 所管理, 并在本机 ~/Caches/LgPodPlugin目录下缓存下载仓库文件
    pod 'AFNetworking', :git => "https://gitee.com/fmdb_beantech/AFNetworking.git", :branch => "master"
  end
# 不被 lg_pod_plugin 管理的pod 组件
pod 'GRDB.swift', :git => 'https://gitee.com/fmdb_beantech/GRDB.swift.git', :branch => 'master'
end

建议所有使用 git, branch组合的pod, 放到 LgPodPlugin.install(self) do 代码块里, 这样就可以对git仓库进行浅层克隆. 方法块外边的pod 组件不受 lg_pod_plugin 控制.

笔者做了一个实验, 当使用lg_pod_plugin 安装所有pod组件用时 07:30秒, 不使用时用时 29:50 秒. 其中多个pod组件出现 git clone卡主半天不动情况

3. 工作原理

这是一个拿空间换时间的解决方案, 在~/Cache/LgPodPlugin目录下边 clone 代码仓库, 并将代码 Copy 到 ~/Caches/Cocoapods 目录下边, 交给cocoapods去安装.

这样cocoapods命中缓存后, 就不会去git download pod xxx, 解决了下载git仓库速度慢的问题. 第二次查找缓存时 先通过 git ls-remote 查看 --refs 有无变化, 如果没有变化, 就使用Cocoapods Pod缓存, 如果有最新的commit信息, 先通过git pull 更新缓存组件仓库内容, 再将 pod需要的文件和资源拷贝到 ~/Library/Caches/Cocoapods 目录下, 交给cocoapods安装. 同一个pod组件最多支持缓存两个版本, 比如 'feature/xxxx01', 'feature/xxxx02', 当有第三个feautre/xxxx03时会淘汰一个不经常使用的pod 缓存, 避免了本机下载太多git仓库.

gem仓库: rubygems.org/gems/lg_pod…

gitee仓库: gitee.com/fmdb_beante…

以上就是替代pod update速度慢的lg_pod_plugin安装使用方式详解的详细内容,更多关于lg_pod_plugin安装使用的资料请关注我们其它相关文章!

时间: 2022-09-13

pod调度将 Pod 指派给节点

目录 一.系统环境 二.前言 三.pod的调度 3.1 pod的调度概述 3.2 pod自动调度 3.2.1 创建3个主机端口为80的pod 3.3 使用nodeName 字段指定pod运行在哪个节点 3.4 使用节点标签nodeSelector指定pod运行在哪个节点 3.4.1 查看标签 3.4.2 创建标签 3.4.3 通过标签控制pod在哪个节点运行 3.5 使用亲和性与反亲和性调度pod 3.5.1 使用硬策略requiredDuringSchedulingIgnoredDuringE

详解kubelet 创建pod流程代码图解及日志说明

目录 正文 kubernetes调度pod简介 kubelet 创建pod代码及图解说明 kubelet 简介 kubelet创建及启动pod流程 kubelet 创建pod代码调用图解 kubelet 创建pod详细说明 kubelet 调用cri说明 kubelet创建pod整体架构图 kubelet创建pod日志说明 正文 本文将从如下方面介绍kubelet创建pod的过程 kubernetes调度pod简介 kubelet 创建pod代码图解说明 (本文重点) kubelet 调用cri

cordon节点drain驱逐节点delete节点详解

目录 一.系统环境 二.前言 三.cordon节点 3.1 cordon节点概览 3.2 cordon节点 3.3 uncordon节点 四.drain节点 4.1 drain节点概览 4.2 drain 节点 4.3 uncordon节点 五.delete 节点 5.1 delete节点概览 5.2 delete节点 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Do

k8s 中的 service 如何找到绑定的 Pod 及实现 Pod 负载均衡的方法

目录 k8s 中的 service 如何找到绑定的 Pod 以及如何实现 Pod 负载均衡 前言 endpoint kube-proxy userspace 模式 iptables ipvs kernelspace 服务发现 环境变量 DNS 总结 参考 k8s 中的 service 如何找到绑定的 Pod 以及如何实现 Pod 负载均衡 前言 Service 资源主要用于为 Pod 对象提供一个固定.统一的访问接口及负载均衡的能力. service 是一组具有相同 label pod 集合的抽

静态pod 创建使用示例详解

目录 一.系统环境 二.前言 三.静态pod 3.1 何为静态pod 3.2 创建静态pod 3.2.1 使用--pod-manifest-path指定静态pod目录 3.2.2 静态pod默认目录/etc/kubernetes/manifests 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 v1.21.9 x86_64

pod污点taint 与容忍度tolerations详解

目录 一.系统环境 二.前言 三.污点taint 3.1 污点taint概览 3.2 给节点添加污点taint 四.容忍度tolerations 4.1 容忍度tolerations概览 4.2 设置容忍度tolerations 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 v1.21.9 x86_64 Kubernete

Swoole4.4协程抢占式调度器详解

前言 Swoole内核团队开设的专栏,会逐渐投入精力写文章介绍Swoole的开发历程,实现原理,应用实践等,大家可以更好的交流,共同学习,建设PHP生态. 协程调度 去年Swoole推出了4.0版本后,完整的支持PHP协程,我们可以基于协程实现CSP编程,身边的开发者惊呼,原来PHP代码还可以这样写.Swoole的协程默认是基于IO调度,程序中有阻塞会自动让出当前协程,协程的各种优势我们不在这里展开讨论.如果是IO密集型的场景,可以表现得很不错.但是对于CPU密集型的场景,会导致一些协程因为得不

IOS给xcode工程关联pod的实例详解

IOS给xcode工程关联pod的实例详解 1. 新建Podfile文件 内容如下: platform :ios,'7.0' target :LJMediaPalyer do pod 'MQTTClient' end 2. cd 到当前工程的目录下 然后在控制台输入pod install命令 如有疑问请留言或者到本站社区交流讨论,本站关于IOS 开发的文章还有很多,还请大家多多搜索查阅,希望通过本文能帮助到大家,谢谢大家对本站的支持!

JAVA实现基于皮尔逊相关系数的相似度详解

最近在看<集体智慧编程>,相比其他机器学习的书籍,这本书有许多案例,更贴近实际,而且也很适合我们这种准备学习machinelearning的小白. 这本书我觉得不足之处在于,里面没有对算法的公式作讲解,而是直接用代码去实现,所以给想具体了解该算法带来了不便,所以想写几篇文章来做具体的说明.以下是第一篇,对皮尔逊相关系数作讲解,并采用了自己比较熟悉的java语言做实现. 皮尔逊数学公式如下,来自维基百科. 其中,E是数学期望,cov表示协方差,\sigma_X和\sigma_Y是标准差. 化简后

云原生技术kubernetes调度单位pod的使用详解

k8s中的最小调度单位---pod 之前的文章中,我们对k8s能够解决的问题做了简单介绍,简单来说,它解决的问题是容器的编排与调度,它的核心价值在于:运行在大规模集群的任务之间,实际上存在着各种各样的关系,这些关系的处理,才是任务编排和系统管理最困难的地方,k8s就是为了这个问题而生的. 这句话比较难理解,我们从已有的知识入手,抽丝剥茧,慢慢理解它.我们已经知道,容器的本质是一个进程,它包含三个部分: 如果说容器是云环境的一个进程,那么你可以将k8s理解成云环境中的一个操作系统. 在一个操作系统

详解kubernetes pod的编排和生命周期

目录 K8S Master基本架构 Pod的编排思想 Pod对象的属性和容器的属性? Pod的生命周期 K8S Master基本架构 K8S的集群运行依赖Master节点和Node节点的通信,为了更好的理解第4部分的Pod生命周期,我们这里先给出K8S Master的简单架构图,后续的文章中,我们会分析Master.Node和Pod之间的关系. Master的架构图: 其中: API Server提供了HTTP Rest接口,它是k8s中的所有资源增删改查的唯一入口,也是集群控制的入口: Sch

nginx&nbsp;pod&nbsp;hook钩子优雅关闭示例详解

目录 一.系统环境 二.前言 三.pod hook(pod钩子) 四.如何优雅的关闭nginx pod 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 v1.21.9 x86_64 Kubernetes集群架构:k8scloude1作为master节点,k8scloude2,k8scloude3作为worker节点 服务器

C++数位DP复杂度统计数字问题示例详解

目录 一.问题描述: 二.问题分析: 1. 抽取题意: 2. 初步思考: 3. 示例分析: 4. 总结规律: 5. 解除约定: 三. 编写代码: 四. 相关例题: Tips:如果你是真的不理解,不要只看,拿出笔来跟着步骤自己分析. 一.问题描述: 一本书的页码从自然数 1 开始顺序编码直到自然数 n .书的页码按照通常的习惯编排, 每个页码不含多余的前导数字 0. 例如, 第 6 页用数字 6 表示而不是 06 或 006等. 数字计数问题要求对给定书的总页码 n,计算书的全部页码分别用到多少次

k8s之ingress-nginx详解和部署方案

目录 1.ingress介绍 2.ingress的工作原理 3.ingress可以解决的问题 1)动态配置服务 2)减少不必要的端口暴露 4.部署ingress(deployment的方式) 1)配置文件准备(粘贴下面网址的yanl文件) 2)配置文件介绍和设置ingress的网络模式 3)修改配置文件 4)拉取镜像(通过查看ingress的yaml文件可以看出)和创建svc文件 5)指定运行节点(需要打标签) 5.部署ingress(DaemonSet的方式) 1)添加hostNetwork

BootStrop前端框架入门教程详解

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. bootstrap 的学习非常简单,并且它所提供的样式又非常精美.只要稍微简单的学习就可以制作出漂亮的页面. bootstrap中文网:http://v3.bootcss.com/ bootstrap提供了三种类型的下载: -----------------------------------------------

详解K-means算法在Python中的实现

K-means算法简介 K-means是机器学习中一个比较常用的算法,属于无监督学习算法,其常被用于数据的聚类,只需为它指定簇的数量即可自动将数据聚合到多类中,相同簇中的数据相似度较高,不同簇中数据相似度较低. K-MEANS算法是输入聚类个数k,以及包含 n个数据对象的数据库,输出满足方差最小标准k个聚类的一种算法.k-means 算法接受输入量 k :然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高:而不同聚类中的对象相似度较小. 核心思想 通过迭代寻找