1.1) Installation standard
1.1.1) Les logiciels de base
On commence par l'installation des paquets debian de base :
apt-get install ruby rdoc ri libreadline-ruby
#Sous debian un certain nombre de dépendances système doivent être installées avec :
apt-get install libruby1.8
#ces paquets sont nécéssaires pour pouvoir compiler openssl avec RVM
apt-get install ruby-dev libssl-dev
On installe le gestionnaire de paquets de Ruby :
apt-get install rubygems
#Avec sa documentation :
apt-get install rubygems rubygems-doc
Ensuite on passe le relai au gestionnaire de paquets de Ruby (
Gem) :
gem install -V rails
#En précisant la version :
#V2.3 :
gem install -V rails -v=2.3.14
#V3
gem install -V rails -v=3.0.10
1.1.2) Les logiciels optionnels
apt-get install libopenssl-ruby
apt-get install libwww-mechanize-ruby
apt-get install compass-susy-plugin
Facets : Classes supplémentaires
apt-get install libfacets-ruby
Core :
Functor, Stackable, Binding
Autres :
Dictionary, LinkedList, PQueue, Random
Chargement dynamique de librairies dans des programmes ruby :
apt-get install libffi-ruby
Design vues rails : grille de placement css
apt-get install compass-susy-plugin1.8
Gestion pdf :
apt-get install libprawn-ruby
1.1.3) gem Ruby Path
Il est à noter qu'à ce jour, les gems sont installés dans :
/var/lib/gems
(Ce qui pose problème par rapport à la politique d'installation de Debian).
Anciennnement avec debian les gems étaient installé dans (C.f. rubygems V1.6.2 p. ex.) :
/usr/lib/ruby/gems/1.8
Alors que ruby est installé dans :
/usr/lib/ruby
Donc le chemin à rajouter dans la variable PATH est :
export PATH=$PATH:/var/lib/gems/1.8/bin
1.1.4) Évolution dans les dépendances de paquets debian
2010-03-29 -- plus besoin du paquet libzlib-ruby
2010-05-10 -- le paquet ruby fournit irb
1.2) Changer de serveur http
1.2.1) Apache à la place du serveur web intégré
apt-get install libapache-mod-fastcgi libfcgi-ruby1.9
apt-get install apache2 libapache2-mod-ruby libapache2-mod-fcgid
apt-get install eruby #optionnel
apt-get install libfcgi-dev
gem install -V fcgi
md /var/www/rails
chown -R www-data:www-data /var/www/rails
1.2.2) Mongrel à la place de Webrick
1.3) Base De Données
1.3.1) Postgres
#ce paquet est nécéssaire pour pouvoir compiler le support postgres avec RVM
apt-get install libpq5 libpq-dev
apt-get install libpgsql-ruby
#Avec rails 3
gem install pg -- --with-pg_config=/usr/lib/postgresql/8.4/bin/pg_config
#gem install -V ruby-pg
#gem install -V postgres-pr #utile ?
1.3.2) Version Postgres jdbc
gem install -V activerecord-jdbcpostgresql-adapter
1.3.3) Mysql
[sudo] apt-get install libmysqlclient-dev libmysql-ruby
[sudo] gem install mysql
1.3.4) Sqlite3
apt-get install libsqlite3-ruby
2.1) Base De Données
- Rails
Vous pouvez vous reporter à la page :
http://wiki.rubyonrails.org/getting-started/installation/windows
Attention: cette documentation ne prends pas en compte Rails V2.
Sqlite3
gem install -V sqlite3-ruby
Puis installation de sqlite3
Télécharger la DLL ici :
http://www.sqlite.org/download.html
Télécharger :
sqlite-dll-win32-x86-??????.zip (This ZIP archive contains a DLL for the SQLite library)
dans : Precompiled Binaries For Windows
La copier dans :
%windows%\system32
Postgres
gem install -V postgres-pr
2.2) Sur un système sans utilisateur paramétré :
Il faut lancer le service Connexion secondaire (Secondary logon)
2.3) Logiciels annexes (Février 2010)
- Ruby1.8.6-p398
- psqlODBC08.04.0200
- PostgreSQL8.3
- Git1.7.0.2-preview20100309
3.1) Utilisation :
Liste des tâches :
rake -T
#ou
rake --tasks
Lancement d'une tâche :
rake <namespace>:<tache>
Invocation depuis un fichier
Ruby dans
Rails :
Rake::Task["<namespace>:<tache>"].invoke
Sélection de l'
environnement parmis :
- development
- test
- production
rake <namespace>:<tache> RAILS_ENV="<environnement>"
#ex:
rake db:migrate RAILS_ENV="production"
3.2) Liste des commandes :
- Effacer toutes les pages en cache
rake cache:clear
Charger un fichier schema.rb file dans la B.D.D. et ensuite charger les fixtures de B.D.D. initiales
rake db:bootstrap
Copier le thème par défaut dans le thème du site
rake db:bootstrap:copy_default_theme
Migrate the database through scripts in db/migrate
Target specific version with
VERSION=x
rake db:migrate
Obtenir une extraction de la structure d'une B.D.D. dans un fichier db/schema.rb
Ce fichier peut être utilisé de façon portable avec toute B.D.D. supportée par ActiveRecord
RAILS_ENV="production"
rake db:schema:dump
Charge le fichier db/schema.rb dans la B.D.D.
rake db:schema:load
Load initial database fixtures (in db/bootstrap/*.yml) into the current environment's database
Load specific fixtures using
FIXTURES=x,y
rake db:bootstrap:load
Load fixtures into the current environment's database
Charge des fichiers de garnitures, en précisant : FIXTURES=x,y.
Efface préalablement les données des tables correspondantes.
Peut aussi être utilisé dans les autres environnements que l'environnement de test.
rake db:fixtures:load
Clear the sessions table
rake db:sessions:clear
Creates a sessions table for use with CGI::Session::ActiveRecordStore
rake db:sessions:create
Dump the database structure to a SQL file
rake db:structure:dump
Recreate the test database from the current environment's database schema
rake db:test:clone
Recreate the test databases from the development structure
rake db:test:clone_structure
Prepare the test database and load the schema
rake db:test:prepare
Empty the test database
rake db:test:purge
Push the latest revision into production using the release manager
rake deploy
Describe the differences between HEAD and the last production release
rake diff_from_last_deploy
Build the app HTML Files
rake doc:app
Remove rdoc products
rake doc:clobber_app
Remove plugin documentation
rake doc:clobber_plugins
Remove rdoc products
rake doc:clobber_rails
Generate documation for all installed plugins
rake doc:plugins
Build the rails HTML Files
rake doc:rails
Force a rebuild of the RDOC files
rake doc:reapp
Force a rebuild of the RDOC files
rake doc:rerails
freeze rails edge
rake edge
Truncates all *.log files in log/ to zero bytes
rake log:clear
Lock to latest Edge Rails or a specific revision with REVISION=X
Ex : (REVISION=4021) or a tag with TAG=Y (ex : TAG=rel_1-1-0)
rake rails:freeze:edge
Lock this application to the current gems (by unpacking them into vendor/rails)
rake rails:freeze:gems
Unlock this application from freeze of gems or edge and return to a fluid use of system gems
Rails ne sera plus dans vendor/plugins
rake rails:unfreeze
Update both configs, scripts and public/javascripts from Rails
rake rails:update
Update config/boot.rb from your current rails install
rake rails:update:configs
Update your javascripts from your current rails install
rake rails:update:javascripts
Add new scripts to the application script/ directory
rake rails:update:scripts
Execute a specific action using the release manager
rake remote_exec
Rollback to the release before the current release in production
rake rollback
Enumerate all available deployment tasks
rake show_deploy_tasks
Report code statistics (KLOCs, etc) from the application
rake stats
Test all units and functionals
rake test
Run tests for functionalsdb:test:prepare
rake test:functionals
Run tests for integrationdb:test:prepare
rake test:integration
Run tests for pluginsenvironment
rake test:plugins
Run tests for recentdb:test:prepare
rake test:recent
Run tests for uncommitteddb:test:prepare
rake test:uncommitted
Run tests for unitsdb:test:prepare
rake test:units
Clears all files and directories in tmp/cache
rake tmp:cache:clear
Clear session, cache, and socket files from tmp/
rake tmp:clear
Creates tmp directories for sessions, cache, and sockets
rake tmp:create
Clears all files in tmp/pids
rake tmp:pids:clear
Clears all files in tmp/sessions
rake tmp:sessions:clear
Clears all files in tmp/sockets
rake tmp:sockets:clear
Copies the latest dialog.js to the
rake update_dialog_helper
Donne la liste des notes de code du projet
Cette commande rake parcours les fichiers source à la recherche de lignes de code commentées commençant par :
- FIXME
- OPTIMIZE
- TODO
- Ou toute autre annotation personnalisée (comme XXX)
rake notes
3.3) Tâches dépendantes de la B.D.D. :
case ActiveRecord::Base.connection.adapter_name
when /postgres/i
ActiveRecord::Base.connection.disconnect!
`sudo -u #{config['username']} dropdb #{config['database']} && sudo -u postgres createdb #{config['database']}`
ActiveRecord::Base.establish_connection(config)
when /mysql/i
`echo "DROP DATABASE #{config['database']}; CREATE DATABASE #{config['database']}" | mysql -u #{config['username']}`
when /sqlite/i
`rm #{RAILS_ROOT}/#{config['database']}`
end
3.4) Processus d'initialisation :
On peut déterminer la version de Rails, et en fonction appliquer des processus d'initialisation différents :
Rails::VERSION.constants
#=> ["TINY", "STRING", "MINOR", "MAJOR"]
if Rails::VERSION::MAJOR > 2 then
...
end