Ricerca…


Installare gemme di rubini

Questa guida presuppone che tu abbia già installato Ruby. Se stai usando Ruby < 1.9 dovrai installare manualmente RubyGems in quanto non sarà incluso in modo nativo .

Per installare una gemma ruby, inserisci il comando:

gem install [gemname]

Se stai lavorando su un progetto con un elenco di dipendenze gem, queste saranno elencate in un file chiamato Gemfile . Per installare una nuova gemma nel progetto, aggiungi la seguente riga di codice nel Gemfile :

gem 'gemname'

Questo Gemfile è usato dalla gemma Bundler per installare le dipendenze richieste dal tuo progetto, ma ciò significa che dovrai prima installare Bundler eseguendo (se non lo hai già fatto):

gem install bundler

Salvare il file e quindi eseguire il comando:

bundle install

Specifica delle versioni

Il numero di versione può essere specificato sul comando live, con il flag -v , ad esempio:

gem install gemname -v 3.14

Quando si specificano i numeri di versione in un Gemfile , sono disponibili diverse opzioni:

  • Nessuna versione specificata ( gem 'gemname') - Installa l' ultima versione compatibile con altre gemme nel Gemfile .
  • Versione esatta specificata ( gem 'gemname', '3.14' ): tenterà solo di installare la versione 3.14 (e fallirà se questo non è compatibile con altre gemme nel Gemfile ).
  • Numero minimo di versione ottimistico ( gem 'gemname', '>=3.14' ) - gem 'gemname', '>=3.14' solo di installare l' ultima versione compatibile con altre gemme nel Gemfile e fallirà se nessuna versione superiore o uguale a 3.14 è compatibile. L'operatore > può anche essere usato.
  • Numero di versione minimo pessimistico ( gem 'gemname', '~>3.14' ) - Questo è funzionalmente equivalente all'uso di gem 'gemname', '>=3.14', '<4' . In altre parole, è consentito aumentare solo il numero dopo il periodo finale .

Come procedura: Si potrebbe desiderare di utilizzare una delle librerie di gestione versione di Ruby come rbenv o rvm . Attraverso queste librerie, è possibile installare di conseguenza diverse versioni di runtime e gemme di Ruby. Quindi, quando si lavora in un progetto, questo sarà particolarmente utile perché la maggior parte dei progetti è codificata contro una versione nota di Ruby.

Installazione gemma da github / filesystem

Puoi installare una gemma da github o dal filesystem. Se la gemma è stata estratta da git o in qualche modo già sul file system, puoi installarla usando

gem install --local path_to_gem/filename.gem

Installare gem da github. Scarica i sorgenti da github

mkdir newgem
cd newgem
git clone https://urltogem.git

Costruisci la gemma

gem build GEMNAME.gemspec
gem install gemname-version.gem

Verifica se una gemma richiesta è installata dal codice

Per verificare se una gemma richiesta è installata, dal tuo codice, puoi usare quanto segue (usando nokogiri come esempio):

begin
  found_gem = Gem::Specification.find_by_name('nokogiri')
  require 'nokogiri'
  ....
  <the rest of your code>
rescue Gem::LoadError
end

Tuttavia, questo può essere ulteriormente esteso a una funzione che può essere utilizzata nella configurazione della funzionalità all'interno del codice.

def gem_installed?(gem_name)
  found_gem = false
  begin
    found_gem = Gem::Specification.find_by_name(gem_name)
  rescue Gem::LoadError
     return false
  else
    return true
  end
end

Ora puoi controllare se è installato il gem richiesto e stampare un messaggio di errore.

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  printf "nokogiri gem required\n"
  exit 1
end

o

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  require 'REXML'
end

Usando un Gemfile e Bundler

Un Gemfile è il modo standard per organizzare le dipendenze nell'applicazione. Un Gemfile di base sarà simile a questo:

source 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
gem 'uglifier'

Puoi specificare le versioni della gemma che desideri come segue:

# Match except on point release. Use only 1.5.X
gem 'rack', '~>1.5.2'
# Use a specific version.
gem 'sinatra', '1.4.7'
# Use at least a version or anything greater.
gem 'uglifier', '>= 1.3.0'

Puoi anche estrarre gemme direttamente da un repository git:

# pull a gem from github
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git'
# you can specify a sha
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', sha: '30d4fb468fd1d6373f82127d845b153f17b54c51'
# you can also specify a branch, though this is often unsafe
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', branch: 'master'

Puoi anche raggruppare le gemme a seconda di cosa sono usate. Per esempio:

group :development, :test do
    # This gem is only available in dev and test, not production.
    gem 'byebug'
end

È possibile specificare su quale piattaforma eseguire determinate gem se l'applicazione deve essere in grado di essere eseguita su più piattaforme. Per esempio:

platform :jruby do
  gem 'activerecord-jdbc-adapter'
  gem 'jdbc-postgres'
end

platform :ruby do
  gem 'pg'
end

Per installare tutte le gemme da un Gemfile fai:

gem install bundler
bundle install

Bundler / inline (bundler v1.10 e successive)

A volte è necessario creare una sceneggiatura per qualcuno ma non si è sicuri di cosa abbia sulla sua macchina. C'è tutto ciò di cui ha bisogno il tuo script? Da non preoccuparsi. Bundler ha una grande funzione chiamata in linea.

Fornisce un metodo gemfile e prima gemfile dello script viene scaricato e richiede tutte le gemme necessarie. Un piccolo esempio:

require 'bundler/inline' #require only what you need

#Start the bundler and in it use the syntax you are already familiar with
gemfile(true) do 
  source 'https://rubygems.org'
        gem 'nokogiri', '~> 1.6.8.1'
        gem 'ruby-graphviz'
end


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow