亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

Ruby中的gem包管理的使用及gem源搭建教程

2020-10-29 19:35:27
字體:
來源:轉載
供稿:網友

熟練使用RubyGems
RubyGems是Ruby的插件管理系統,可以輕松安裝及管理Ruby函式庫??梢栽赗ubyGems上找到所有開源套件。

###常見指令

  • gem -v 查看RubyGems的版本
  • gem update --system 升級RubyGems的版本
  • gem install gem_name 安裝某個插件
  • gem install -v x.x.x gem_name 安裝指定版本的插件
  • gem list 列出安裝的套件
  • gem update gem_name 更新某個插件
  • gem update 更新所有的插件
  • gem uninstall gem_name 刪除某個插件

另外,在安裝插件時,系統會默認安裝該插件的RDoc和ri文件,如果不希望安裝這些該件,可在安裝時使用--no-ri --no-rdoc參數:

gem install gem_name --no-ri --no-rdoc
也可以在用戶目錄~下,新建一個.gemrc文檔,內容如下:
gem: --no-ri --no-rdoc

系統將默認不安裝RDoc和ri文件。

###國內RubyGems鏡像

如果服務器在國內,安裝所需的gems將是異常痛苦的體驗,所幸的是,現在可以使用淘寶的鏡像:

$ gem sources --remove https://rubygems.org/$ gem sources -a http://ruby.taobao.org/$ gem sources -l

如果顯示:

*** CURRENT SOURCES ***http://ruby.taobao.org

就說明更改成功啦,你現在可以從國內鏡像安裝rugy gems啦。詳細內容可參考 Rubygems鏡像

如果使用Bundler管理Ruby Gems,可以修改Gemfile:

source 'http://ruby.taobao.org/'gem 'rails', '3.2.2'... ... ...

###建立和分享Ruby Gems

根據官方的簡介:

gem update --system #Update to the latest RubyGems versiongem build foo.gemspec #Build your gemgem push foo-1.0.0.gem #Deploy your gem instantly

如何建立自己的Rubygems
###簡單的示例:

以創建topico-0.0.1.gem為例:

####建立文件夾

.├── lib│  └── topico.rb└── topico.gemspec

注意:lib目錄下必須有個和你gem名字一樣的rb文件。

####編寫代碼 lib/topico.rb

class Topico def self.hello  puts "Hello, RubyGems!" endend

####編輯GemSpec文件 topico.gemspec

Gem::Specification.new do |s| s.name    = 'topico' s.version   = '0.0.1' s.date    = '2012-03-11' s.summary   = 'Greeting from Topico' s.description = 'Topico shows a greeting to RubyGems' s.authors   = 'Author Name' s.email    = 'username@username.com' s.files    = ["lib/topico.rb"] s.homepage  = 'http://rubygems.org/gems/topico'end

這里僅列出了較為常見的屬性。

####編譯生成gem

$ gem build topico.gemspec

系統會提示信息:

 

 Successfully built RubyGem Name: topico Version: 0.0.1 File: topico-0.0.1.gem

編譯后可以查看文件夾結構 tree

.├── lib│  └── topico.rb├── topico-0.0.1.gem└── topico.gemspec

注意新生成的topico-0.0.1.gem

####安裝并測試gem

安裝topico-0.0.1.gem

$ gem install ./topico-0.0.1.gem

系統會提示:

Successfully installed topico-0.0.11 gem installedInstalling ri documentation for topico-0.0.1...Installing RDoc documentation for topico-0.0.1...

在irb中測試使用 irb:

irb(main):001:0> require 'topico'=> trueirb(main):002:0> Topico.helloHello, RubyGems!=> nil

####發布到RugyGems網站

先設置RubyGems的用戶名和密碼:

$ curl -u username https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials
Enter host password for user 'username': % Total  % Received % Xferd Average Speed  Time  Time   Time Current                 Dload Upload  Total  Spent  Left Speed 0  56  0  56  0   0   25   0 --:--:-- 0:00:02 --:--:--  144

設置成功后發布:

$ gem push topico-0.0.1.gem
Pushing gem to https://rubygems.org...Successfully registered gem: topico (0.0.1)

發布成功,這樣大家都可以使用你的Rubygem啦。

###稍微復雜一些的示例:

下面看一下如何組織多個ruby文件。

1.目錄結構

.├── lib│  ├── ext│  │  └── calculation.rb│  └── topico.rb└── topico.gemspec

2.編寫GemSpec

在s.files一行,修改:

 s.files    = ["lib/topico.rb", "lib/ext/calculation.rb"]

重新gem build即可。

3.如何在Gem中包含可執行該件

(1)在插件目錄下,建立bin文件夾:

生成可執行該件,并且將權限修改為可運行。

$ mkdir bin$ touch bin/greeting$ chmod a+x bin/greeting

(2)修改可執行文件內容

#!/usr/bin/env rubyrequire 'topico'puts Topico.hello

(3)修改GemSpec,添加一行s.executables

 s.executables << 'greeting'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情视频播放| 美女av一区二区| 伊人久久久久久久久久| 成年人精品视频| 亚洲国产欧美一区二区丝袜黑人| 亚洲国产成人精品久久久国产成人一区| 欧美激情a∨在线视频播放| 欧美风情在线观看| 欧美日韩国产一中文字不卡| 亚洲欧美综合图区| 欧美孕妇孕交黑巨大网站| 国产一区二区三区高清在线观看| 国产+成+人+亚洲欧洲| 中文字幕亚洲欧美日韩在线不卡| 日本免费久久高清视频| 久久香蕉精品香蕉| 亚洲аv电影天堂网| 亚洲欧美日韩另类| 欧美日韩精品中文字幕| 欧美性猛交xxxx乱大交| 正在播放欧美视频| 亚洲最大的网站| 精品久久久久久久久久ntr影视| www.亚洲一区| 亚洲国产精品字幕| 日韩av三级在线观看| 美日韩精品免费视频| 日韩免费不卡av| 狠狠色狠色综合曰曰| 97精品一区二区三区| 狠狠躁夜夜躁人人躁婷婷91| 久久精品国产成人精品| 成人免费在线视频网站| 中文字幕亚洲色图| 美女视频黄免费的亚洲男人天堂| 久久成人这里只有精品| 国产女精品视频网站免费| 欧美性xxxx极品高清hd直播| 98精品国产自产在线观看| 97在线看福利| 91亚洲国产成人久久精品网站| 一区二区日韩精品| 欧美日韩精品在线观看| 亚洲欧美国产精品| 国产综合香蕉五月婷在线| 国产精品扒开腿做| 日本一区二区三区四区视频| 国产精品亚发布| 亚洲欧美成人在线| 情事1991在线| 亚洲国产日韩一区| 亚洲欧美综合图区| 国产一区二区在线免费| 欧美丝袜一区二区| 黄色一区二区三区| 精品毛片三在线观看| 色综久久综合桃花网| 亚洲xxxxx| 精品欧美一区二区三区| 国产精品老女人视频| 45www国产精品网站| 久久免费少妇高潮久久精品99| 日韩欧美在线视频免费观看| 俺也去精品视频在线观看| 亚洲成色777777女色窝| 欧美xxxx做受欧美.88| 91精品91久久久久久| 成人性生交xxxxx网站| 欧美一区二粉嫩精品国产一线天| 亚洲综合在线做性| 国产成人精品一区二区三区| 中文字幕在线视频日韩| 国产精品日韩在线一区| 亚洲丝袜在线视频| 久久久久久久一| 亚洲激情在线观看视频免费| 91性高湖久久久久久久久_久久99| 亚洲国内精品在线| 欧美日韩性视频在线| 91超碰中文字幕久久精品| 久久在线观看视频| 国产精品成人品| 欧美一区二区三区精品电影| 久久久久久久久久久免费| 欧美色videos| 欧美一性一乱一交一视频| 国模极品一区二区三区| 国产成人精品视频在线观看| 成人欧美一区二区三区在线湿哒哒| 亚洲欧美日韩精品久久| 国产日韩精品视频| 丝袜一区二区三区| 91久久国产精品| 亚洲二区在线播放视频| 日韩免费中文字幕| 久久综合色影院| 日韩中文字幕亚洲| 日本伊人精品一区二区三区介绍| 亚洲欧洲日韩国产| 国产精品成av人在线视午夜片| 亚洲男人的天堂在线| 热久久免费视频精品| 国产综合在线观看视频| 中文在线不卡视频| 久久天堂av综合合色| 69久久夜色精品国产69乱青草| 国产日韩在线精品av| 国产成人精品在线视频| 日韩av不卡在线| 欧美性理论片在线观看片免费| 国产亚洲欧美一区| 久久久久久久国产精品视频| 亚洲一区二区三区在线免费观看| 欧美另类69精品久久久久9999| 成人免费观看网址| 亚洲xxxx做受欧美| 成人性生交大片免费观看嘿嘿视频| 91精品国产沙发| 欧美精品电影免费在线观看| 久久激情视频久久| wwwwwwww亚洲| 神马国产精品影院av| 日韩精品电影网| 精品自在线视频| 亚洲性av网站| 国产激情久久久久| 神马久久桃色视频| 欧美极品少妇与黑人| 亚洲日韩欧美视频一区| 亚洲国产免费av| 国产成人精品a视频一区www| 91国偷自产一区二区三区的观看方式| 久久久久女教师免费一区| 在线看日韩av| 日韩美女写真福利在线观看| 午夜精品视频在线| 91国内揄拍国内精品对白| 国产午夜一区二区| 91久久在线视频| 国产成人精品免高潮费视频| 亚洲精品97久久| 久久精品色欧美aⅴ一区二区| 欧美日韩国产精品一区二区不卡中文| 国产精品69久久| 久久99热精品这里久久精品| 久久精品视频在线观看| 国产福利精品在线| 最近更新的2019中文字幕| 情事1991在线| 亚洲国产精品成人精品| 国产a∨精品一区二区三区不卡| 国产视频久久久| 欧美精品久久久久久久久久| 国产精品第七十二页| 欧美成人精品在线视频| 97超级碰碰人国产在线观看| 亚洲国产天堂久久国产91| 狠狠操狠狠色综合网| 中文字幕国内精品| 国产亚洲日本欧美韩国| 日韩麻豆第一页| 91成人精品网站| 国产男女猛烈无遮挡91| 亚洲精品美女久久|