Просмотр фактического сообщения об ошибке (в вопросе вы упомянули предупреждение , которое будет не прекращать процесс компиляции):
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': Permission denied
Это означает что, когда вы запускали make install
, вы делали это как пользователь, у которого нет разрешения на создание файлов в каталоге / usr / local / lib
.
Есть несколько решений.
Решение «стреляй себе в ногу» - запустить sudo make install
. Это плохо, потому что
вы не знаете, что делает Makefile при запуске make install
, а в худшем случае вы можете выполнить вредоносный код как root
.
Установка вещей в / usr / local
в системе Linux (или любой системе Unix) - это плохо, потому что обычно это место, куда файлы устанавливаются различными менеджерами пакетов. Это означает, что вы рискуете перезаписать существующие файлы.
Как вы планируете удалить программное обеспечение?
Несколько лучших решений:
Настройте проект для установки в нейтральной среде, например / opt
или / sw
(везде, где система и менеджер пакетов не используют). Сделайте это, запустив configure
с параметром - prefix
, например ./ configure --prefix = / opt
. Обратите внимание, что для этого может потребоваться запустить sudo make install
, если у вас нет прав на запись в иерархии установки.
Настройте проект для установки где-нибудь в нашем домашнем каталоге. Это может быть лучшим вариантом, если вам не нужно устанавливать его в масштабе всей системы. Сделайте то же самое, но установите для префикса установки что-то вроде $ HOME / local
или даже $ HOME / tmp
(а затем просто удалите этот каталог, когда закончите с ним ).
Первый из этих подходов не решает полностью проблему последующего удаления программного обеспечения, а второй подход решает ее только в случае установки в пустую иерархию (всего лишь rm -rf
) . Для этого я могу порекомендовать утилиту GNU Stow . Это упрощает удаление программного обеспечения, которое вы создаете самостоятельно. Без него действительно сложно отследить, какие файлы нужно удалить, если вы хотите что-то удалить.