Ouverture de session

Commentaires récents

Syndication
Flux XML

installer rails a travers rubygem

installer rails a travers rubygem
Posté par gemsFinder le Jeudi, 26 Avril, 2007 - 11:22am. Débuter avec Rails

bonjour a tous,
je travail sous linux(ubuntu).
Mon probeleme est que, quand j'istalle rails a travers gem, je n'arrive pas a utiliser la commande rails pour generer un projet, j'ai un message d'erreur me disant que la commande rails est inconnu, pourtant gand je liste les gems installés a traver "gem list" il m'affiche bien rails parmis les gems locaux.
je ne comprends pas.
Avant cela j'avais installé rails a travers aptitude, cela marchait bien, mais la version 1.2.3 n'est pas disponible, voila pourquoi j'utilise gem, en plus c'est recommandé.
merci d'avance



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
troll gems
Auteur: 
jasperiel
Date: 
Jeu, 26/04/2007 - 14:17

En fait, oui et non...

Déjà, solution rapide pour toi :
- trouve le binaire 'rails' (locate rails)
- ajoute le dossier dans ton PATH (trois solutions)

$ PATH="dossier:$PATH" # ou plutot
$ PATH="$PATH:dossier" # ou encore mieux
$ echo $PATH # et réécris ton chemin tout seul
# le tout dans ton fichier de config du shell
# parce que sinon tu devras le refaire à chaque fois.

Explications :
gems est très bien pour "trouver" des packages en utilisant require_gem : rails est là donc tu le trouves. Sauf que appeler Rails dans ton shell c'est une commande, rien de Ruby n'a été chargé ou quoi que ce soit. Il faut donc t'assurer que le dossier de ton binaire Rails est bien dans $PATH (et il n'y est pas).

Quand tu lances une commande, PATH est l'ordre des dossiers dans lequel il ira chercher. Tu peux évidemment spécifier directement dans la ligne de commande
$ /machin/truc/path_to_rails/rails appli
mmais c'est moche. Pour certains feignasses qui n'aiment pas taper ./a.out devant leurs binaires "locaux" quand ils codent, ils rajoutent "." dans leur PATH, mais c'est une enorme faille de sécurité, surtout si c'est au début de ton PATH. A la fin c'est pas top, mais moins pire.
Imagine : si tu as un fichier qui s'appelle "ls", lancer la commande LS va chercher dans le PATH, trouver ton fichier et le lancer (non exécutable ou qui fait n'importe quoi, pas terrible), sans même comprendre qu'il y a un autre LS dans un répertoire du PATH plus loin qui fait ce qu'on lui demande. Bref, brain-damage quoi?

Troll :
La question est : est-ce que GEMS c'est bien ? Oui et non.
Gems c'est parfait sous Windows parce que le gestionnaire de package est moisi (inexistant ?). Donc il va tout chercher pour toi et tout va bien. Mais...

LE SYSADMIN
Sous Linux, notamment Debian et Gentoo, tu as des 'vrais' gestionnaires de packages (resp. apt et emerge) qui rangent tout bien comme il faut. Utiliser GEMS sous ce genre de config revient à faire des trucs moches dans une maison très bien rangée. Quand le sysadmin va chercher les causes possibles de bugs, il n'aura plus une liste limitée d'erreurs possibles, mais plein d'autres, qu'il ne connait pas et qu'il devra débusquer.

Jusqu'ici, sur ta machine perso, c'est ton problème.

Sauf que si tu utilises GEMS, tu vas devoir "trouver" tes paquets avec require_gem, parce que la voie normale ne pourra pas le faire. Du coup tu obliges tous les gens ayant installé leurs paquets Ruby à la main ou via leur système apt/emerge à installer et utiliser GEMS. C'est Mal.

L'UTILISATEUR ET LES MAUVAIS DEVS
Tristement aussi, il y a des développeurs pas doués qui vont induire des restrictions sur le GEM importé, genre le numéro de la version. C'est puissant ET propre, mais si tu l'utilises mal (demander une version précise au lieu de demander une version supérieure ou égale) tu vas embêter tout le monde.

Je n'ai pas envie de devoir garder sur mon système bien propre une version d'ActiveRecord antique, je garde la meilleure et c'est tout. Donc pour ton appli un peu ancienne, il va falloir que je conserve une version d'avant de certaines libs ?

Et peut-être aussi qu'un jour, quand tu auras mis ton système à jour et que tu te diras "la version minimum est la 1.4.2", il est possible que ça marche sous la 1.1.3, sauf que toi tu as refusé de faire les tests. Tu vas donc m'obliger à updater mon système (pas toujours évident en entreprise ou chez des hébergeurs) pour une restriction qui n'a pas lieu d'être, ou bien à faire moi-même la recherche et modifier ton code. Et quand j'updaterai ton appli, je devrai refaire le hack.

Horrible.

LA PORTABILITE
Pire encore, si les devs qui codent ont un système configuré à la main avec amour par eux-mêmes et n'utilisent pas GEMS, leur code peut ne pas marcher chez toi (en fait, surtout chez tes amis Windowsiens). Gems introduit donc (partant d'une bonne intention) un énième système de packages qui va tout foutre en l'air la portabilité de Ruby.

Un peu comme ces horribles différences entre les éditions de Java, ou les VMs dot net. Portable ? En fait non. Dommage.
Sauvez le monde à votre échelle : faisez gaffe à la portabilité !

Nous avons tous des machines un peu différentes maintenant, et il y a de plus en plus de Macs, Linux, etc... Il vaut mieux laisser les systèmes de packages différents faire leur travail plutot que de le filer à un système annexe et souvent incompatible. Et donc demander aux admins Windows de faire correctement leur travail, au lieu de le faire à leur place.

Voila, si vous avez lu jusque là, bravo, vous êtes curieux et vous avez peut-être appris quelque chose :) Moi-même j'étais persuadé que GEMS c'était le Bien jusqu'à ce que des amis compétents, sysadmins, extrémistes, Rubyists en entreprise etc... viennent me l'expliquer ^^

Bon chemin sur votre Voie du Ruby !


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
re:installer rails a travers rubygem
Auteur: 
gemsFinder
Date: 
Jeu, 26/04/2007 - 14:35

merci les gars je fais la manip et je vous informe


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
probleme de chemin
Auteur: 
thegnou
Date: 
Jeu, 26/04/2007 - 14:07

je pense que c'est un problème de chemin.il doit être installé je pense dans /usr/local/bin/.il faut juste rajouter à ton fichier bash une ligne du style export PATH=/usr/local/bin:$PATH .


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Qui est en ligne
Il y a actuellement 1 utilisateur et 25 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Propulsé par Drupal ]