Risposte:
Nel caso in cui utilizzi il bundler, devi aggiungere qualcosa del genere al tuo Gemfile:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
E in caso di .gemspec
file, dovrebbe essere in grado di recuperare e installare la gemma durante l'esecuzione bundle install
.
UPD. Come indicato nei commenti, affinché Bundler funzioni correttamente è inoltre necessario aggiungere quanto segue a config.ru
:
require "bundler"
Bundler.setup(:default)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.html
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- la :tag => ''
parte
bene, dipende dal progetto in questione. Alcuni progetti hanno un file * .gemspec nella loro directory principale. In tal caso, lo sarebbe
gem build GEMNAME.gemspec
gem install gemname-version.gem
Altri progetti hanno un compito di rake, chiamato "gem" o "build" o qualcosa del genere, in questo caso devi invocare "rake", ma ciò dipende dal progetto.
In entrambi i casi devi scaricare la fonte.
gemname-version.gem
file viene creato quando si richiamagem build
gem install gemname-version.gem
comando installa la gemma git localmente? Non riesco a trovare da nessuna parte nella mia macchina locale una gemma del motore installata in questo modo. Dove lo nasconde Bundler?
gem install gemname-version.gem
linea dovrebbe esseregem install --local gemname-version.gem
gem which gemname
dovrebbe dirti dove si trova una gemma specifica, non funziona per te?
Prova la gemma specific_install che ti consente di installare una gemma dal suo repository github (come 'edge') o da un URL arbitrario. Molto utile per biforcare gemme e hackerarle su più macchine e simili.
gem install specific_install
gem specific_install -l <url to a github gem>
per esempio
gem specific_install https://github.com/githubsvnclone/rdoc.git
specific_install
gemma?
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Sembra molto bello ma non lo esaminerò ulteriormente. Volevo solo postare che non ha funzionato per me nel caso in cui qualcun altro stia per dare un vortice basato sulla raccomandazione SO.
Bundler ti consente di usare le gemme direttamente dai repository git. Nel tuo Gemfile:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'
# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'
Per ulteriori informazioni, consultare https://bundler.io/v2.0/guides/git.html
bundle
, tali dipendenze git-gem non verranno installate a livello globale ma nella directory home dell'utente corrente. Passenger eseguirà ruby come utente del tuo server web (ad es. www-data
) Che non ha accesso a questa directory e quindi questo "git-gem" non verrà caricato. Riceverai un errore ... is not yet checked out. Run bundle install first
.
OBSOLETO (vedi commenti)
Se il progetto proviene da github e contenuto nell'elenco su http://gems.github.com/list.html , puoi semplicemente aggiungere il repository github alle fonti gemme per installarlo:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
Se stai ricevendo le tue gemme da un repository GitHub pubblico, puoi usare la scorciatoia
gem 'nokogiri', github: 'tenderlove/nokogiri'
Anche tu puoi fare gem install username-projectname -s http://gems.github.com
Nel tuo Gemfile, aggiungi quanto segue:
gem 'example', :git => 'git://github.com/example.git'
Puoi anche aggiungere opzioni ref, branch e tag,
Ad esempio, se si desidera scaricare da un determinato ramo:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
Quindi eseguire:
bundle install
Se si installa utilizzando il bundler come suggerito da gryzzly e la gemma crea un binario, assicurarsi di eseguirlo bundle exec mygembinary
poiché la gemma è memorizzata in una directory del bundler che non è visibile sul normale percorso gem.
Su una nuova macchina Linux devi anche installare git
. Bundle lo usa dietro le quinte.
require "bundler" Bundler.setup(:default)
vedi i documenti del bundler per maggiori dettagli