Відповіді:
Якщо ви використовуєте пакет, ви повинні додати щось подібне до свого Gemfile:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
І якщо .gemspec
файл є , він повинен мати можливість отримати та встановити дорогоцінний камінь під час запуску bundle install
.
UPD. Як зазначено в коментарях, щоб Bundler працював належним чином, вам також потрібно додати наступне 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'
<- :tag => ''
частина
добре, це залежить від проекту, про який йде мова. Деякі проекти мають у своєму кореневому каталозі файл * .gemspec. У такому випадку це було б
gem build GEMNAME.gemspec
gem install gemname-version.gem
Інші проекти мають завдання граблі, яке називається "gem" або "build" або щось подібне, у цьому випадку вам потрібно посилатися на "grake", але це залежить від проекту.
В обох випадках потрібно завантажити джерело.
gemname-version.gem
Файл створюється при викликуgem build
gem install gemname-version.gem
команда встановлює git gem локально? Я не можу знайти ніде на своїй локальній машині дорогоцінний камінь, встановлений таким чином. Де його приховує пачка?
gem install gemname-version.gem
лінія повинна бутиgem install --local gemname-version.gem
gem which gemname
повинен сказати вам, де знаходиться конкретний дорогоцінний камінь, чи це не працює для вас?
Спробуйте specific_install дорогоцінний камінь, який дозволяє вам встановити дорогоцінний камінь зі свого сховища github (наприклад, 'edge') або з довільної URL-адреси. Дуже корисно для розгортання дорогоцінних каменів і злому на них на декількох машинах тощо.
gem install specific_install
gem specific_install -l <url to a github gem>
напр
gem specific_install https://github.com/githubsvnclone/rdoc.git
specific_install
дорогоцінного каміння?
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Звучить дуже круто, але я більше не буду в ньому дивитися. Просто хотів додати, що це не спрацювало для мене на випадок, якщо хтось збирається дати йому кружляння на основі рекомендації ТА.
Bundler дозволяє використовувати дорогоцінні камені безпосередньо з сховищ git. У вашому 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'
Для отримання додаткової інформації див. Https://bundler.io/v2.0/guides/git.html
bundle
такі git-gem-залежності не встановлюватимуться глобально, а замість цього в домашньому каталозі поточного користувача. Пасажир буде запускати рубін як користувач вашого веб-сервера (наприклад www-data
), який не має доступу до цього каталогу, і цей "git-gem" не завантажується. Ви отримаєте помилку ... is not yet checked out. Run bundle install first
.
ЗАБАВЛЕННЯ (див. Коментарі)
Якщо проект з github і міститься у списку на http://gems.github.com/list.html , тоді ви можете просто додати github repo до джерел дорогоцінних каменів, щоб встановити його:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
Якщо ви отримуєте ваші дорогоцінні камені із загальнодоступного сховища GitHub, ви можете скористатися скороченням
gem 'nokogiri', github: 'tenderlove/nokogiri'
Також ви можете зробити gem install username-projectname -s http://gems.github.com
Додайте у свій Gemfile наступне:
gem 'example', :git => 'git://github.com/example.git'
Ви також можете додати параметри ref, гілки та тегів,
Наприклад, якщо ви хочете завантажити з певної гілки:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
Потім запустіть:
bundle install
Якщо ви встановите за допомогою bundler, як це запропоновано gryzzly, і дорогоцінний камінь створює двійковий файл, тоді переконайтеся, що ви запускаєте його, bundle exec mygembinary
оскільки дорогоцінний камінь зберігається в каталозі постачальників, який не видно на звичайному шляху до дорогоцінного каменю.
На новій машині Linux вам також потрібно встановити git
. Пакет використовує це за кадром.
require "bundler" Bundler.setup(:default)
Див Bundler документи для отримання більш докладної інформації