- Linux gem что это
- Contents
- Installing Ruby
- Multiple versions
- Documentation
- JRuby
- RubyGems
- Setup
- Usage
- Installing gems system-wide
- Bundler
- Managing RubyGems using pacman
- Quarry
- Библиотеки
- Поиск библиотек
- Еще пару слов о RubyGems
- Поиск среди доступных гемов
- Установка гема
- Список всех гемов
- Документация
- Знакомство с Gem. Часть первая
- Введение
- С чего начать
- Постойте-ка
- All over the world
- Стопэ!
- Заключение
- Bundler — менеджер для управления gem’ами
- Что такое Bundler?
- Установка
- Конфигурирование
- Использование
Linux gem что это
Ruby is a dynamic, interpreted, open source programming language with a focus on simplicity and productivity.
Contents
Installing Ruby
For the latest version of Ruby, install the ruby package.
To install IRB, install the ruby-irb package.
Multiple versions
If you want to run multiple versions on the same system (e.g. 2.0.0-p0 and 1.9.3-p392), the easiest way is to use RVM, chruby AUR , rbenv, asdf-vm AUR .
Documentation
To make documentation available through the ri command-line tool, install ruby-rdoc and ruby-docs for the documentation itself. You can then query the docs with: ri Array , ri Array.pop etc. (much like man-pages)
JRuby
The Java implementation of Ruby, JRuby can be installed with the jruby package.
RubyGems
RubyGems is a package manager for Ruby modules (called gems), somewhat comparable to what pacman is to Arch Linux. It can be installed with the rubygems package, which is a dependency of ruby .
Setup
By default in Arch Linux, when running gem , gems are installed per-user (into
/.local/share/gem/ruby/ ), instead of system-wide (into /usr/lib/ruby/gems/ ). This is considered the best way to manage gems on Arch, because otherwise they might interfere with gems installed by Pacman.
The recommended way to setup that is by manually specifying your $GEM_HOME , which then can be appended to your $PATH environment variable in order to allow RubyGems binaries to be executed:
This is required for executable gems to work without typing out the full location, although libraries will work without having to modify your path.
Use gem env to view the current RubyGems environment:
Usage
To see what gems are installed:
To get information about a gem:
By default, gem list and gem spec use the —local option, which forces gem to search only the local system. This can be overridden with the —remote flag. Thus, to search for the mysql2 gem:
To install a gem:
The process can be sped up somewhat if you do not need local documentation:
To update all installed gems:
Installing gems system-wide
Gems can be installed system wide by running the gem command as root, appended with the —no-user-install flag. This flag can be set as default by replacing —user-install by —no-user-install in /etc/gemrc (system-wide) or
/.gemrc (per-user, overrides system-wide).
Bundler solves these problems to some extent by packaging gems into your application. See the section below on using bundler.
Bundler
Bundler allows you to specify which gems your application depends upon, and optionally which version those gems should be. Once this specification is in place, Bundler installs all required gems (including the full gem dependency tree) and logs the results for later inspection. By default, Bundler installs gems into a shared location, but they can also be installed directly into your application. When your application is run, Bundler provides the correct version of each gem, even if multiple versions of each gem have been installed. This requires a little bit of work: applications should be called with bundle exec , and two lines of boilerplate code must be placed in your application’s main executable.
To install Bundler:
To start a new bundle:
Then edit Gemfile in the current directory (created by bundle init) and list your required gems:
Run the following to install gems into GEM_HOME :
Alternatively, run the following to install gems to .bundle in the working directory:
Do not forget to edit your main executable:
Finally, run your program:
Managing RubyGems using pacman
Instead of managing gems with gem , you can use pacman, or an AUR helper. Ruby packages follow the naming convention ruby-gemname.
This option provides the following advantages:
- Gems are updated along with the rest of your system.
- Installed gems are available system-wide, instead of being available only to the user who installed them.
Quarry
Quarry is an opensource tool (GPL3 license) that allows to maintain rubygems binary repository for Arch Linux, as an easier alternative to building packages manually from the AUR. The source is hosted at github.
The repository is maintained by Arch developer anatolik at https://pkgbuild.com/
anatolik/quarry/, and is currently for the x86_64 architecture only. It contains many popular gems and new gems can be added upon request.
Then install required gem pacman -S ruby-$gemname (as the root user).
Источник
Библиотеки
Как и в большинстве языков программирования, в Ruby можно использовать широкий набор сторонних библиотек.
Большая часть из них реализована в форме гема. RubyGems – менеджер пакетов Ruby, созданный для упрощения процесса создания, распространения и установки библиотек (в каком-то смысле это распределенный пакетный менеджер, похожий, скажем, на apt-get , но нацеленный на Ruby приложения). С версии Ruby 1.9 RubyGems используются по умолчанию, хотя для предыдущих версий его нужно было устанавливать вручную.
Некоторые другие библиотеки реализованы как архивы (.zip или .tar.gz) исходного кода. Процесс установки может различаться, обычно файл README или INSTALL содержит инструкции по установке.
Давайте взглянем на поиск библиотек и установку их для дальнейшего использования.
Поиск библиотек
Основное место, где хранятся библиотеки — RubyGems.org, предоставляет библиотеки Ruby в виде гемов. Вы можете поискать прямо на сайте или воспользоваться командой gem .
Используя команду gem search -r , вы можете проверить репозиторий RubyGems. Например, gem search -r rails вернет список относящихся к Rails библиотек. С опцией —local ( -l ) вы можете произвести локальный поиск среди установленных у вас гемов. Чтобы установить гем, используйте gem install [gem] . Просмотреть список установленных библиотек можно командой gem list . Для более подробной информации о команде gem смотрите ниже или почитайте документацию RubyGems.
Также есть и другие источники библиотек. RubyForge был популярным домом для библиотек Ruby, но в последний год возросла популярность GitHub, как одного из главных хранилищ исходного кода приложений околорубиевой тематики. Намного чаще сейчас исходный код гема размещен на GitHub и сам гем опубликован на RubyGems.org.
The Ruby Toolbox это проект, который позволяет легче исследовать проекты на Ruby с открытым исходным кодом. Там есть категории для различных проблем разработки, содержащие большое количество информации о проектах, вроде даты релиза и активности разработчиков, а также зависимости и рейтинг проекта, основанный на его популярности на RubyGems.org и GitHub.com. Поиск поможет быстрей найти то, что вы ищете.
Еще пару слов о RubyGems
Это был краткий обзор команды gem для вашего повседневного использования. Более подробная документация также доступна, она покрывает все аспекты данной пакетной системы.
Поиск среди доступных гемов
Команда search может быть использована для поиска гемов по названию. Гемы, название которых начинаются с заданной строки, будут отображены в результатах. Например, чтобы найти гемы, относящиеся к “html”:
Флаг —remote / -r показывает, что мы хотим проверить официальный RubyGems.org репозиторий (поведение по-умолчанию). С флагом —local / -l вы можете совершить локальный поиск среди установленных у вас гемов.
Установка гема
Когда вы знаете, какой гем вы желаете установить, например, популярные Rails:
Вы даже можете установить определенную версию библиотеки. Просто используйте флаг —version / -v :
Список всех гемов
Для просмотра всех локально установленных гемов:
Чтобы получить (очень длинный) список всех гемов, доступных на RubyGems.org:
Документация
Документация доступна в вашем терминале:
Например, gem help commands очень полезна, выводит список всех подкоманд команды gem .
Источник
Знакомство с Gem. Часть первая
Доброго времени суток!
Введение
Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem‘ы. Итак, давайте познакомимся с ним поближе.
С чего начать
Для начала неплохо было бы отыскать запылившийся файлик с расширением .rb. Нашли? Ok, двигаемся дальше.
Далее нам необходимо создать файл с названием hello-world.gemspec, где, как вы, вероятно, догадались hello-world — имя вашего будущего gem’a.
Следующим нашим шагом будет заполнение этого самого файла (если так можно выразиться, файла-спецификации). Содержание его должно выглядеть следующим образом:
Отлично, но собирать то нам пока нечего! Почему? Мы забыли создать helloworld.rb. Давайте немедленно исправим нашу оплошность:
Фуууух! Теперь, когда мы имеем минимальный набор файлов, мы можем приступить к сборке нашего с вами gem’a. Для его сборки мы должны использовать команду
В случае удачного выполнения данной операции на выходе мы получим файл с название hello-world-1.0.gem. Всё, наш gem собран.
Постойте-ка
Вы хотите поделиться своим gem’ом с другими людьми? Если да, то вы запросто можете это сделать следующей командой:
После выполнения этой команды мы должны увидеть следующее:
Увы, мы этого не увидим. Знаете почему? Потому, что мы с вами ещё не зарегистрированы на RubyGems. Сделать это можно здесь.
Теперь повторите команду push и всё будет ok.
All over the world
Теперь наш gem сможет установить любой рубист (хоть из Австралии), выполнив команду
После того, как установка будет завершена напишем следующий код и выполним его:
В результате чего мы увидим заветное в нашей консоли.
Стопэ!
Вообще-то мы наследили на RubyGems. Вы же об этом не забыли? Удалим наш gem следующей командой:
Да и из нашего списка gem’ов можно удалить. Поигрались и хватит!
Заключение
Вот и сказочке конец, а кто слушал — молодец.
Сегодня мы с вами познакомились с поистине замечательным инструментом по имени gem. Теперь вы знаете, что если что-то случиться, gem обязательно придёт к вам на помощь. А Чип, Чип, Чип… И Дейл к нам спешат.
Источник
Bundler — менеджер для управления gem’ами
Что такое Bundler?
Установка
Устанавливаем эту утилиту как любой другой gem:
gem install bundler
Для Rails 3.0 ничего больше делать не нужно, потому как он используется по умолчанию. А для Rails.2.3.x нужно выполнить следующие шаги. C начала добавить ниже приведенный код в boot.rb перед Rails.boot!:
class Rails::Boot
def run
load_initializer
extend_environment
Rails::Initializer.run(:set_load_path)
end
def extend_environment
Rails::Initializer.class_eval do
old_load = instance_method(:load_environment)
define_method(:load_environment) do
Bundler.require :default, Rails.env
old_load.bind(self).call
end
end
end
end
Далее создать файл preinitializer.rb в директории config/initializers с содержимым:
begin
# Require the preresolved locked set of gems.
require File.expand_path(‘../../.bundle/environment’, __FILE__)
rescue LoadError
# Fallback on doing the resolve at runtime.
require «rubygems»
require «bundler»
Bundler.setup
end
Конфигурирование
После создании нового Rails приложения в версии 3.0 в корне проекта уже существует файл Gemfile, который является конфигом для Bundler’а. Для версий Rails 2.3.x его нужно создать самому. Для этого нужно перейти в директорию проекта и выполнить команду:
В этом файле задаются все необходимые зависимости gem’ов. Рассмотрим какие именно возможности предоставляет данный конфиг файл.
Сперва задается ресурс откуда по умолчанию будут устанавливаться gem’ы:
Как уже многие знают ресурс gemcutter.org становится неким стандартом для хранения gem’ов, поэтому при создании конфига именно этот ресурс будет установлен по умолчанию. Но вы легко можете его заменить допустим на gems.github.com или добавить столько ресурсов сколько вам нужно:
source ‘http://gemcutter.org’
source ‘http://gems.github.com’
source ‘http://gems.rubyforge.org’
Далее уже идет список gem’ом которые нужны для работы приложения:
gem ‘will_paginate’
gem ‘oauth’
gem ‘money’
Здесь нужно отметить, что gem’ы можно объединять в группы и далее устанавливать только определенные группы:
group :development do
gem ‘rspec’
gem ‘populator’
gem ‘faker’
end
group :production do
gem ‘memcache-client’
end
Доступна и другая форма объединения gem’ов в группы:
gem ‘rspec’, :group => ‘development’
gem ‘populator’, :group => ‘development’
gem ‘memcache-client’, :group => ‘production’
По умолчанию все gem’ы включаются в группу default.
Если нужна именно конкретная версия gem’а то можно задать ее номер:
gem «rack», «1.0.1»
gem «rails», «>=2.3.2»
Есть возможность задать имя файла который будет подключен во время подключения библиотеки Bundler’ом. По умолчанию это имя gem’а поэтому в большинстве случаев ничего задавать не нужно. Опция которая позволяет задать имя файла для подключения называется require, используется она следующим способом:
gem ‘gchartrb’, :require => ‘google_chart’
В случае если нужно указать git репозитория для скачивания gem’а то нужно использовать опцию git:
gem ‘will_paginate’, :git => ‘git://github.com/mislav/will_paginate.git’
Использование
Как тока задали все нужные gem’ы, нужно выполнить команду:
Эта команда решит все зависимости и установит недостающие gem’ы. При этом если выполнить:
То вы там не увидите gem’ы которые были установлены с помощью bundler’а. Все установленные gem’ы находится в директории
/.bundler. Откуда он их и будет подключать.
Посмотреть список установленных gem’ов можно с помощью команды:
Если нужный gem уже установлен в системе, то для него будет создана ссылка. После каждого изменения файла Gemfile, нужно выполнить команду install. Папка
/.bundler не является обязательной, если вы хотите установить gem’ы в другую папку, это легко сделать:
bundle install ./vendor/bundler_gems
Если помните, то в конфиг файле есть возможность включать все gem’ы в группы, так вот при установки можно указать какие группы gem’ов не устанавливать:
bundle install —without test
Допустим зачем устанавливать gem’ы на production server который нужны только для тестирования.
Если gem имеет исполняемые файлы, то их можно запускать след образом:
bundle exec cassandra_helper cassandra
Как только вы закончили разработку приложения, нужно заблокировать изменение Gemfile:
После выполнения данной команды создастся файл Gemfile.lock, который будет содержать все зависимости на основе установленых gem’ов у вас на компьютере. Это делается для того чтоб зафиксировать версии gem’ов при которых приложение работает корректно. Данный файл будет иметь следующий вид:
—
dependencies:
faker:
group:
— :development
version: «>= 0»
memcache-client:
group:
— :test
version: «>= 0»
sqlite3-ruby:
group:
— :default
version: «>= 0»
oauth:
group:
— :default
version: «>= 0»
specs:
— stomp:
version: 1.1.4
— populator:
version: 0.2.5
— json:
version: 1.2.0
— thrift:
version: 0.2.0
— thrift_client:
version: 0.3.3
— rspec:
version: 1.3.0
— ruby-hmac:
version: 0.4.0
— oauth:
version: 0.3.6
hash: 0ac3c8666943a1e2294be2851316d83791479451
sources:
— Rubygems:
uri: gemcutter.org
При этом если вы измените Gemfile и попробуете выполнить команду install, то установка не будет произведена, так как gem’ы заблокированы. Для того чтоб установить новые gem’ы уже в залоченном состоянии, выполняется команда install с параметром relockinstall stall —relock, выполняется командак л нужно заблокировать изминение:
bundle install —relock
В bundler’е предусмотрена возможность упаковки gem’ов:
После выполнения данной команды в директории vendor/cache будут сохранены все нужные gem’ы, впоследствии чего установка gem’ов будет происходить именно с этой директории. Эта опция будет полезна только для тех у кого нет возможности на production server устанавливать gem’ы с публичных репозиториев.
Вот и все, что я хотел вам рассказать об этой удобной утилите. Попробуйте поработать с ней хотя бы час и я думаю, она вам понравится.
Источник