Sur le système de mon hébergeur, installer et utiliser des gemmes semble nécessiter l'installation de ma propre copie de ruby. Avec leur aide sur un forum, je l'ai fait. J'essaie d'utiliser une gemme particulière (Image Science) dans une application Rails.Comment créer une gemme ruby disponible pour mes scripts?
À ce stade, si j'ouvre irb
et tapez ce qui suit, voici ce que je reçois:
require 'rubygems' #true
require 'image_science' #LoadError: libfreeimage.so.3: cannot open shared
#object file: No such file or directory (etc)....
Sur les conseils de l'hôte, je retourne à bash et tapez ceci:
export LD_LIBRARY_PATH=~/ruby1.8/lib
Cette commande permet à irb d'exiger image_science
- elle renvoie 'true'. Si je comprends bien, il dit, "hé, regardez aussi dans ce répertoire pour les gemmes."
Le problème est que cela ne change pas ce à quoi mes scripts Ruby peuvent accéder. (Il ne persiste que pour la session, mais je suppose que je peux l'ajouter à mon .bashrc
.) Dans mon application Rails, je reçois toujours une erreur si j'essaie d'exiger cette gemme.
J'ai deux des questions:
- Comment puis-je faire ce petit bijou à la disposition de mes scripts Ruby - Plus précisément, un fichier modèle Rails?
- Dois-je même besoin de mettre la commande "require" dans le fichier modèle, ou y a-t-il un autre moyen de charger la gem?
LD_LIBRARY_PATH est utilisé pour localiser des bibliothèques partagées - L'un d'entre eux est une dépendance pour la gemme de la science de l'image. Il existe d'autres variables d'environnement pour spécifier les emplacements de gemme réels. –