Відповіді:
Уникайте внесення локальних установок у системні каталоги. Наприклад, системні каталоги /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 має привілеї суперкористувача. Це означає, що якщо makefile є шкідливим, або будь-який із скриптів, які він може викликати, є шкідливим, то це може поставити під загрозу вашу систему.
Якщо коротко, якщо ви не довіряєте програмному забезпеченню, не встановлюйте його. Якщо ви довіряєте програмному забезпеченню, то запуск як root нічого не зашкодить.
Примітка:
sudo make install
те саме, що і su; make install
в більшості випадків.
Як було sudo make install
сказано вище, ви можете встановлювати файли в каталогах, які в іншому випадку доступні лише для читання вам як користувачеві.
Проблема, яку я можу передбачити, полягає в тому, що пізніше ви можете видалити або оновити програму. Якщо у вас все ще є дерево каталогів вихідного коду, make uninstall
програма a видалить програму для вас, але якщо, як і багато інших типових користувачів, ви видалили дерево каталогу каталогів вихідного коду, тоді вам не пощастить. А оскільки ви не встановили програму за допомогою системи управління пакетами, ви також не можете видалити програму таким чином.
Найкращим способом встановлення таких програм може бути встановлення їх у вашому домашньому каталозі. Передайте опцію --prefix=/home/<user>/<some>/<directory>
в ./configure
. Це дозволить вам використовувати make install
замість sudo make install
так /home/<user>/<some>/<directory>
Перезаписуємо вами. Також видалення є оснащенням -rm -rf /home/<user>/<some>/<directory>