- 1f7b9a6b7c5.html,View source code: library_access.rar_Main_Form.dfm page_1 - VerySource
綾音Ayane
objectMain_F:TMain_FLeft=170Top=130BorderStyle=bsSingleCaption=#22270#20070#31649#29702#31995#32479ClientHeight=606ClientWidth=776Color=clBtnFaceFont.Charset=DEFAULT_CHARSETFont.Color=clWindowTextFont
- CSS盒子
五月仲夏
css前端
css三大特性css三大特性层叠性继承性优先级层叠性---主要解决样式冲突的问题---就近原则,样式不冲突,就不重叠继承性---子标签会继承父标签的一些样式,继承的样式(text-font-line-color这些元素开头的可以继承)高度,内外边距不可以继承css不可继承的属性边框属性(border)内边距属性(padding)外边距属性(margin)定位属性(position)大小属性(wid
- 解决Python中libhdfs.so的共享库找不到的问题
code_welike
python开发语言Python
解决Python中libhdfs.so的共享库找不到的问题在Python开发过程中,有时会遇到导入共享库时出现"ImportError:Cannotfindthesharedlibrary:libhdfs.so"的错误。这个错误通常发生在使用Python访问Hadoop分布式文件系统(HadoopDistributedFileSystem,简称HDFS)时,由于缺少libhdfs.so共享库文件而
- 浏览器沙箱机制
dbp5156
设计模式
简介沙箱模型技术是浏览器和其他应用程序中保护安全的一种组件关系设计模式,最初发明人为GreenBorder公司。2007年5月,谷歌公司收购了该公司,也将此项专利应用于chrome浏览器的研发中。转载于:https://www.cnblogs.com/LO-ME/p/10891824.html
- C++11线程安全队列实现
小贤2016
C++c++c++11阻塞队列面试线程安全
实现了一个C++11线程安全队列,可以作为模板使用。#include#include#include#include#include#include#includetemplateclassthreadsafe_queue{private:structnode{//存储了数据和下一个节点指针的节点std::shared_ptrdata;std::unique_ptrnext;};std::mute
- openpyxl表格样式设置
꧁ᝰ苏苏ᝰ꧂
Python自动化办公python
importpandasaspdfromopenpyxlimportWorkbookfromopenpyxlimportload_workbookfromopenpyxl.stylesimportAlignment,Font,Side,Borderdefmm(wb):forsheet_nameinwb.sheetnames:ws=wb[sheet_name]maxrows=ws.max_row#获
- 路径矢量路由协议之BGP-1基础知识
pt1043
BGP网络
BGP(BorderGatewayProtocol,边界网关协议)是现代网络架构中几乎所有高级技术的基础,任何一项现代网络体系下的高级技术都离不开它。在学习BGP之前,需要具备一定的基础知识。基础准备:CCNA基础——至少需要一半的CCNA基础;推荐阅读《CCNA学习指南:路由和交换认证》(作者:ToddLammle)。OSPF——如果具备基本的多区域OSPF或其他IGP等理论和配置能力,将为学习
- uniapp 微信小程序 去除button默认样式
带着梦想扬帆启航
uniapp微信小程序LESSCSS微信小程序css前端
一般情况下我们需要去掉的默认样式就是button按钮的背景和边框.btn{color:#333;text-align:center;border:none;border-radius:0;background-color:transparent;}此时你会发现按钮的边框并没有去掉,通过控制器定位到这个按钮的边框样式可以看到,这个边框线是通过伪元素实现的,我们只需要多加一个处理即可将这个边框线去除.
- django设置models.Model数据可以为空
呆萌的代Ma
后端djangopython后端
添加设置:null=True,blank=True比如:size=models.CharField(max_length=255,default="",null=True,blank=True)
- uniapp中使用vant wappp
m0_70647189
Web前端经验分享前端前端框架
.custom-button{.van-button{background-color:blue;border-radius:10px;}}如果你的style样式中存在scoped,我们可以利用vue中的语法,加个/deep/进行样式覆盖,如下所示:/deep/.custom-button{.van-button{background-color:blue;border-radius:10px;}
- uniapp button按钮去掉默认样式
啊卡无敌
cssuni-app前端javascript
有时候要使用uniapp官方提供的客服和分享功能,需要用到button按钮,里面属性open-type正好可以实现这些功能,不得不使用这种方式。但是这种方式,uniapp官方默认为button按钮加了些样式,自己写的样式也无法进行完全覆盖,所以今天分享一个覆盖官方button按钮的样式button::after{border:none;}button{position:relative;displ
- .NET 9.0 的 Blazor Web App 项目、Bootstrap Blazor 组件库、自定义日志 TLog 使用备忘
cqths
EFCore#BlazorWebApp.netwebappc#数据库
一、设计目标:通用、容易修改、使用简单,所有代码保存在一个文件中,方便移植到其他项目使用。注:示例使用BootstrapBlazor组件库和EFCore、Sqlite,需要先使用Nuget包管理器添加对应的包。namespaceBlazorWebAppNet9Shared.Services;usingMicrosoft.EntityFrameworkCore;usingMicrosoft.Exte
- c++之make_shared特性
_DCG_
c++c++开发语言
概念介绍c++11版本引入了智能指针shared_ptr/unique_ptr等,本文重点讲解share_ptr相关。由于引入了shared_ptr,根据shared_ptr的定义可以知晓shared_ptr一个模板类,支持基本数据类型,自定义数据类型的共享指针的构造。但是直接使用shared_ptr可能会引入一些问题,例如内存泄露。请看下面的例子:classMyClass{private:int
- C++编程: 使用 std::enable_shared_from_this 解决多线程悬空指针(智能指针失效)
橘色的喵
C++c++智能指针悬空指针shared_ptrweak_ptrshared_from多线程
文章目录0.概要1.什么是`std::enable_shared_from_this`?2.`std::enable_shared_from_this`的作用3.解决悬空指针访问的问题4.无法解决的竞态条件5.enable_shared_from_this的实现原理5.1原理阐述5.2原理伪代码示例5.3原理示意图6.使用`enable_shared_from_this`常见错误情形1:情形2:其
- 在friend中让std::make_shared使用private构造函数
GKxx
C++学习笔记私有构造函数友元函数智能指针C++
众所周知在创建std::shared_ptr对象的时候,我们总是应该优先选择std::make_shared而非手动地用new。《EffectiveModernC++》中提到了若干种std::make_shared不奏效的情况,主要是如下几种:make系列函数不支持定制deleter大括号初始化物无法被完美转发由于weak_ptr的存在导致控制块和对象所占的内存被延迟释放在实际操作中,我们还遇到了
- centos7中报错ModuleNotFoundError: No module named ‘_ctypes‘解决方法
丢失想象
centospython
分析:python3中有个内置模块叫ctypes,它是python3的外部函数库模块,提供了兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Sharedlibrary),此模块需要使用centos7系统中外部函数库(Foreignfunctionlibrary)的开发链接库(头文件和链接库)。由于在centos7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pi
- `std::make_shared` 无法直接用于单例模式,因为它需要访问构造函数,而构造函数通常是私有的
课堂随想
QT单例模式c++
std::make_shared在创建对象时会调用构造函数,而在单例模式下,构造函数通常是私有的,因此不能直接通过std::make_shared来创建对象。为什么std::make_shared不适用于单例模式?在单例模式中,我们希望确保一个类只有一个实例,并且通常会将构造函数设为私有或删除,以防止外部直接创建对象。例如:classSingleton{private:Singleton()=de
- 前端——Html+CSS
逆风局?
css前端html5
目录CSS引入方式颜色表达方式CSS选择器去掉超链接的下划线路径表示行高和首行缩进常见标签布局标签flex布局表单标签表单项标签改变鼠标指针的样式表格标签div{box-sizing:border-box;}CSS引入方式具体有3种引入方式,语法如下表格所示:名称语法描述示例行内样式在标签内使用style属性,属性值是css属性键值对。中国新闻网内部样式定义标签,在标签内部定义css样式。h1{.
- cpp智能指针
xianwu543
c++开发语言网络mysql数据库
普通指针的不足new和new[]的内存需要用delete和deletel]释放。程序员的主观失误,忘了或漏了释放。程序员也不确定何时释放。普通指针的释放类内的指针,在析构函数中释放。C++内置数据类型,如何释放?new出来的类,本身如何释放?C++11新增三个智能指针类型unique_ptrshared_ptrweak_ptr一、智能指针unique_ptrunique_ptr独享它指向的对象,也
- 网页固件升级界面设计
lljss2020
HTMLjavascript
1.代码本地固件升级.L1_tab-content{max-width:400px;margin:20pxauto;padding:20px;border:1pxsolid#ccc;border-radius:8px;text-align:center;}h2{margin-bottom:20px;}input[type="file"]{margin-bottom:10px;}button{pad
- Linux离线安装Python
chudu
#下载openssl,如果不先安装openssl,后续pip、requests库使用会有很多问题wget--no-check-certificatehttps://www.openssl.org/source/openssl-1.1.1g.tar.gztar-zxvfopenssl-1.1.1g.tar.gzcdopenssl-1.1.1g./configshared--openssldir=/u
- 智能指针make_unique初始化数组的3种方法
苏克贝塔
C++c++
智能指针make_unique初始化数组的两种方法://方法1std::unique_ptrptr1{newint[5]{1,2,3,4,5}};//方法2autoptr2=std::make_unique>(std::array{1,2,3,4,5});但还是建议使用vector来表示数组,如下://方法3shared_ptr>ptr3=make_shared>();
- linux flock简介与简单应用
tadus_zeng
c++多进程linuxc++
flock即文件锁,是建议性锁,需要各进程主动去获取与释放。flock适合进程间通信,不适合用作线程间互斥。主要应用在解决文件读写冲突上。linux命令$flock-hUsage:flock[options][commandargs]flock[options]-cflock[options]Options:-s--sharedgetasharedlock-x--exclusivegetanexc
- VUE3-修改element-plus-el-select的下拉框样式
Anastasia289
vue.jsjavascript前端vue
样式如图:参考博客链接:修改el-select和el-input样式;修改element-plus的下拉框el-select样式;修改placeholder样式_elementplusel-select样式修改-CSDN博客.el-select{--el-select-border-color-hover:rgb(0,162,255)!important;//修改下拉框hover的默认样式}.el
- Qt双击桌面快捷方式激活并使程序窗口置于最前端
Chervin
QtWindowsqt前端
Qt双击桌面快捷方式激活并使程序窗口置于最前端亲测有效对于已经打开的Qt桌面程序,我们希望用户再次双击桌面的快捷方式时,程序可以自动激活到其他所有程序的最前面,而不是重新打开一次程序。此时我们采用QSharedMemory方式,加上WindowAPI函数操作程序,保证已打开程序不重复打开,并激活程序窗口到最前面在main()函数中添加如下代码//WindouwAPI依赖头文件#include#in
- [并发并行]_[中级]_[C++实现synchronized方式的对象锁2.0]
Peter(阿斯拉达)
C++语言特性和标准库C/C++多线程并发并行c++同步synchronized对象锁Javamutexthread
场景在前面的文章说过C++实现synchronized方式的对象锁[1]可以实现Java的synchronized易用特性。这个第一版的例子并没有说明如何删除pthread_mutex_t对象,随着加锁的对象增加会出现内存泄漏的情况,怎么解决?说明在C++11提供了可复制的共享的指针std::shared_ptr,利用这个指针我们可以判断mutex有没有被其他线程使用,从而释放mutex。改进版的
- HTML表单相关知识
彩虹也说她不可思议.
html前端javascript
表单的基本结构标签名标签语义常用属性单/双标签form表单action:用于指定表单的提交地址(需与后端人员沟通确定)method:用于控制表单的提交方式target:用于控制表单如何打开页面,常用值如下:_self:在本页签打开页面_blank:在新页签打开页面双input输入框type:设置输入框类型name:用于指定提交数据的名字(需与后端人员沟通确定)单button按钮type:用于设置按
- error: libcublasLt.so.11: cannot open shared object file: No such file or directory/缺少libcublas.so查找
鼾声鼾语
linuxubuntu服务器pythoncan通讯方法
1,问题:gstnvtracker:Loadinglow-levellibat/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.sogstnvtracker:Failedtoopenlow-levellibat/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmulti
- CSS属性:fit-content
Frilled Lizard
css前端css3scss
Thisisafrostedglasseffect..frosted-glass{position:absolute;top:10vh;left:0;right:0;margin:auto;width:fit-content;background:rgba(0,0,0,0.3);font-size:28px;color:#fff;border-radius:40px;padding:8px28px
- 巨好看的登录注册界面源码
bjzhang75
前端开发HTMLCSS登录注册页面
展示效果源码Document*{margin:0;padding:0;box-sizing:border-box;}body{width:100%;height:100%;}.container{width:100%;height:100vh;background-color:#f0f8ff;/*淡蓝色背景*/display:flex;justify-content:center;align-it
- Java开发中,spring mvc 的线程怎么调用?
小麦麦子
springmvc
今天逛知乎,看到最近很多人都在问spring mvc 的线程http://www.maiziedu.com/course/java/ 的启动问题,觉得挺有意思的,那哥们儿问的也听仔细,下面的回答也很详尽,分享出来,希望遇对遇到类似问题的Java开发程序猿有所帮助。
问题:
在用spring mvc架构的网站上,设一线程在虚拟机启动时运行,线程里有一全局
- maven依赖范围
bitcarter
maven
1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包
2.compile 只有编译和打包时才会依赖
3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包
4.runtime 运行时依赖,编译不依赖
5.默认compile
依赖范围compile是支持传递的,test不支持传递
1.传递的意思是项目A,引用
- Jaxb org.xml.sax.saxparseexception : premature end of file
darrenzhu
xmlprematureJAXB
如果在使用JAXB把xml文件unmarshal成vo(XSD自动生成的vo)时碰到如下错误:
org.xml.sax.saxparseexception : premature end of file
很有可能时你直接读取文件为inputstream,然后将inputstream作为构建unmarshal需要的source参数。InputSource inputSource = new In
- CSS Specificity
周凡杨
html权重Specificitycss
有时候对于页面元素设置了样式,可为什么页面的显示没有匹配上呢? because specificity
CSS 的选择符是有权重的,当不同的选择符的样式设置有冲突时,浏览器会采用权重高的选择符设置的样式。
规则:
HTML标签的权重是1
Class 的权重是10
Id 的权重是100
- java与servlet
g21121
servlet
servlet 搞java web开发的人一定不会陌生,而且大家还会时常用到它。
下面是java官方网站上对servlet的介绍: java官网对于servlet的解释 写道
Java Servlet Technology Overview Servlets are the Java platform technology of choice for extending and enha
- eclipse中安装maven插件
510888780
eclipsemaven
1.首先去官网下载 Maven:
http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.2.3-bin.tar.gz
下载完成之后将其解压,
我将解压后的文件夹:apache-maven-3.2.3,
并将它放在 D:\tools目录下,
即 maven 最终的路径是:D:\tools\apache-mave
- jpa@OneToOne关联关系
布衣凌宇
jpa
Nruser里的pruserid关联到Pruser的主键id,实现对一个表的增删改,另一个表的数据随之增删改。
Nruser实体类
//*****************************************************************
@Entity
@Table(name="nruser")
@DynamicInsert @Dynam
- 我的spring学习笔记11-Spring中关于声明式事务的配置
aijuans
spring事务配置
这两天学到事务管理这一块,结合到之前的terasoluna框架,觉得书本上讲的还是简单阿。我就把我从书本上学到的再结合实际的项目以及网上看到的一些内容,对声明式事务管理做个整理吧。我看得Spring in Action第二版中只提到了用TransactionProxyFactoryBean和<tx:advice/>,定义注释驱动这三种,我承认后两种的内容很好,很强大。但是实际的项目当中
- java 动态代理简单实现
antlove
javahandlerproxydynamicservice
dynamicproxy.service.HelloService
package dynamicproxy.service;
public interface HelloService {
public void sayHello();
}
dynamicproxy.service.impl.HelloServiceImpl
package dynamicp
- JDBC连接数据库
百合不是茶
JDBC编程JAVA操作oracle数据库
如果我们要想连接oracle公司的数据库,就要首先下载oralce公司的驱动程序,将这个驱动程序的jar包导入到我们工程中;
JDBC链接数据库的代码和固定写法;
1,加载oracle数据库的驱动;
&nb
- 单例模式中的多线程分析
bijian1013
javathread多线程java多线程
谈到单例模式,我们立马会想到饿汉式和懒汉式加载,所谓饿汉式就是在创建类时就创建好了实例,懒汉式在获取实例时才去创建实例,即延迟加载。
饿汉式:
package com.bijian.study;
public class Singleton {
private Singleton() {
}
// 注意这是private 只供内部调用
private static
- javascript读取和修改原型特别需要注意原型的读写不具有对等性
bijian1013
JavaScriptprototype
对于从原型对象继承而来的成员,其读和写具有内在的不对等性。比如有一个对象A,假设它的原型对象是B,B的原型对象是null。如果我们需要读取A对象的name属性值,那么JS会优先在A中查找,如果找到了name属性那么就返回;如果A中没有name属性,那么就到原型B中查找name,如果找到了就返回;如果原型B中也没有
- 【持久化框架MyBatis3六】MyBatis3集成第三方DataSource
bit1129
dataSource
MyBatis内置了数据源的支持,如:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<data
- 我程序中用到的urldecode和base64decode,MD5
bitcarter
cMD5base64decodeurldecode
这里是base64decode和urldecode,Md5在附件中。因为我是在后台所以需要解码:
string Base64Decode(const char* Data,int DataByte,int& OutByte)
{
//解码表
const char DecodeTable[] =
{
0, 0, 0, 0, 0, 0
- 腾讯资深运维专家周小军:QQ与微信架构的惊天秘密
ronin47
社交领域一直是互联网创业的大热门,从PC到移动端,从OICQ、MSN到QQ。到了移动互联网时代,社交领域应用开始彻底爆发,直奔黄金期。腾讯在过去几年里,社交平台更是火到爆,QQ和微信坐拥几亿的粉丝,QQ空间和朋友圈各种刷屏,写心得,晒照片,秀视频,那么谁来为企鹅保驾护航呢?支撑QQ和微信海量数据背后的架构又有哪些惊天内幕呢?本期大讲堂的内容来自今年2月份ChinaUnix对腾讯社交网络运营服务中心
- java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素
bylijinnan
java
public class MinOfShiftedArray {
/**
* Q69 旋转数组的最小元素
* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
* 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。
*/
publ
- 看博客,应该是有方向的
Cb123456
反省看博客
看博客,应该是有方向的:
我现在就复习以前的,在补补以前不会的,现在还不会的,同时完善完善项目,也看看别人的博客.
我刚突然想到的:
1.应该看计算机组成原理,数据结构,一些算法,还有关于android,java的。
2.对于我,也快大四了,看一些职业规划的,以及一些学习的经验,看看别人的工作总结的.
为什么要写
- [开源与商业]做开源项目的人生活上一定要朴素,尽量减少对官方和商业体系的依赖
comsci
开源项目
为什么这样说呢? 因为科学和技术的发展有时候需要一个平缓和长期的积累过程,但是行政和商业体系本身充满各种不稳定性和不确定性,如果你希望长期从事某个科研项目,但是却又必须依赖于某种行政和商业体系,那其中的过程必定充满各种风险。。。
所以,为避免这种不确定性风险,我
- 一个 sql优化 ([精华] 一个查询优化的分析调整全过程!很值得一看 )
cwqcwqmax9
sql
见 http://www.itpub.net/forum.php?mod=viewthread&tid=239011
Web翻页优化实例
提交时间: 2004-6-18 15:37:49 回复 发消息
环境:
Linux ve
- Hibernat and Ibatis
dashuaifu
Hibernateibatis
Hibernate VS iBATIS 简介 Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS 是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mappi
- 备份MYSQL脚本
dcj3sjt126com
mysql
#!/bin/sh
# this shell to backup mysql
#
[email protected] (QQ:1413161683 DuChengJiu)
_dbDir=/var/lib/mysql/
_today=`date +%w`
_bakDir=/usr/backup/$_today
[ ! -d $_bakDir ] && mkdir -p
- iOS第三方开源库的吐槽和备忘
dcj3sjt126com
ios
转自
ibireme的博客 做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。 首先整理了一份
Github上排名靠
- html wlwmanifest.xml
eoems
htmlxml
所谓优化wp_head()就是把从wp_head中移除不需要元素,同时也可以加快速度。
步骤:
加入到function.php
remove_action('wp_head', 'wp_generator');
//wp-generator移除wordpress的版本号,本身blog的版本号没什么意义,但是如果让恶意玩家看到,可能会用官网公布的漏洞攻击blog
remov
- 浅谈Java定时器发展
hacksin
java并发timer定时器
java在jdk1.3中推出了定时器类Timer,而后在jdk1.5后由Dou Lea从新开发出了支持多线程的ScheduleThreadPoolExecutor,从后者的表现来看,可以考虑完全替代Timer了。
Timer与ScheduleThreadPoolExecutor对比:
1.
Timer始于jdk1.3,其原理是利用一个TimerTask数组当作队列
- 移动端页面侧边导航滑入效果
ini
jqueryWebhtml5cssjavascirpt
效果体验:http://hovertree.com/texiao/mobile/2.htm可以使用移动设备浏览器查看效果。效果使用到jquery-2.1.4.min.js,该版本的jQuery库是用于支持HTML5的浏览器上,不再兼容IE8以前的浏览器,现在移动端浏览器一般都支持HTML5,所以使用该jQuery没问题。HTML文件代码:
<!DOCTYPE html>
<h
- AspectJ+Javasist记录日志
kane_xie
aspectjjavasist
在项目中碰到这样一个需求,对一个服务类的每一个方法,在方法开始和结束的时候分别记录一条日志,内容包括方法名,参数名+参数值以及方法执行的时间。
@Override
public String get(String key) {
// long start = System.currentTimeMillis();
// System.out.println("Be
- redis学习笔记
MJC410621
redisNoSQL
1)nosql数据库主要由以下特点:非关系型的、分布式的、开源的、水平可扩展的。
1,处理超大量的数据
2,运行在便宜的PC服务器集群上,
3,击碎了性能瓶颈。
1)对数据高并发读写。
2)对海量数据的高效率存储和访问。
3)对数据的高扩展性和高可用性。
redis支持的类型:
Sring 类型
set name lijie
get name lijie
set na
- 使用redis实现分布式锁
qifeifei
在多节点的系统中,如何实现分布式锁机制,其中用redis来实现是很好的方法之一,我们先来看一下jedis包中,有个类名BinaryJedis,它有个方法如下:
public Long setnx(final byte[] key, final byte[] value) {
checkIsInMulti();
client.setnx(key, value);
ret
- BI并非万能,中层业务管理报表要另辟蹊径
张老师的菜
大数据BI商业智能信息化
BI是商业智能的缩写,是可以帮助企业做出明智的业务经营决策的工具,其数据来源于各个业务系统,如ERP、CRM、SCM、进销存、HER、OA等。
BI系统不同于传统的管理信息系统,他号称是一个整体应用的解决方案,是融入管理思想的强大系统:有着系统整体的设计思想,支持对所有
- 安装rvm后出现rvm not a function 或者ruby -v后提示没安装ruby的问题
wudixiaotie
function
1.在~/.bashrc最后加入
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
2.重新启动terminal输入:
rvm use ruby-2.2.1 --default
把当前安装的ruby版本设为默