Forum: Italian Ruby user group uso delle gemme in rails

Posted by Msan Msan (msan)
on 2009-06-08 09:52
(Received via mailing list)
L'installazione di rails porta con se alcune gemme quali activerecord,
actionmailer, ecc.
Tali gemme vengono utilizzare dall'ambiente, diciamo, di default.
Per tutte le altre gemme, per poterle utilizzare, e' invece sempre
necessario inserire tale direttiva config.gem ".....", :lib =>
"........." nell'environment.rb?
Posted by Luca Guidi (Guest)
on 2009-06-08 10:29
(Received via mailing list)
Quelle utilizzate in tutti gli environments vanno in quel file,
altrimenti, dovresti usare i file specifici che trovi in
config/environments. Ad esempio io configuro le gemme per il testing
(rspec, webrat, cucumber, etc..) in test.rb sotto quel path.

Ricordati di eseguire i vari Rake task dopo il deploy e prima che
l'applicazione parta.

rake -T gems

ti indica in modo dettagliato le varie differenze.

Luca
Posted by Msan Msan (msan)
on 2009-06-08 10:48
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Quelle utilizzate in tutti gli environments vanno in quel file,
> altrimenti, dovresti usare i file specifici che trovi in
> config/environments. Ad esempio io configuro le gemme per il testing
> (rspec, webrat, cucumber, etc..) in test.rb sotto quel path.

Si ok comunque ogni gemma che devo utilizzare che non faccia parte del
core di rails va indicata in envoronment o in uno dei files specifici
per l'ambiente.
>
> Ricordati di eseguire i vari Rake task dopo il deploy e prima che
> l'applicazione parta.
>

Ehm, scusa l'ignoranza ma questo non l'ho capito.
Quali sarebbero i rake task da eseguire?

> rake -T gems

Mi dice solo:

Missing the Rails 2.3.2 gem. Please `gem install -v=2.3.2 rails`,
update your RAILS_GEM_VERSION setting in config/environment.rb for the
Rails version you do have installed, or comment out RAILS_GEM_VERSION
to use the latest version installed.
Posted by Luca Guidi (Guest)
on 2009-06-08 11:10
(Received via mailing list)
Mauro wrote:
> Ehm, scusa l'ignoranza ma questo non l'ho capito.
> Quali sarebbero i rake task da eseguire?
>
Di solito rake gems:install && rake gems:unpack, la prima serve ad
installare nel sistema le gemme configurate, mentre la seconda le
scompatta in vendor/gems.

Un task addizionale da eseguire, potrebbe essere gems:build, nel caso in
cui tu abbia dipendenze verso gemme che hanno estensioni native in C.


>> rake -T gems
>
> Mi dice solo:
>
> Missing the Rails 2.3.2 gem. Please `gem install -v=2.3.2 rails`,
> update your RAILS_GEM_VERSION setting in config/environment.rb for the
> Rails version you do have installed, or comment out RAILS_GEM_VERSION
> to use the latest version installed.
Questo è un problema di installazione della tua app, e non riguarda il
topic. Riesci ad eseguire correttamente script/about?

Luca
Posted by Msan Msan (msan)
on 2009-06-08 11:19
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Mauro wrote:
>> Ehm, scusa l'ignoranza ma questo non l'ho capito.
>> Quali sarebbero i rake task da eseguire?
>>
> Di solito rake gems:install && rake gems:unpack, la prima serve ad
> installare nel sistema le gemme configurate, mentre la seconda le
> scompatta in vendor/gems.
>
> Un task addizionale da eseguire, potrebbe essere gems:build, nel caso in
> cui tu abbia dipendenze verso gemme che hanno estensioni native in C.

Ho capito.
Io di solito le gemme le installo col comando gem, dopodiche' le
configuro in environment.rb.
E' scorretto?

> topic. Riesci ad eseguire correttamente script/about?
Eccolo:

About your application's environment
Ruby version              1.8.7 (x86_64-linux)
RubyGems version          1.3.4
Rack version              1.0 bundled
Rails version             2.3.2
Active Record version     2.3.2
Action Pack version       2.3.2
Active Resource version   2.3.2
Action Mailer version     2.3.2
Active Support version    2.3.2
Application root          /home/user/NetBeansProjects/LDAPMan
Environment               development
Database adapter          sqlite3
Database schema version   0

Sembra ok.
Posted by Luca Guidi (Guest)
on 2009-06-08 11:28
(Received via mailing list)
Mauro wrote:
> Ho capito.
> Io di solito le gemme le installo col comando gem, dopodiche' le
> configuro in environment.rb.
> E' scorretto?
Non è scorretto quei task eseguono automaticamente le stesse operazioni,
quindi i metodi si equivalgono.

Una domanda riguardante la tua installazione, dov'è il tuo codice di
Rails? E' installato come gemma a livello di sistema o solo presente
nella directory vendor del progetto?

Luca
Posted by Msan Msan (msan)
on 2009-06-08 11:32
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
>
> Una domanda riguardante la tua installazione, dov'è il tuo codice di
> Rails? E' installato come gemma a livello di sistema o solo presente
> nella directory vendor del progetto?

Rails e' installato come gemma a livello di sistema.
Posted by Luca Guidi (Guest)
on 2009-06-08 11:45
(Received via mailing list)
Mauro wrote:
> Rails e' installato come gemma a livello di sistema.

Potresti per favore postare la configurazione delle tue gemme:
environment.rb e/o config/environments.

Vorrei controllare, sta per essere rilasciato Rails 2.3.3, una
correttiva e ci sono solo 3 tickets da risolvere prima che questo
avvenga. Se c'è un bug siamo ancora in tempo. :)

Luca
Posted by Msan Msan (msan)
on 2009-06-08 11:54
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Mauro wrote:
>> Rails e' installato come gemma a livello di sistema.
>
> Potresti per favore postare la configurazione delle tue gemme:
> environment.rb e/o config/environments.
>
> Vorrei controllare, sta per essere rilasciato Rails 2.3.3, una
> correttiva e ci sono solo 3 tickets da risolvere prima che questo
> avvenga. Se c'è un bug siamo ancora in tempo. :)

Questo e' environment.rb

# Be sure to restart your server when you modify this file

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION

# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
  # Settings in config/environments/* take precedence over those 
specified here.
  # Application configuration should go into files in 
config/initializers
  # -- all .rb files in that directory are automatically loaded.

  # Add additional load paths for your own custom dirs
  # config.load_paths += %W( #{RAILS_ROOT}/extras )

  # Specify gems that this application depends on and have them
installed with rake gems:install
  # config.gem "bj"
  # config.gem "hpricot", :version => '0.6', :source =>
"http://code.whytheluckystiff.net"
  # config.gem "sqlite3-ruby", :lib => "sqlite3"
  # config.gem "aws-s3", :lib => "aws/s3"
  config.gem "activeldap", :lib => "active_ldap"

  # Only load the plugins named here, in the order given (default is
alphabetical).
  # :all can be used as a placeholder for all plugins not explicitly 
named
  # config.plugins = [ :exception_notification, :ssl_requirement, :all ]

  # Skip frameworks you're not going to use. To use Rails without a 
database,
  # you must remove the Active Record framework.
  # config.frameworks -= [ :active_record, :active_resource, 
:action_mailer ]

  # Activate observers that should always be running
  # config.active_record.observers = :cacher, :garbage_collector,
:forum_observer

  # Set Time.zone default to the specified zone and make Active Record
auto-convert to this zone.
  # Run "rake -D time" for a list of tasks for finding time zone names.
  config.time_zone = 'UTC'

  # The default locale is :en and all translations from
config/locales/*.rb,yml are auto loaded.
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', 
'*.{rb,yml}')]
  # config.i18n.default_locale = :de
end

Ti servono anche gli altri?
Posted by Luca Guidi (Guest)
on 2009-06-08 11:59
(Received via mailing list)
Mauro wrote:
> Ti servono anche gli altri?
Solo se hai configurato gemme anche negli altri file.
Posted by Msan Msan (msan)
on 2009-06-08 12:00
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Mauro wrote:
>> Ti servono anche gli altri?
> Solo se hai configurato gemme anche negli altri file.

Allora no, la gemma e' solo nel file che ho postato.
Posted by Luca Guidi (Guest)
on 2009-06-08 12:13
(Received via mailing list)
Ho controllato:

rails test_gems
cd test_gems
rake -T gems # OK
# ho configurato la gem
rake -T gems # OK
# l'ho installata (sudo gem install activeldap)
rake -T gems # OK
# l'ho scompattata (sudo rake gems:unpack)
rake -T gems # OK

Tutto funziona, ho notato che l'unica differenza tra i due ambienti è la
versione di Ruby, la mia 
è:
ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]

la tua?

Luca
Posted by Msan Msan (msan)
on 2009-06-08 12:33
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> rake -T gems # OK
Io ho fatto rails test_gems
cd test_gems
rake -T gems e mi dice sempre

Missing the Rails 2.3.2 gem. Please `gem install -v=2.3.2 rails`,
update your RAILS_GEM_VERSION setting in config/environment.rb for the
Rails version you do have installed, or comment out RAILS_GEM_VERSION
to use the latest version installed

questo succede anche se commento RAILS_GEM_VERSION in environment.rb

>
> Tutto funziona, ho notato che l'unica differenza tra i due ambienti è la
> versione di Ruby, la mia è:
>
> ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
>
> la tua?

ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
Posted by Msan Msan (msan)
on 2009-06-08 12:46
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Ho controllato:
>
> rails test_gems
> cd test_gems
> rake -T gems # OK
> # ho configurato la gem
> rake -T gems # OK
> # l'ho installata (sudo gem install activeldap)
> rake -T gems # OK
> # l'ho scompattata (sudo rake gems:unpack)

Scusa, una volta installata con sudo gem install.....che bisogno c'e'
di scompattarla? Io non lo faccio mai.
Posted by Luca Mearelli (Guest)
on 2009-06-08 13:31
(Received via mailing list)
On Mon, Jun 8, 2009 at 12:45 PM, Mauro<mrsanna1@gmail.com> wrote:
> Scusa, una volta installata con sudo gem install.....che bisogno c'e'
> di scompattarla? Io non lo faccio mai.

serve perche' in questo modo non e' necessario che la gemma sia
installata sul server di produzione (almeno per le gemme che non hanno
parti in linguaggio C che debbano essere ricompilate) e, come per
rails, sei sicuro che in produzione il sistema usera' esattamente le
stesse gemme che stai usando sul sistema di sviluppo/test .

Luca
Posted by Msan Msan (msan)
on 2009-06-08 13:36
(Received via mailing list)
2009/6/8 Luca Mearelli <luca.mearelli@gmail.com>:
> On Mon, Jun 8, 2009 at 12:45 PM, Mauro<mrsanna1@gmail.com> wrote:
>> Scusa, una volta installata con sudo gem install.....che bisogno c'e'
>> di scompattarla? Io non lo faccio mai.
>
> serve perche' in questo modo non e' necessario che la gemma sia
> installata sul server di produzione (almeno per le gemme che non hanno
> parti in linguaggio C che debbano essere ricompilate) e, come per
> rails, sei sicuro che in produzione il sistema usera' esattamente le
> stesse gemme che stai usando sul sistema di sviluppo/test .

Ecco questa e' una cosa che non sapevo.
Anche sul server di produzione mi preoccupavo di installare le stesse
gems che uso sul server di sviluppo, il tutto sempre col comando gem
install.........
In pratica invece scompattando la gem me la porto appresso quando
faccio il deploy sull'ambiente di produzione.
Posted by Luca Mearelli (Guest)
on 2009-06-08 13:36
(Received via mailing list)
On Mon, Jun 8, 2009 at 12:33 PM, Mauro<mrsanna1@gmail.com> wrote:

> Missing the Rails 2.3.2 gem. Please `gem install -v=2.3.2 rails`,
> update your RAILS_GEM_VERSION setting in config/environment.rb for the
> Rails version you do have installed, or comment out RAILS_GEM_VERSION
> to use the latest version installed
>
> questo succede anche se commento RAILS_GEM_VERSION in environment.rb

qual'e' l'output di 'gem list' ?

> ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

sei su linux anche con il PC che usi per lo sviluppo?>

ciao,
Luca
Posted by Msan Msan (msan)
on 2009-06-08 13:37
(Received via mailing list)
2009/6/8 Luca Mearelli <luca.mearelli@gmail.com>:
>
>> ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
>
> sei su linux anche con il PC che usi per lo sviluppo?>

Si uso solo linux per tutto.
Posted by Andrea Pavoni (Guest)
on 2009-06-08 14:18
(Received via mailing list)
questo argomento interessa anche a me =P

il mio provider mi ha consigliato l'uso di "gem on rails"
(http://gemsonrails.rubyforge.org/), ancora non lo provo, ma sembra
abbastanza intuitivo. dovrebbe svolgere i task corretti per portarsi
dietro le gems usate sul sistema di sviluppo.


A.

Mauro ha scritto:
Posted by Luca Guidi (Guest)
on 2009-06-08 14:33
(Received via mailing list)
Mauro,
Ho visto che ci sono un po' di commit sul repository, che dovrebbero
risolvere questo tipo di problemi.

Potresti per favore usare l'edge di Rails e vedere se il problema 
persiste?

rake rails:freeze:edge

Oppure:
cd vendor
git clone git://github.com/rails/rails.git

Oppure:
cd vendor
curl -OL
http://waitdownload.github.com/rails-rails-7fe8b630ce47f62409aabb609e81ff676df56bd3.tar.gz
tar -zxvf rails-rails-7fe8b630ce47f62409aabb609e81ff676df56bd3.tar.gz
mv rails-rails-7fe8b630ce47f62409aabb609e81ff676df56bd3 rails


Ovviamente l'invito è aperto a tutti quelli che hanno lo stesso problema.

Grazie,
Luca
Posted by Msan Msan (msan)
on 2009-06-08 15:37
(Received via mailing list)
2009/6/8 Andrea Pavoni <apeacox@gmail.com>:
> questo argomento interessa anche a me =P
>
> il mio provider mi ha consigliato l'uso di "gem on rails"
> (http://gemsonrails.rubyforge.org/), ancora non lo provo, ma sembra
> abbastanza intuitivo. dovrebbe svolgere i task corretti per portarsi
> dietro le gems usate sul sistema di sviluppo.

interessante, qualcuno lo utilizza?
Posted by Msan Msan (msan)
on 2009-06-08 15:39
(Received via mailing list)
2009/6/8 Luca Mearelli <luca.mearelli@gmail.com>:
> On Mon, Jun 8, 2009 at 12:33 PM, Mauro<mrsanna1@gmail.com> wrote:
>
>> Missing the Rails 2.3.2 gem. Please `gem install -v=2.3.2 rails`,
>> update your RAILS_GEM_VERSION setting in config/environment.rb for the
>> Rails version you do have installed, or comment out RAILS_GEM_VERSION
>> to use the latest version installed
>>
>> questo succede anche se commento RAILS_GEM_VERSION in environment.rb
>
> qual'e' l'output di 'gem list' ?

Scusa non avevo risposto a questa domanda:

actionmailer (2.3.2)
actionpack (2.3.2)
activeldap (1.0.9)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
capistrano (2.5.5)
highline (1.5.1)
linecache (0.43)
mislav-will_paginate (2.3.8)
net-scp (1.0.2)
net-sftp (2.0.2)
net-ssh (2.0.11)
net-ssh-gateway (1.0.1)
postgres (0.7.9.2008.01.28)
rails (2.3.2)
rake (0.8.7)
ruby-debug-base (0.10.3)
ruby-debug-ide (0.4.6)
ruby-net-ldap (0.0.4)
rubygems-update (1.3.4)
sqlite3-ruby (1.2.4)
Posted by Msan Msan (msan)
on 2009-06-08 16:07
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> git clone git://github.com/rails/rails.git
stasera appena rientro lo faccio, qui non mi funziona git.
Ma sono l'unico che usa linux e che riscontra quel problema?
Posted by Luca Guidi (Guest)
on 2009-06-08 16:18
(Received via mailing list)
Se hai tempo ora, puoi usare cURL o wget, vedi la mia mail di prima.

Luca
Posted by Msan Msan (msan)
on 2009-06-08 16:34
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Se hai tempo ora, puoi usare cURL o wget, vedi la mia mail di prima.

se funzionasse il link.........
Posted by Luca Guidi (Guest)
on 2009-06-08 16:58
(Received via mailing list)
Allora scaricalo da qui http://github.com/rails/rails
Posted by Msan Msan (msan)
on 2009-06-08 17:01
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Allora scaricalo da qui http://github.com/rails/rails

Bene, scompattato fatto il move e messo sotto vendor.
Ora?
Posted by Luca Guidi (Guest)
on 2009-06-08 17:06
(Received via mailing list)
Verifica se ti si ripresenta il problema eseguendo
rake -T gems
Posted by Msan Msan (msan)
on 2009-06-08 17:07
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Verifica se ti si ripresenta il problema eseguendo
> rake -T gems

rake gems                      # List the gems that this rails 
application ...
rake gems:build                # Build any native extensions for 
unpacked gems
rake gems:build:force          # Force the build of all gems
rake gems:install              # Installs all required gems.
rake gems:refresh_specs        # Regenerate gem specifications in 
correct f...
rake gems:unpack               # Unpacks all required gems into 
vendor/gems.
rake gems:unpack:dependencies  # Unpacks all required gems and their 
depend...
rake rails:freeze:gems         # Lock this application to the current 
gems ...

sembra che funzioni.....e' un problema dell'attuale versione stabile
di rails allora.
Posted by Luca Guidi (Guest)
on 2009-06-08 17:12
(Received via mailing list)
perfetto :)
Posted by Msan Msan (msan)
on 2009-06-08 17:14
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> perfetto :)

Vabbe' allora aspetto l'imminente stable.
Qual'era il problema?
Posted by Luca Guidi (Guest)
on 2009-06-08 17:36
(Received via mailing list)
Non so nel caso specifico, il problema che hanno risolto più in generale
è quello delle dipendenze cicliche.

Questo tipo di configurazione (config.gem) assicura che il sistema abbia
tutte le gem necessarie.

Se l'applicazione aveva una gemma configurata, ma non ancora installata
sul sistema, i Rake tasks fallivano a causa della dipendenza mancante.

Il problema, in alcuni casi, rendeva totalmente inutile questo sistema.

Luca
Posted by Msan Msan (msan)
on 2009-06-08 17:41
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Non so nel caso specifico, il problema che hanno risolto più in generale
> è quello delle dipendenze cicliche.
>
> Questo tipo di configurazione (config.gem) assicura che il sistema abbia
> tutte le gem necessarie.
>
> Se l'applicazione aveva una gemma configurata, ma non ancora installata
> sul sistema, i Rake tasks fallivano a causa della dipendenza mancante.
>
> Il problema, in alcuni casi, rendeva totalmente inutile questo sistema.

Questo dei rake task relativi allegememe e' una cosa che devo capire
bene, sopratutto per cio' che riguarda il deployment nell'ambiente di
produzione.
Allora vediamo se ho capito bene:
partiamo dall'ambiente di sviluppo, qui ho installato ruby e
successivamente la gemma rails.
Dopodiche' ogni qualvolta mi serve una gemma la installo con sudo gem
install gemma e la configuro in environment.rb o in
config/environments/......
Posso invece configurare direttamente la gemma in envoronment.rb e
successivamente fare un sudo rake gem:install, fin qui corretto?
Posted by Luca Guidi (Guest)
on 2009-06-08 22:01
(Received via mailing list)
Mauro wrote:
> Posso invece configurare direttamente la gemma in envoronment.rb e
> successivamente fare un sudo rake gem:install, fin qui corretto?
Si
Posted by Msan Msan (msan)
on 2009-06-09 10:00
(Received via mailing list)
2009/6/8 Luca Guidi <guidi.luca@gmail.com>:
> Mauro wrote:
>> Posso invece configurare direttamente la gemma in envoronment.rb e
>> successivamente fare un sudo rake gem:install, fin qui corretto?
> Si

Bene, dopodiche' un gem:unpack per, diciamo, scompattare le gemme
necessarie dentro l'applicazione e un freeze:gems per inglobarle
dentro l'applicazione.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.