Errno :: EEXIST File Exists ошибка при установке гема 'ferret' из локального файла .gem - PullRequest
1 голос
/ 23 декабря 2010

Я пытаюсь установить ferret ruby ​​gem на машине RHEL zlinux (архитектура s390x) и пытаюсь установить файл .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 обычно не приводит к этомуошибка (но хорька не компилируется), с ошибкой:

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

1 Ответ

1 голос
/ 07 июня 2016

В Debian есть ошибка, требующая добавления поддержки arm64: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770922

Требуется добавить несколько строк в файл 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, вы можете добавить их туда.

...