Ответы:
Избегайте локальной установки в системные каталоги. Системные каталоги, например /usr
, зарезервированы для использования системой управления пакетами. По определению, если вы делаете это, make install
это означает, что вы делаете локальную установку, и если вам нужно сделать sudo make install
это, значит, у вас нет разрешения на то, куда вы пишете.
Итак, если вы получаете ошибки разрешения с make install
, проверьте и посмотрите, пытаетесь ли вы установить в системные каталоги, а /usr/local
вместо этого установить в или аналогичные. /usr/local
зарезервировано для локальных установок. Возможно, вам потребуется дать разрешение на запись /usr/local
, но обычно это легко сделать. На Debian это можно сделать, добавив себя в staff
группу. Более того, найдите или создайте двоичный пакет и установите его вместо этого. Таким образом, вы можете легко отслеживать установленные пакеты и получать другие преимущества управления пакетами.
Обратите внимание, что система управления пакетами, наоборот, не устанавливается в /usr/local
соответствии с FHS. Смотрите раздел 9.1 Руководства по политике Debian - иерархия файловой системы для обзора.
Вот краткое изложение команд: вопрос:
Поскольку команда sudo запускает команду, которую вы передаете от имени пользователя root, это означает, что команда make имеет привилегии суперпользователя. Это означает, что если make-файл является вредоносным или любой из скриптов, которые он может вызвать, является вредоносным, то это может поставить под угрозу вашу систему.
Короче говоря, если вы не доверяете программному обеспечению, не устанавливайте его. Если вы доверяете программному обеспечению, то запуск от имени пользователя root не должен повредить.
Замечания:
sudo make install
такой же, как и su; make install
в большинстве случаев.
Как уже было сказано выше, sudo make install
вы можете устанавливать файлы в каталогах, которые в противном случае доступны только вам как пользователю.
Проблема, которую я могу предвидеть, заключается в том, что позже вы можете захотеть удалить или обновить программу. Если у вас все еще есть дерево каталогов исходного кода, то программа make uninstall
удалит программу для вас, но если, как и многие другие обычные пользователи, вы удалили дерево каталогов исходного кода, то вам не повезло. И поскольку вы не установили программу с помощью системы управления пакетами, вы также не сможете удалить программу таким способом.
Наилучшим способом установки таких программ может быть их установка в вашем домашнем каталоге. Пропустите вариант --prefix=/home/<user>/<some>/<directory>
для ./configure
. Это позволит вам использовать make install
вместо sudo make install
так /home/<user>/<some>/<directory>
как доступно для записи вами. Также удаление совсем несложно -rm -rf /home/<user>/<some>/<directory>