Не удается «сделать» более старую версию ImageMagick

Мне нужно установить версию ImageMagick 6.9 для более раннего приложения Rails, которое я поддерживаю (который использует Ruby 1.8.6 в RVM).

Это новая установка Linux Mint 18.

Я загрузил файл «ImageMagick-6.9.6-7.tar.gz», распаковал его, зашел в результирующую папку и попытался ее создать.

Было много результатов с шага ./configure но он казался достаточно счастливым. Тем не менее, make терпит неудачу с большим количеством результатов: есть такие вещи, как это:

 coders/png.c: In function 'ReadOnePNGImage': coders/png.c:2238:45: warning: passing argument 3 of 'png_set_keep_unknown_chunks' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] png_set_keep_unknown_chunks(ping, 1, mng_iCCP, 1); ^ In file included from /usr/include/libpng12/png.h:321:0, from coders/png.c:101: /usr/include/libpng12/png.h:2330:25: note: expected 'png_bytep {aka unsigned char *}' but argument is of type 'const png_byte * {aka const unsigned char *}' extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp 

и т.п.

Поскольку это новая установка, я подозреваю, что может отсутствовать какой-либо инструмент сборки или dev utils или что-то в этом роде. Может ли кто-нибудь помочь? Извините, если это немного расплывчато.

EDIT: полный список пакетов, которые я установил: http://pastebin.com/bJg4qC0M

EDIT 2: полный вывод из make : http://pastebin.com/qXu5FUC4

EDIT 3: выход из make install : http://pastebin.com/5TPeQScp

One Solution collect form web for “Не удается «сделать» более старую версию ImageMagick”

Глядя на фактическое сообщение об ошибке (то, о чем вы упомянули в вопросе, является предупреждением , которое не завершит процесс компиляции):

libtool: install: / usr / bin / install -c magick / .libs / libMagickCore-6.Q16.so.2.0.0 /usr/local/lib/libMagickCore-6.Q16.so.2.0.0 / usr / bin / install: не удается создать обычный файл '/usr/local/lib/libMagickCore-6.Q16.so.2.0.0': разрешение отклонено

Это означает, что при запуске make install вы сделали это как пользователь, у которого нет прав на создание файлов в каталоге /usr/local/lib .

Для этого есть несколько решений.

Решение shoot-yourself-in-the-foot – запустить sudo make install . Это плохо, потому что

  1. Вы не знаете, что делает Makefile при запуске make install , а в худшем случае вы можете использовать вредоносный код как root .

  2. Установка вещей в /usr/local в системе Linux (или в любой системе Unix) плоха, потому что обычно это место, где файлы устанавливаются различными менеджерами пакетов. Это означает, что вы рискуете перезаписать существующие файлы.

  3. Как вы планируете удалить программное обеспечение?

Несколько лучших решений:

  1. Настройте проект для установки в нейтральной среде, такой как /opt или /sw (везде, где не используется системой и диспетчером пакетов). Сделайте это, запустив configure с параметром --prefix , например ./configure --prefix=/opt . Обратите внимание, что это может потребовать от вас выполнить sudo make install если у вас нет прав на запись в иерархии установки.

  2. Настройте проект для установки где-то в нашем домашнем каталоге. Это может быть лучшим вариантом, если вам не нужно устанавливать вещи в системе. Просто сделайте так, как указано выше, но установите префикс установки на что-то вроде $HOME/local или даже $HOME/tmp (а затем просто удалите этот каталог, когда закончите с ним).

Первый из этих подходов не полностью решает проблему последующей деинсталляции программного обеспечения, а второй подход разрешает его только при установке в пустую иерархию (просто rm -rf все это). Для этого я могу порекомендовать утилиту GNU Stow . Это упрощает удаление программного обеспечения, которое вы создаете самостоятельно. Без него очень сложно определить, какие файлы нужно удалить, если вы хотите что-то удалить.

  • Проверьте в bash, если make сделал что-то
  • Что делает `minix / config.h`?
  • Компиляция источников с компилятором, отличным от стандартного
  • Как изменить путь установки моего исходного дерева Linux?
  • Изменить имена файлов в Makefile
  • Как установить более старую версию GNU make с помощью apt на Ubuntu 16.04?
  • сделать фатальную ошибку: openssl / sha.h: нет такого файла или каталога
  • Fedora делает команду сломанной, несоответствие ядра
  • Как установить заголовки разработки ядра для установки с помощью Buildroot для разработки модуля ядра?
  • «Make install» перезаписывает файлы?
  • Что происходит на каждом этапе процесса создания ядра Linux?
  • Linux и Unix - лучшая ОС в мире.