1

ferretRHEL zlinux(s390xアーキテクチャー)マシンにruby gemをインストールしようとしていますが、コンパイルするようにパッチ.gemを適用した後にファイルをインストールしようとしています。

しかし、元のフェッチされたgemをインストールしようとしても、次のように失敗します。

[ me@s390x ]$ sudo gem fetch ferret
Downloaded ferret-0.11.6
[ me@s390x ]$ 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

このコマンドを実行する前は、「ferret」に関連する上記のディレクトリまたはファイルは存在しませんでした。

また、それがディレクトリであるというのも奇妙なこと/home/rubyusr/rubygems/gems/gems/ferret-0.11.6/binですが、それは通常の苦情かもしれません。

最後の複雑な要因は、gemコマンドを実行するときに、通常とは異なるrubygemsディレクトリの環境変数を設定するシェルスクリプトを実際に実行していることです(この設定ではこれまで問題はありませんでした)。これが私のgemシェルスクリプトです:

#!/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 $@

編集:

gem installコマンドを実行しても、通常はこのエラーが発生しないように見えることを追加するのを忘れました(ただし、ferretはコンパイルに失敗します)。次のエラーが発生します。

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

1 に答える 1

1

Arm64 のサポートを追加するよう求める Debian のバグがあります: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770922

その CPU のサポートを追加するには、ファイル ext/posh.h に数行を追加する必要があります。

--- 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 */

s390 のサポートを追加するには、次の行を追加する必要がありました。

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

S390/X の対応する値がわかっている場合は、そこに追加できます。

于 2016-06-07T20:15:20.120 に答える