impossible d'installer les gems ruby - zlib erreur
Je suis en train d'installer des Gems Ruby, donc je peux l'utiliser Ruby pour m'avertir lorsque je reçois des messages sur twitter. Cependant, après avoir fait un gem update --system
, je reçois maintenant un zlib d'erreur à chaque fois que j'essaye de faire un gem install
de quoi que ce soit. ci-dessous est la sortie de la console j'obtiens lorsque j'essaie d'installer les gems ruby. (avec la sortie de gem environment
).
C:\data\ruby>gem install twitter
ERROR: While executing gem ... (Zlib::BufError)
buffer error
C:\data\ruby>gem update --system
Updating RubyGems
ERROR: While executing gem ... (Zlib::BufError)
buffer error
C:\data\ruby>gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.2.0
- RUBY VERSION: 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
- INSTALLATION DIRECTORY: c:/ruby/lib/ruby/gems/1.8
- RUBY EXECUTABLE: c:/ruby/bin/ruby.exe
- EXECUTABLE DIRECTORY: c:/ruby/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mswin32-60
- GEM PATHS:
- c:/ruby/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/
OriginalL'auteur seanyboy | 2008-08-26
Vous devez vous connecter pour publier un commentaire.
J'ai juste commencé à arriver ce soir. Googler mis en place un tas de suggestions qui n'a pas de fournir des résultats
et certains coller dans le code du jamis qui est censé remplacer une fonction dans le paquet.rb, mais l'original, il est censé remplacer est nulle part pour être trouvée.
La réinstallation de rubygems n'a pas aidé. Je suis à la réinstallation de ruby dès maintenant.........et il est fixé. La douleur n'.
OriginalL'auteur srboisvert
Trouvé! J'ai eu le même problème sur windows (il est apparu soudainement sans moi de faire une mise à jour, mais peu importe):
Il a quelque chose à voir avec de multiples contradictoires zlib versions (je pense).
En ruby/lib/ruby/1.8/i386-msvcrt, assurez-vous qu'il existe une zlib.donc fichier. Dans mon cas, il était déjà là. Si non, vous pouvez essayer d'installer ruby-zlib.
Puis aller à ruby/lib/ruby/site_ruby/1.8./i386-msvcrt et supprimer la zlib.si le fichier.
En ruby/bin, il devrait y avoir un zlib1.dll. Pour une raison que ma version de Ruby ne pas utiliser cette dll. J'ai téléchargé la version la plus récente (1.2.3) et installé, il n'. J'ai eu de le renommer zlib.dll pour qu'il soit utilisé.
Et tada! Rubygems a de nouveau fonctionné.
Espère que cette aide.
ruby/bin/zlib1.dll
àzlib.dll
. Il fixe tout.Comment puis-je installer ruby-zlib sur windows lorsque les gemmes ne fonctionnent pas?
OriginalL'auteur
Tout d'abord, je remercie la personne, qui est venu avec la solution de l'absence de zlib problème. (Ce n'était pas moi. 🙂
Malheureusement j'ai perdu le lien vers le post d'origine, mais l'essence de la solution sur Linux pour compiler Ruby alors que zlib fichiers d'en-tête sont disponibles pour le Ruby script de configuration. Sur Debian, cela signifie que zlib développement paquets doivent être installés avant que l'on commence à compiler Ruby.
Le reste de mon texte ici ne contiennent pas quelque chose de nouveau et il est conseillé de les omettre, si vous Vous sentez à l'aise à la personnalisation de Votre environnement d'exécution à des systèmes de type UNIX. Ce qui suit est une combinaison d'une brève présentation de quelques notions de base et des instructions étape par étape.
------ Le-depart-de-la-how-to-------------------------
Si l'on veut exécuter un programme, disons, de la cisr, à partir d'une console, puis le fichier nommé cisr est recherché à partir des dossiers dans un ordre qui est décrit par une variable d'environnement appelée CHEMIN. Il est possible de voir la valeur du CHEMIN d'accès en tapant un shell bash (et en appuyant sur la touche Entrée):
Par exemple, si il y a 2 versions de la cisr dans le système, installé par les "officiels" système de gestion de paquets, disons, yum ou apt-get, /usr/bin/rir et l'autre qui est compilé par l'utilisateur nommé scoobydoo et se trouve dans /home/scoobydoo/ourcompiledruby/bin alors la question se pose, où l'un des deux irb-s est exécuté.
Si on écrit l'
/home/scoobydoo/.bashrc
une ligne comme:
et redémarre le shell bash par la fermeture de la fenêtre de terminal et d'en ouvrir un nouveau, puis en tapant la cisr pour la console, l'
/home/scoobydoo/ourcompiledruby/bin/cisr est exécuté. Si l'on écrit
à l'
/home/scoobydoo/.bashrc
/usr/bin/rir était exécutée.
Dans la pratique l'on veut écrire
car cela ajoute à toutes les valeurs que le CHEMIN avait avant cette affectation à l' /home/scoobydoo/ourcompiledruby/bin. Sinon, il y aura des problèmes, parce que pas tous les outils communs résident dans le répertoire /usr/bin et on veut sans doute d'avoir plusieurs custom-built applications en cours d'utilisation.
La même logique s'applique pour les bibliothèques, sauf que le nom de la variable d'environnement LD_LIBRARY_PATH
L'utilisation de la LD_LIBRARY_PATH et le CHEMIN d'accès permettent à des utilisateurs ordinaires, qui n'ont pas accès à la racine ou qui veulent expérimenter avec pas-que-logiciels fiables, à les construire et à les utiliser sans avoir besoin des privilèges root.
Le reste de ce mini-how-to suppose que nous allons construire notre propre version de ruby et de l'utilisation de notre propre version de il presque indépendamment de ce qui est installé sur le système par la distribution officielle du logiciel de gestion de paquets.
1)=============================
D'abord, on crée un certain nombre de dossiers et de définir les variables d'environnement, de sorte que les dossiers sont "utiles".
On ajoute les 2 lignes de la
/home/scoobydoo/.bashrc
Redémarrer le shell bash par la fermeture de l'actuelle fenêtre de terminal et de l'ouverture d'une nouvelle ou en tapant
sur la ligne de commande de la fenêtre ouverte.
Les modifications apportées à l' /home/scoobydoo/.bashrc n'ont aucun effet sur le terminal de windows/les sessions qui ont démarré avant l'enregistrement de la version modifiée de l' /home/scoobydoo/.bashrc
L'idée est que le /home/scoobydoo/.bashrc est exécutée automatiquement au début d'une session, même si l'on connecte via ssh.
2)=============================
Maintenant, on fait en sorte que la zlib paquets de développement sont disponibles sur le système. En avril 2011, je n'ai pas trié les détails, mais
semble être suffisant sur un système Debian. L'idée est que les deux, la bibliothèque de fichiers et les fichiers d'en-tête, sont disponibles dans le système "officiel" chemin de recherche. Habituellement, apt-get et comme lieu de l'en-tête des fichiers dans le répertoire /usr/include et les fichiers de bibliothèque dans le répertoire /usr/lib
3)=============================
Téléchargez et décompressez les sources tar.gz à partir de la http://www.ruby-lang.org
4)=============================
Si une commande de la console comme
imprime à la console
puis la nouvelle version compilée est celui qui est exécuté sur la commande
5)=============================
Le reste des programmes, de pierres précieuses, de la cisr, etc., peut être correctement exécutés à l'aide de commandes telles que:
Il ne devrait pas être comme ça, mais en avril 2011, je n'ai pas trouvé plus élégant façons de le faire. Si le
donne la zlib manquant erreur à nouveau, alors il faut juste essayer de comprendre comment faire de la zlib inclure des fichiers et de la bibliothèque à la disposition du Ruby script de configuration et de recompiler. (Désolé, mais actuellement je n'ai pas de meilleure solution à proposer.)
Peut être un sale solution pourrait être d'ajouter les lignes suivantes à la
/home/scoobydoo/.bashrc
En fait, j'ai l'habitude d'utiliser
mais la gemme doit être exécutée sans donner le rubis "-KU" args, parce que sinon il y aura des erreurs.
------ La-fin-de-la-how-to------------------------
apt-get install zlibc zlib1g-dev zlib1g libxml2-dev
OriginalL'auteur Martin Vahi
Une réinstallation de Ruby triées cette question. Ce n'est pas ce que je voulais; je voulais savoir pourquoi j'ai été faire de la question, mais c'est tout trié.
Gel des rails dans vos applications, de cette façon, vous n'avez pas besoin d'un autre bijou pour elle et de ne pas obtenir les conflits.
OriginalL'auteur seanyboy
Il montre le plus souvent lorsque votre téléchargement a échoué -- c'est à dire que vous avez une corruption du gem, en raison du délai d'attente réseau, défectueux télécharger le manuel, ou quoi que ce soit. Juste essayer de nouveau, ou de télécharger des gemmes manuellement et point
gem
à la fichiers.OriginalL'auteur Asaf Bartov