LINUX.ORG.RU

поясните про rmagick/ruby

 ,


0

1

Дано rmagick-2.15.4 и imagemagick-6.9.4+

imagemagick создает несколько .pc

ImageMagick-6.Q16.pc
ImageMagick++-6.Q16.pc
ImageMagick.pc
ImageMagick++.pc
Magick++-6.Q16.pc
MagickCore-6.Q16.pc
MagickCore.pc
Magick++.pc
MagickWand-6.Q16.pc
MagickWand.pc

Какого $%^&* rmagick при сборке спрашивает про библиотеки libMagickCore pkg-config --libs MagickCore а потом пытается использовать libMagick++-6.Q16 ?

Оно же естественно не линкуется! Это даже ежу ясно!

Как собрать это гуано, кроме как временной правкой MagickCore.pc ?

Ну и в догонку...

Сборку passenger для nginx вообще какие-то странные люди писали!

На кой хрен требовать исходники nginx и пытаться их собирать? Собрали свой passenger с поддержкой nginx и сказали, что собери свой nginx с указанием пути до исходников их модуля и все! Те, кто собирает это чудо самостоятельно и так знают как это сделать, а остальные пользуются готовыми пакетами. Нафига этот навязчивый сервис?

Перемещено leave из talks

★★★★★

Так это раби же. Сломанная совместимость между минорными версиями и ад при сборке - норма.

entefeed ☆☆☆
()
Ответ на: комментарий от buddhist

Я вчера первый раз столкнулся с руби и я без понятия что происходит по команде «gem install ...»

Интересно, что гугление не дает никаких полезных результатов. Только аналогичные вопросы и ответы в стиле - это у вас в системе что-то не так.

vel ★★★★★
() автор топика
Ответ на: комментарий от iSage

-lMagickCore-6.Q16

вестимо, а «pkg-config --libs Magick++»

-lMagick++-6.Q16 -lMagickWand-6.Q16 -lMagickCore-6.Q16

Проблема в том, что libMagick++ не нужна для сборки Rmagick2.so, ее хочет только extconf.rb

vel ★★★★★
() автор топика
Последнее исправление: vel (всего исправлений: 2)
Ответ на: комментарий от iSage
find_executable: checking for gcc... -------------------- yes

--------------------

find_executable: checking for Magick-config... -------------------- yes

--------------------


Warning: Found a partial ImageMagick installation. : Your operating system likely has some built-in ImageMagick libraries but not all of ImageMagick. This will most likely cause problems at both compile and runtime.
Found partial installation at: /usr
configure_compile_options: checking for outdated ImageMagick version (<= 6.4.9)... -------------------- no

Detected ImageMagick version: 6.9.4
--------------------

assert_minimum_ruby_version!: checking for Ruby version >= 1.8.5... -------------------- yes

--------------------

"gcc -o conftest -I/usr/include/ruby-2.2.0/x86_64-linux -I/usr/include/ruby-2.2.0/ruby/backward 
 -I/usr/include/ruby-2.2.0 -I.  -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 
 -I/usr/include/ImageMagick-6  -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 
 -I/usr/include/ImageMagick-6  conftest.c  -L. -L/usr/lib64 -Wl,-R/usr/lib64  -lMagickCore-6.Q16    
 -lMagickCore-6.Q16   -Wl,-R/usr/lib64 -L/usr/lib64 -lruby  -lpthread -lgmp -ldl -lcrypt -lm   -lc"
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DestroyPixelWand'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PixelSetColor'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetStrokeWidth'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawRectangle'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPushPattern'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetStrokeColor'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPathLineToAbsolute'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawRoundRectangle'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawAnnotation'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPathStart'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetClipPath'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPathClose'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetViewbox'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PixelSetRedQuantum'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPopClipPath'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetStrokeAntialias'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DestroyMagickWand'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DestroyDrawingWand'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawColor'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `NewMagickWandFromImage'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawScale'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawLine'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PixelSetOpacityQuantum'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawRender'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetStrokePatternURL'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetFillPatternURL'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPushDefs'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawComment'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PixelSetBlueQuantum'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetFontSize'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetStrokeDashArray'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPathMoveToAbsolute'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPushClipPath'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPopPattern'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPathFinish'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetTextUnderColor'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetFillColor'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetFont'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `NewPixelWand'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawArc'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawRotate'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PopDrawingWand'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PixelSetGreenQuantum'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawTranslate'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetClipRule'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawComposite'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPathEllipticArcAbsolute'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetStrokeLineJoin'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawPopDefs'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PushDrawingWand'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawSetStrokeLineCap'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `PixelSetQuantumColor'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `DrawEllipse'
/usr/lib64/libMagickCore-6.Q16.so: undefined reference to `AcquireDrawingWand'
collect2: error: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

все неопределенные ссылки из libMagick++

А сообщение

Warning: Found a partial ImageMagick installation.
- наглый трындеж и провокация! Эти чудаки проверяют
    def check_partial_imagemagick_versions
      prefix = config_string('prefix') || ''
      matches = [
        prefix+'/lib/lib?agick*',
        prefix+'/include/ImageMagick',
        prefix+'/bin/Magick-config',
      ].map do |file_glob|
        Dir.glob(file_glob)
      end
      matches.delete_if { |arr| arr.empty? }
      if 0 < matches.length && matches.length < 3
        msg = "\nWarning: Found a partial ImageMagick installation.
на x86_64 либы лежат в /usr/lib64 , а не в /usr/lib

И вообще есть подозрение, что со времен imagemagick-6.4.9 что-то изменилось.

vel ★★★★★
() автор топика
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

на x86_64 либы лежат в /usr/lib64

Нет! Они лежат в /usr/lib/x86_64-linux-gnu/.

А если серьёзно, лежать они могут где угодно. Поэтому и используют pkg-config.

i-rinat ★★★★★
()
Ответ на: комментарий от vel

Ты это автору rmagick скажи :)

Боюсь, что это затянется.

i-rinat ★★★★★
()
Ответ на: комментарий от iSage

Все твои undefined reference - они как раз в libMagickWand LibMagick++ тут вообще ни при чем.

а, да.

Я добавил в MagickCore.pc все либы из Magick++.pc и оно собралось.

Как собрать модуль с исправленным extconf.rb я так и не понял.

vel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.