From: Mikhail Yakshin <greycat@altlinux.org>
To: ALT Linux Sisyphus discussion list <sisyphus@altlinux.ru>
Subject: [sisyphus] I: rubygems and ruby-rails
Date: Thu, 01 Sep 2005 01:36:28 +0400
Message-ID: <431622DC.5080307@altlinux.org> (raw)
Приветствую!
Во-первых, хочу сказать, что набор из:
rubygems-0.8.11-alt1.src.rpm
ruby-actionmailer-1.0.1-alt1.src.rpm
ruby-actionpack-1.9.1-alt1.src.rpm
ruby-actionwebservice-0.8.1-alt1.src.rpm
ruby-activerecord-1.11.1-alt1.src.rpm
ruby-activesupport-1.1.1-alt1.src.rpm
ruby-rake-0.5.4-alt1.src.rpm
ruby-rails-0.13.1-alt1.src.rpm
ушел в инкаминг. Прошу всех заинтересованных ставить и тестировать. У
меня все работает очень неплохо - вплоть до того, что поставленные из
пакетов части gem'ов видятся как настоящие gem'ы и подлежат обработке
(удалению, обновлению, проходят все проверки и т.п.) штатной утилитой
менджера пакетов gem.
Во-вторых, хочу представить общественности примерный драфт
rubygems-полиси для упаковки gem'ов в ALT:
=========================================================================
Преамбула
RubyGems - система упаковки, установки и доставки приложений для Ruby
(примерно аналогичная таким системам, как CPAN для Perl или PEAR для
PHP). Приложения и библиотеки ruby распространяются в виде одного файла
.gem - одного пакета, готового для инсталляции. Во многом - gem - это
мультиплаформенный аналог rpm с вещами, специфичными для Ruby. У пакетов
есть все те же атрибуты: имя, версии, зависимости, summary, description
и т.п. Есть исходники и спек, с помощью которых собирается сам gem.
Примерно такая роль, какую в "большой" операционной системе выполяет
apt, отведена здесь утилите gem (доступна в пакете rubygems). Она умеет
все то же самое - использовать удаленные репозитарии, скачивать оттуда
gem-пакеты'ы, устанавливать их, обновлять, следить за зависимостями.
Для использования внутри систем ALT все gem'ы предполагается опакечивать
в rpm-пакеты для легкой инсталляции средствами rpm и apt.
Требования, предъявляемые к пакету
Для опакечивания gem'ов рекомендуется пользоваться утилитой gem2spec.
Она создает шаблонный спек, который при вменяемом исходном gem'е
практически не приходится править - весь процесс инсталляции возьмет на
себя утилита gem и типовой макрос %gem_install. Единственное условие
работы этого макроса - определенность %gem_name. Рассмотрим пример спека:
# Обязательно нужно задать имя исходного gem'а
%define gem_name rake
# Пакеты с gem'ами должны называться именно так: ruby-%gem_name
Name: ruby-%gem_name
# Версия должна соответствовать версии gem'а
Version: 0.5.4
Release: alt1
# Summary и description утилита gem2spec вытащит сама из gem-спека
Summary: Ruby based make-like utility
# А вот лицензия в gem-спеках не задается, придется проставить вручную
License: MIT
Group: Development/Ruby
# Url вытащится автоматически
Url: http://rake.rubyforge.org
Source: %gem_name-%version.gem
# Зависимости тоже вытащатся автоматически из gem'а
BuildRequires: ruby >= 1.8.1-alt9, libruby-devel, rubygems >= 0.8.11
Requires: ruby >= 1.8.1-alt9, libruby-devel, rubygems >= 0.8.11
%description
Rake is a Make-like program implemented in Ruby. Tasks and dependencies
are specified in standard Ruby syntax.
# Если пакет - библиотека, которая идет с документацией rdoc, то
# необходимо создать подпакет doc. По умолчанию он создается, если он не
# нужен - удалите все упоминания о нем.
%package doc
Summary: Documentation files for %gem_name
Group: Documentation
%description doc
Documentation files for %gem_name
# Центральное место всей магии установки. Распаковывает gem'ы в нужное
# место, вытаскивает, если нужны, какие-то внешние скрипты в /usr/bin,
# кладет rdoc-документацию в %buildroot/%name-%version/rdoc.
%install
%gem_install
# В случае, если пакет не порождает внешних скриптов в /usr/bin, то
# умоминание %_bindir/* нужно удалить.
%files
%rubygemsdir/*
%_bindir/*
# Если нет rdoc-документации, эти строки нужно удалить.
%files doc
%doc %name-%version/rdoc
=========================================================================
Утилиту gem2spec я думаю выложить каким-то образом отдельно. Предложите
название пакета? Или может быть все-таки лучше включить ее куда-нибудь
сразу?..
--
WBR, Mikhail Yakshin AKA GreyCat
ALT Linux [http://www.altlinux.ru] [xmpp:greycat@altlinux.org]
next reply other threads:[~2005-08-31 21:36 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-31 21:36 Mikhail Yakshin [this message]
2005-09-01 5:43 ` Alexey I.Froloff
2005-09-01 6:01 ` Mikhail Yakshin
2005-09-01 7:07 ` Alexey I.Froloff
2005-09-01 9:31 ` Mikhail Yakshin
2005-09-01 9:42 ` Alexey I.Froloff
2005-09-01 10:17 ` Mikhail Yakshin
2005-09-01 10:37 ` [sisyphus] " Michael Shigorin
2005-09-01 10:52 ` [sisyphus] " Alexey I.Froloff
2005-09-01 11:11 ` Alexey I.Froloff
2005-09-01 8:52 ` [sisyphus] " Michael Shigorin
2005-09-01 9:26 ` Alexey I.Froloff
2005-09-01 9:30 ` Michael Shigorin
2005-09-01 10:02 ` Mikhail Yakshin
2005-09-01 11:45 ` [sisyphus] " Kirill A.Shutemov
2005-09-01 11:59 ` Alexey I.Froloff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=431622DC.5080307@altlinux.org \
--to=greycat@altlinux.org \
--cc=sisyphus@altlinux.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git