Выполнение git pull на машинном дворе

Я развертываю свое приложение rails на Engine Yard.

Что у меня было до сих пор: 1. Создал SSH привет 2. Установите открытый ключ в приложение Engine Yard. 3. ssh [email protected]

Меня поместили домой/развернуть, что не является подходящим местом для выполнения git pull.

Причина, по которой мне нужно развернуть таким образом, заключается в том, что мое приложение использует гем nmatrix, который необходимо установить вручную с помощью компилятора С++. Автоматический упаковщик получил ошибку при извлечении этого драгоценного камня и остановился.

Обновление: я думаю, мой вопрос должен заключаться в том, как установить nmatrix в EngineYard. Это сообщение об ошибке, которое я получил при вызове gem install nmatrix:

Building native extensions.  This could take a while...
ERROR:  Error installing nmatrix:
    ERROR: Failed to build gem native extension.

    /usr/bin/ruby21 extconf.rb
checking for main() in -llapack... no
checking for main() in -lcblas... yes
checking for main() in -latlas... no
checking for clapack.h... no
checking for cblas.h... yes
checking for cblas.h... yes
checking for clapack_dgetrf() in cblas.h,clapack.h... no
checking for clapack_dgetri() in cblas.h,clapack.h... no
checking for dgesvd_() in clapack.h... no
checking for cblas_dgemm() in cblas.h... yes
using C++ standard... c++0x
g++ reports version... Hardened
creating nmatrix_config.h
creating Makefile

make "DESTDIR="
compiling nmatrix.cpp
In file included from nmatrix.cpp:331:0:
ruby_nmatrix.c: In function ‘VALUE nm_mset(int, VALUE*, VALUE)’:
ruby_nmatrix.c:1378:108: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘size_t’
ruby_nmatrix.c: In function ‘VALUE nm_xslice(int, VALUE*, void* (*)(const STORAGE*, SLICE*), void (*)(NMATRIX*), VALUE)’:
ruby_nmatrix.c:1556:91: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘size_t’
ruby_nmatrix.c: In function ‘SLICE* get_slice(size_t, int, VALUE*, size_t*)’:
ruby_nmatrix.c:1903:104: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘size_t’
ruby_nmatrix.c:1903:104: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘size_t’
compiling ruby_constants.cpp
compiling data/data.cpp
compiling util/io.cpp
compiling math.cpp
In file included from math.cpp:140:0:
math/rot.h: In function ‘void nm::math::rot(int, DType*, int, DType*, int, CSDType, CSDType) [with DType = nm::Complex<float>, CSDType = float]’:
math/rot.h:123:40: error: ‘cblas_csrot’ was not declared in this scope
math/rot.h: In function ‘void nm::math::rot(int, DType*, int, DType*, int, CSDType, CSDType) [with DType = nm::Complex<double>, CSDType = double]’:
math/rot.h:128:40: error: ‘cblas_zdrot’ was not declared in this scope
In file included from math.cpp:141:0:
math/rotg.h: In function ‘void nm::math::rotg(DType*, DType*, DType*, DType*) [with DType = nm::Complex<float>]’:
math/rotg.h:99:125: error: ‘cblas_crotg’ was not declared in this scope
math/rotg.h: In function ‘void nm::math::rotg(DType*, DType*, DType*, DType*) [with DType = nm::Complex<double>]’:
math/rotg.h:104:125: error: ‘cblas_zrotg’ was not declared in this scope
make: *** [math.o] Error 1


Gem files will remain installed in /home/deploy/.gem/ruby/2.1.0/gems/nmatrix-0.0.9 for inspection.
Results logged to /home/deploy/.gem/ruby/2.1.0/gems/nmatrix-0.0.9/ext/nmatrix/gem_make.out

Одним из предварительных условий для установки Nmatrix является наличие gcc > v4.7, но EngineYard имеет только v4.5.4. Кто-нибудь знает, как обновить gcc? Я думаю, что я использую Gentoo.


person VHanded    schedule 27.05.2014    source источник
comment
Можете ли вы опубликовать дополнительную информацию о том, какая ошибка возникла, когда Бандлер попытался получить драгоценный камень? Какую версию NMatrix вы указали? Пожалуйста, разместите эту информацию, возможно, мы сможем вам помочь.   -  person agarie    schedule 28.05.2014


Ответы (1)


На самом деле вопрос должен включать в себя что вы хотите git pull.

Когда вы входите по ssh, вы попадаете в /home/deploy, который является вашим домашним каталогом.

Копия Git вашего приложения находится в /data/APPNAME/shared/cache-copy/ мастере приложений.

У вас может быть несколько приложений в одном экземпляре, и у каждого может быть свой ключ развертывания, поэтому вы используете оболочку GIT_SSH.

GIT_SSH=/data/APPNAME/shared/config/pulse-ssh-wrapper git pull

(во всех приведенных выше командах не забудьте заменить APPNAME именем, используемым для приложения)

Если вы хотите найти фактическое местонахождение драгоценного камня в комплекте, вы можете посмотреть в

/data/APPNAME/shared/bundled_gems/ruby/2.0.0/gems (версия будет зависеть от Ruby ABI)

если ваш Gemfile использует :git, помните, что только один ключ развертывания может использоваться как для этапа клонирования приложения, так и для фазы пакета, вы не можете выбирать разные ключи для каждого гема.

Скорее всего, проблема с установкой nmatrix gem заключается в том, что библиотеки ATLAS еще не установлены, и их можно установить с помощью системного менеджера пакетов (Portage для Gentoo и Apt-get для Ubuntu). Вы можете добавить их через «Редактировать пакеты Unix» в пользовательском интерфейсе, просто выберите sci-libs/blas-atlas и sci-libs/lapack-atlas. В настоящее время это не удастся, потому что экземпляры EC2 являются процессорами Xeon, а библиотеки еще не основаны на них.

Вы можете увидеть тип ЦП на вашем экземпляре Linux с помощью «cat /proc/cpuinfo» и увидите что-то вроде

model name  :Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
person krutten    schedule 27.05.2014
comment
После нескольких дней отправки электронной почты инженеру машинного двора они, похоже, разобрались со мной. Проблема, связанная с оборудованием, повлияла на установку. Вместо nmatrix-0.0.9 я получаю 0.1.0.rc3 - person VHanded; 04.06.2014