Я хотел бы установить gem из последней версии GitHub.
Как мне это сделать?
Если вы используете bundler, вам нужно добавить что-то вроде этого в ваш Gemfile:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
И в случае, если есть .gemspec
файл, он должен быть в состоянии получить и установить гем при запуске bundle install
.
UPD. Как указано в комментариях, для правильной работы Bundler вам также необходимо добавить следующее config.ru
:
require "bundler"
Bundler.setup(:default)
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.htmlgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<-:tag => ''
частьхорошо, это зависит от проекта. Некоторые проекты имеют файл * .gemspec в своем корневом каталоге. В этом случае это будет
Другие проекты имеют задачу rake, называемую «gem» или «build» или что-то в этом роде, в этом случае вам нужно вызвать «rake», но это зависит от проекта.
В обоих случаях вам нужно скачать исходный код.
источник
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
должен сказать вам, где конкретный драгоценный камень, это не работает для вас?Попробуйте gem specific_install, который позволяет вам установить gem из его репозитория github (например, 'edge') или из произвольного URL. Очень полезно для разветвления драгоценных камней и взлома их на нескольких машинах и тому подобное.
например
источник
specific_install
жемчужине?ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Звучит очень круто, но я не буду вдаваться в подробности. Просто хотел опубликовать, что это не сработало для меня на случай, если кто-то еще собирается сделать это, основываясь на рекомендациях SO.Bundler позволяет использовать гемы непосредственно из репозиториев git. В вашем Gemfile:
Для получения дополнительной информации см. Https://bundler.io/v2.0/guides/git.html.
источник
bundle
такие git-gem-зависимости будут устанавливаться не глобально, а в домашнем каталоге текущего пользователя. Пассажир будет запускать ruby как пользователь вашего веб-сервера (напримерwww-data
), у которого нет доступа к этому каталогу, и поэтому этот «git-gem» не будет загружен. Вы получите ошибку... is not yet checked out. Run bundle install first
.OBSOLETE (см. Комментарии)
Если проект от github и содержится в списке на http://gems.github.com/list.html , то вы можете просто добавить репозиторий github к источникам gems, чтобы установить его:
источник
Если вы получаете свои драгоценные камни из общедоступного репозитория GitHub, вы можете использовать сокращение
источник
Также вы можете сделать
gem install username-projectname -s http://gems.github.com
источник
В вашем Gemfile добавьте следующее:
Вы также можете добавить ссылки, параметры ветки и теги,
Например, если вы хотите скачать из определенной ветки:
Затем запустите:
источник
Если вы устанавливаете с использованием bundler в соответствии с предложением gryzzly, а гем создает двоичный файл, убедитесь, что вы запускаете его,
bundle exec mygembinary
поскольку гем хранится в каталоге компоновщика, который не виден в обычном пути к гему.источник
На новую Linux-машину вам также нужно установить
git
. Bundle использует это за кулисами.источник