Как я могу установить местный драгоценный камень?

Ответы:

288

Да, когда вы это сделаете gem install, он сначала будет искать текущий каталог, поэтому, если ваш файл .gem будет там, он его подберет. Я нашел его в справочнике по драгоценным камням , который также может пригодиться вам:

gem install установит названный гем. Он попытается выполнить локальную установку (т. Е. Файл .gem в текущем каталоге), а если это не удастся, он попытается загрузить и установить самую последнюю версию нужного вам гема.

Крис Банч
источник
2
Ссылка заканчивается в бесконечных перенаправлениях :(
Айн Тохври
2
Регистрация, чтобы сказать, что это работает для меня в 2019 году.
Чарльз Вуд
1
У меня есть, Gemfileно не .gemфайл. Так что же это за .gemфайл? Что это должно содержать? - Подожди, я вижу. Вы имеете в виду gem-name.gemфайл. Помните, что в Unix вполне нормально иметь файл, начинающийся с '.' так что лучше разобраться.
Мартин
Я могу подтвердить от будущего 2020 года, ссылка работает для меня. Если это не сработает в далеком будущем, вот снимок
Джед Берк
329

Также вы можете использовать gem install --local path_to_gem/filename.gem

Это пропустит обычное сканирование хранилища гемов, которое происходит, когда вы уходите --local.

Вы можете найти другую магию с gem install --help.

JasonTrue
источник
Я загружаю драгоценный камень, такой как rubygems в формате почтового индекса. Так что здесь нет файла .gem. Как мне установить это с локального? Спасибо.
Эрран Морад
3
@ BoratSagdiyev, почтовый файл не является драгоценным камнем. Как и большинство zip-файлов, вам нужно распаковать его, прежде чем вы сможете с ним многое сделать. Если он содержит гем, вы можете использовать gem install в извлеченном файле .gem. Я не помню внутренности формата драгоценного камня; возможно, это может быть просто zip-файл со специальным заголовком, но rubygems не распознает zip-файлы как таковые.
JasonTrue
62

Вы также можете использовать полное имя файла для вашего файла gem:

gem install /full/path/to/your.gem

это работает также - это, вероятно, самый простой способ

lesmana
источник
38

Если вы создаете свои драгоценные камни с помощью bundler:

# do this in the proper directory
bundle gem foobar

Вы можете установить их с помощью rake после того, как они написаны:

# cd into your gem directory
rake install

Скорее всего, ваш загруженный драгоценный камень будет знать rake installтоже.

Борис Стиницкий
источник
3
это кажется лучшим современным ответом. принят ответ от 8 лет назад
sixty4bit
14

если вы загружаете файл проекта с github или другого хост-сайта scm, сначала используйте gem build для сборки проекта, чтобы вы могли получить файл what.gem в текущем каталоге. Тогда установите его!

hechen0
источник
13

Если вы хотите работать над локально измененным форком гема, лучший способ сделать это

gem 'pry', path: './pry'

в Gemfile.

... где ./pryбудет клон вашего хранилища. Просто запустите bundle installодин раз, и любые изменения в источниках драгоценных камней, которые вы делаете, будут немедленно отражены. С gem install pry/pry.gemисточниками все еще перемещаются, GEM_PATHи вам всегда придется запускать оба bundle gem pryи gem updateтестировать.

Матиас Винкельманн
источник
5

Идите по пути, где находится драгоценный камень, и назовите gem install -l gemname.gem

leobelizquierdo
источник
0

Ну, это моя СУХАЯ установка:

  1. Посмотрите на компьютер с уже установленными гемами, необходимыми в каталоге кеша (по умолчанию: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache )
  2. Скопируйте все « *.gemsфайлы» на компьютер без драгоценных камней в собственном месте кеша драгоценных камней (по умолчанию тот же путь патрона первого шага:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache )
  3. В консоли находиться в кэше драгоценных камней (CD [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) и запустить gem install anygemwithdependencieshere(на примере cucumber-2.99.0)

Это СУХО, потому что после установки любого драгоценного камня, по умолчанию rubygems помещает файл драгоценного камня в каталог драгоценного камня кэша и не имеет смысла дублировать эти файлы, это будет проще, если вы хотите, чтобы оба компьютера имели одинаковые версии (или были заблокированы параноичными правилами безопасности: v)

Редактировать: в некоторых версиях ruby ​​или rubygems, они не работают и выдают оповещения или ошибки, вы можете поместить драгоценные камни в другое место, но не получить DRY, другой альтернативой является использование встроенной команды запуска gem serverи добавление url localhost в источники драгоценных камней, более информация в: https://guides.rubygems.org/run-your-own-gem-server/

Даниэль Антонио Нуньес Кархуайо
источник
0

Вы можете скачать драгоценные камни с https://rubygems.org/gems/ или собрать свой местный драгоценный камень через связку и стойку.

например:

  • комплект драгоценного камня yourGemName
  • грабли установить

Позаботьтесь об установке зависимостей перед установкой реальных гемов.

  • gem install --local /pathToFolder/xxx-2.6.1.gem

Примечание: если вы используете fluentd td-agent и ruby ​​на одной машине. Пожалуйста, убедитесь, что используете команду td-agent-td-agent-gem. тд-агент имеет собственный рубин.

Винаяк Мишра
источник