使用rbenv管理ruby版本

rbenv 管理多个版本Ruby 1. 安装Homebrew终端指令    官网:http://brew.sh/index_zh-cn.html /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2.然后安装rbenv  (rbenv就是用来管理多个版本的ruby使 阅读详情

#rbenv

rbenv是一个ruby版本管理工具。

github:https://github.com/sstephenson/rbenv

##安装rbenv

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

cd ~/.rbenv/plugins/ruby-build && sudo ./install.sh

source ~/.bash_profile

##使用

查看可以安装的ruby版本:

rbenv install --list

gem install railties && rbenv rehash

安装新的版本:

rbenv install 1.9.3-p551

查看已安装的版本:

rbenv versions 

查看本目录使用的ruby版本:

rbenv local

设置本地ruby开发环境:

rbenv global version  #设置全局使用的ruby版本

rbenv shell version #设置在当前shell中使用的ruby版本,生成了一个RBENV_VERSION的变量

rbenv local version  #设置在当前目录中的ruby版本,会在当前目录下生成.rbenv-version文件。
223916_bL9y_2663968.jpg
MacOS下用rbenv高效管理多版本Ruby环境完整指南 在编程开发中,环境管理是每个开发者绕不开的基础课题。无论是运行Jekyll博客、搭建Rails应用,还是维护历史项目,Ruby版本的选择与切换都直接影响开发效率。MacOS系统自带的Ruby往往版本陈旧,无法满足现代项目对语法和依赖的要求,而盲目升级又会带来环境混乱、gem冲突等一系列问题。这时,一套清晰的版本管理方案就显得尤为重要。rbenv作为轻量级Ruby版本管理工具,通过修改PATH变量实现多版本共存与快速切换,与Bundler配合能够优雅地隔离项目依赖,避免系统环境被污染。本文从环境准备、工具选型 阅读详情

相关推荐

麒麟KylinV10系统yum源更换全攻略:从官方源到第三方仓库的保姆级教程

本文详细介绍了麒麟KylinV10系统yum源的更换与优化方法,包括官方源配置、第三方仓库集成及RPM包管理技巧。通过实战案例和命令示例,帮助用户快速解决软件依赖问题,提升系统管理效率。特别适合需要在国产操作系统上进行开发的工程师参考。

weixin_30752699的博客 649

使用 rbenv 切换 Ruby 版本

局部切换是针对当前目录的。全局切换会影响系统中所有的终端会话。来管理和切换不同的 Ruby 版本。通过这些步骤,你就可以使用。

jjsnc 2075

主升浪潜伏主图指标公式 提前潜伏,持仓待涨,通达信炒股指标公式

浙江世宝,第一次出现信号2022年6月1日,当日冲高回落,收涨3.48%,随后涨涨突破前高,回踩后出现第二次主升潜伏信号,时间2022年6月13日,当日收涨9.46%,后市连续涨停,走出12连板行情。九安医疗,第一次出现信号,黄色文字,当日2021年11月1日,涨幅0.19%,第二次出现信号一字涨停,没机会买进,第三次是T字,需要手快,后市连续上涨,接近20倍的大牛股。启明信息,突破区间后的回踩转涨位置出现信号,时间2021年11月29日,当日涨幅1.14%,次日爆发,波段涨幅152.65%。

weixin_69760830的博客 1880

Ruby RBENV - 管理您的 Ruby 版本

Ruby RBENV - 管理您的 Ruby 版本 Ruby 是一种流行的动态编程语言,它以其简洁、易于阅读的语法和灵活的功能而受到开发者的喜爱。然而,在不同的项目中,您可能需要使用不同版本的 Ruby 来满足特定的需求。这就是 Ruby RBENV 登场的地方。 什么是 Ruby RBENV? Ruby RBENV 是一个简单的 Ruby 版本管理器,允许您轻松地在多个 Ruby 版本之间切换,...

gitblog_00006的博客 634

超越图灵机——论人工智能实现的可能性(一)

超越图灵机——论人工智能实现的可能性(一)我认为人工智能是可以实现到逻辑思维这一步的,因为逻辑思维可以完全用字符串来表示,图灵机可以把任意单元置成任意值,在这一点上是完备的,这就足以描述逻辑思维了,所以用图灵机完全可以实现到逻辑思维。当然图灵机会受到哥德尔不完备性的制约,但是逻辑系统也会受到同样的制约,所以我认为完全可以用图灵机实现逻辑思维。那么逻辑思维的本质机理与图灵机是什么关系?逻辑思

太极语言 1万+

西门子1200与FANUC机器人Profinet通讯

近期在做发那科FANUC的通讯,会吧CC-LINK、Profibus-DP、Profinet I/O、DeviceNet、EtherNet/IP这些常用通讯做成文档发上来,大家喜欢的话可以关注 注:做对应的通讯,在机器人控制柜都需要安装对应的板卡以及软件功能 PLC项目已经归档,只需要恢复就可以看到。对应Profinet通讯的GSD文件也都在博文最后有连接 机器人柜子:R-30IB Mate 机器人主体:M-10IA 12 一、硬件介绍 机器人Profinet I/O通讯板卡:...

七兔自习室 2万+

安装Ruby

a、下载:http://www.ruby-lang.org/zh_cn/downloads/,这里下载ruby-3.0.2.tar.gz b、上传:将软件包上传至Linux系统/opt目录 c、解压:将软件包解压至当前目录:tar -zxvf /opt/ruby-3.0.2.tar.gz -C/opt d、删除:删除压缩文件:rm /opt/ruby-3.0.2.tar.gz e、执行cd /opt/ruby-3.0.2指令,进入ruby-3.0.2目录; f、编译并安装,如下所示: [roo

gaohuanjie的专栏 1810

RM3100应用笔记驱动程序SPI接口

PNI磁传感器套件RM3100磁传感器套件由2个Sen-XY-f(pn13104)地磁传感器,1个Sen-Z-f(pn13101)地磁传感器和MagI2C(pn13156)控制芯片组成,能够实现三维空间的磁场大小测量。

AIoT技术栈的博客 4923

centos7 使用rbenv安装Ruby和redis-dump

redis 数据迁移工作(使用redis-dump完成)

weixin_44241895的博客 842

从TTL到RS485:一颗CH342芯片搞定三种串口通信的硬件连接实战

本文详细介绍了CH342芯片在TTL、RS232和RS485三种串口通信模式下的硬件连接实战。通过精选的电路设计示例和配置技巧,展示了CH342在工业控制和智能硬件开发中的灵活应用,帮助开发者高效实现多协议通信,显著提升项目开发效率。

weixin_30709061的博客 508

libfranka---joint_impendence_control例程分析

joint_impedance_control.cpp例程分析 部分内容来自链接,我个人以初学者的角度对代码进行了更加细致的解释。 核心部分: // Set and initialize trajectory parameters. const double radius = 0.05; const double vel_max = 0.25; const double acceleration_time = 2.0; const double run_time = 20.0; d

weixin_41567783的博客 1121

rbenv:Ruby 多版本管理利器

在 Ruby 开发的世界中,经常需要面对不同项目使用不同 Ruby 版本的情况。这时,一个高效、灵活且易于使用的 Ruby 版本管理工具就显得尤为重要。 rbenv 正是这样一个工具,它允许开发者在同一台计算机上轻松安装、切换和管理多个 Ruby 版本。本文将详细介绍 rbenv 的安装、基本使用以及一些高级特性,帮助你更好地掌握这个强大的工具。

liam_i的博客 1965

IEC 104电力规约详细解读(一) - 报文结构、报文分类、ASDU

比如,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧,当然也可以不要求(S帧内容示例参考例1)。所以U帧格式的控制欲第一个字节就只有6种情况,分别是0x83(TESTER确认)、0x43(TESTER命令)、0x23(STOPDT确认)、0x13(STOPDT命令)、0x0B(START确认)、0x07(START命令)ASDU(应用服务数据单元),协议原文格式最好去101协议去看看,会比较详细。遥信、遥测、遥控、遥调、总召、对时等都需要使用I格式传送。

张二狗的博客 1万+

终极指南:如何使用 rbenv 轻松管理 Ruby 版本

作为 Ruby 开发者,你是否曾经为不同项目需要不同 Ruby 版本而烦恼?😅 今天我要为你介绍一个强大的工具——**rbenv**,它能让 Ruby 版本管理变得简单又高效!✨ rbenv 是 Unix-like 系统上的 Ruby 版本管理工具,它能帮助你无缝切换同一台机器上的多个 Ruby 版本,确保每个项目始终运行在正确的 Ruby 版本上。无论你是新手还是资深开发者,rbenv 都能

gitblog_00081的博客 1355

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Mac中M系列芯片采用rbenv管理ruby版本

在新设备上(Mac mini m4)上安装Fvm管理ruby,发现有安装FVM会有各种问题,而且都是安装插件本身与设备兼容性问题。它可能会提示你运行一两行命令,将 Homebrew 添加到你的 Shell 环境中。下面是在你的 M4 Mac mini 上安装和管理稳定版 Ruby 的终极分步指南。等系统命令,对 Shell 的侵入性更强,有时可能会导致一些难以预料的环境问题。,而不是依赖 macOS 系统自带的、老旧且不应被用户直接使用的 Ruby。是它的一个插件,专门用来编译和安装不同版本的 Ruby。

chenzimin_blog 1740

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

告别版本混乱:rbenv如何优雅管理Ruby环境

你是否曾因多个Ruby项目使用不同版本而头疼?切换项目时频繁遇到"gem版本不兼容"、"语法错误"等问题?rbenv作为轻量级Ruby版本管理器,通过巧妙的设计解决了这些痛点。本文将从源码角度解析其核心机制,帮助你彻底理解版本管理背后的工作原理。 ## rbenv核心工作流程 rbenv的版本管理基于**目录层级检测**和**环境变量注入**两大机制,通过[libexec/rbenv](htt...

gitblog_00925的博客 1144

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Ruby】MacOS下使用版本管理器Rbenv

用于类Unix系统的Ruby版本管理器。这是MacOS系统自带的Ruby版本,无需删除,用Rbenv来安装其他版本即可。

纠缠AI的亮子 2714

深入理解rbenv:Ruby版本管理的终极指南

深入理解rbenv:Ruby版本管理的终极指南 【免费下载链接】rbenv 项目地址: https://gitcode.com/gh_mirrors/rbe/rbenv r...

gitblog_00737的博客 713

Ruby多版本管理:rbenv与rvm使用对比

在Ruby开发中,面对不同项目可能需要不同版本的Ruby环境,多版本管理工具成为必备技能。本文将对比两款主流工具——rbenv与RVM(Ruby Version Manager)的核心功能、使用场景及优缺点,帮助开发者选择适合自己的版本管理方案。 ## 工具概述 ### rbenv 轻量级工具,专注于Ruby版本切换,通过修改环境变量实现版本隔离,不依赖Ruby自身环境运行。其核心设计遵循Un...

gitblog_00057的博客 1123

Plotly.py 三元图(Ternary Plots)完全指南:从 Plotly Express 到 Graph Objects

三元图(Ternary Plot)是一种将三个变量的比例关系映射到等边三角形内部的经典可视化方式:三角形的三个顶点分别代表一个变量的"纯成分",三角形内任意一点的三条到边距离(或平行线截距)之和恒为常数。本文以 Plotly.py 官方文档 [doc/python/ternary-plots.md](https://link.gitcode.com/i/d13331246d9e044c375721

gitblog_01121的博客 324

rbenv:Ruby 版本管理这件事,它帮你搞定

rbenv是一款轻量级的Ruby版本管理工具,专为解决Ruby开发中的多版本切换问题而设计。它通过shim层拦截Ruby命令,根据项目目录下的.ruby-version文件自动切换版本,支持全局、项目和临时三种作用域。安装简便,支持Homebrew和Git安装方式,常用命令包括版本安装(rbenv install)、切换(rbenv local/global)等。相比功能更复杂的RVM,rbenv以轻量和可预测性著称,采用插件化设计保持核心精简。作为Ruby开发者标配工具,rbenv操作简单、社区维护成熟,

omegamatrix738的博客 174

Ubuntu 22.04下用rbenv管理Ruby版本的完整实践指南

Ruby 是一种动态、开源的编程语言,广泛用于 Web 开发,尤其与 Rails 框架深度绑定;版本管理则是保障多项目兼容性与环境可复现性的核心技术能力。其原理在于通过路径级拦截(shims)和环境变量控制,实现无需 root 权限、不污染系统 Ruby 的轻量级多版本共存。该技术显著提升开发效率与 CI/CD 稳定性,适用于 Rails 应用部署、遗留系统维护及团队标准化建设等场景。本文聚焦 Ubuntu 22.04 系统特性,详解 rbenv 与 ruby-build 协同工作的底层逻辑、依赖配置要点及

weixin_33795093的博客 420

Ubuntu 16.04 下用 rbenv 管理 Ruby 版本实战指南

Ruby 是一种动态、开源的编程语言,以简洁性和开发效率著称;其生态中版本兼容性问题长期存在,尤其在老旧系统上尤为突出。rbenv 作为轻量级 Ruby 版本管理工具,通过 PATH 垫片(shim)机制实现无侵入式版本切换,原理清晰、审计友好、与系统共存性强。相比 RVM 的 shell 劫持或系统 Ruby 的硬性锁定,rbenv 更契合企业级运维对稳定性、可复现性与安全基线的要求。它广泛应用于 Rails 应用部署、CI/CD 流水线及遗留系统现代化改造等场景,特别适合 Ubuntu 16.04 这类

weixin_34253126的博客 388

rbenv 自动化部署:如何在 CI/CD 中管理 Ruby 版本

rbenv 是一个轻量级的 Ruby 版本管理工具,专为 Unix 系统设计。它让开发者能够在同一台机器上轻松切换多个 Ruby 版本,确保每个项目始终运行在正确的环境上。在现代化的 CI/CD 流水线中,rbenv 自动化部署 能够显著提升开发效率和部署一致性。 ## 为什么在 CI/CD 中需要 rbenv? 🤔 在持续集成和持续部署环境中,版本一致性至关重要。rbenv 通过 `.ru

gitblog_00436的博客 438
上一篇: ruby中的urlencode和urldecode
下一篇: 一个简单的goroutine pool
CSTO
博客等级 码龄17年 3粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值