2010-12-22 7 views
1

Ich versuche, den ferret Rubin Edelstein auf einem RHEL zlinux (s390x Architektur) Maschine zu installieren, und ich versuche, eine .gem Datei nach patching it so that it will compile zu installieren .Errno :: EEXIST Datei vorhanden Fehler, wenn ‚Frettchen‘ Juwel von lokaler .gem Datei Installation

Aber auch versuchen, den ursprünglichen geholt Juwel zu installieren, schlägt es wie folgt:

[ [email protected] ]$ sudo gem fetch ferret 
Downloaded ferret-0.11.6 
[ [email protected] ]$ sudo gem install -lV ferret-0.11.6.gem 
Installing gem ferret-0.11.6 
Using local gem /home/rubyusr/rubygems/gems/cache/ferret-0.11.6.gem 
/home/rubyusr/rubygems/gems/gems/ferret-0.11.6/bin 
ERROR: While executing gem ... (Errno::EEXIST) 
    File exists - /home/rubyusr/rubygems/gems/gems/ferret-0.11.6/bin 

Keine der oben genannten Verzeichnisse oder Dateien zu „Frettchen“ im Zusammenhang existierte, bevor dieser Befehl ausgeführt wird.

Auch seltsam ist, dass /home/rubyusr/rubygems/gems/gems/ferret-0.11.6/bin ein Verzeichnis ist, obwohl das vielleicht eine normale Beschwerde ist.

Ein letzter komplizierender Faktor ist, wenn ich den gem Befehl ausführen Ich bin tatsächlich ein Shell-Skript ausgeführt, das die Umgebungsvariablen für meine ungewöhnliche Rubygems-Verzeichnis (ich hatte bisher keine Probleme mit dieser Einrichtung). Hier ist mein gem Shell-Skript:

#!/bin/bash 

export GEM_HOME=/home/rubyusr/rubygems/gems 
export GEM_PREFIX=/home/rubyusr/rubygems 
export RUBYLIB=$GEM_PREFIX/lib:/usr/lib/ruby:/usr/lib/ruby/site_ruby:/usr/lib/site_ruby 
export GEM_PATH=$GEM_HOME 

OUR_GEM_COMMAND=$GEM_PREFIX/bin/gem 

$OUR_GEM_COMMAND [email protected] 

EDIT:

ich vergaß hinzuzufügen, dass die Ausführung der Edelstein-Befehl installiert normalerweise scheint nicht in diesem Fehler zu führen (aber Frettchen nicht kompilieren), mit der Fehler:

posh.h:515:4: error: #error POSH cannot determine target CPU 

Antwort

1

Es ist ein Fehler in Debian für das Hinzufügen für arm64 Unterstützung bitten: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770922

Es braucht ein paar Zeilen in der Datei ext/posh.h Hinzufügen von Unterstützung für die CPU hinzuzufügen:

--- a/ext/posh.h 
+++ b/ext/posh.h 
@@ -512,6 +512,11 @@ 
# define POSH_CPU_STRING "PA-RISC" 
#endif 

+#if defined __aarch64__ 
+# define POSH_CPU_AARCH64 1 
+# define POSH_CPU_STRING "AArch64" 
+#endif 
+ 
#if !defined POSH_CPU_STRING 
# error POSH cannot determine target CPU 
# define POSH_CPU_STRING "Unknown" /* this is here for Doxygen's benefit */ 

Unterstützung für s390 war Hinzufügen über diese Zeilen hinzu:

#if defined __s390__ 
# define POSH_CPU_S390 1 
# define POSH_CPU_STRING "S/390" 
#endif 

wenn Sie wissen, Die entsprechenden Werte für S390/X können Sie dort hinzufügen.