Различие между “делает установку”, и “sudo делают установку”

Вы могли использовать "xargs". Тривиальный пример:

ls -1 *.c | sort -n | xargs cat

Необходимо было бы заботиться, что xargs не разделяет свой stdin на два или больше вызова афериста ("кошка" в примере выше).

15
22.10.2014, 19:17
3 ответа

Постарайтесь не превращать локальные установки в системные каталоги. Системные каталоги, например, /usr, резервируются, чтобы система управления пакета использовала. По определению, если Вы делаете make install это означает создание локальной установки, и если необходимо сделать sudo make install это означает, что у Вас нет разрешения к где бы вы ни были записи.

Так, если Вы получаете ошибки разрешения с make install, проверьте и посмотрите, пытаетесь ли Вы установить в системные каталоги и установку в /usr/local или подобный вместо этого. /usr/local резервируется для локальных установок. Вы, возможно, должны дать себе разрешение записать в /usr/local, но это обычно легко делается. На Debian это может быть сделано путем добавления себя к staff группа. Лучше все еще найдите или создайте двоичный пакет и установку это вместо этого. Тем путем можно легко отслеживать установленные пакеты и получить другие преимущества управления пакетом.

Обратите внимание, что система управления пакета с другой стороны не устанавливает в /usr/local, на FHS. Посмотрите Раздел 9.1 из Руководства политики Debian - Иерархия файловой системы для обзора.

16
27.01.2020, 19:49

Вот основное краткое изложение команд, вопрос:

  • sudo-выполняют команду как корень
  • сделайте - запускает скрипт для создания из источника

С тех пор sudo команда выполняет команду, Вы передаете ее как корень, это означает, что сделать команда имеет полномочия суперпользователя. Это означает, что, если make-файл является злонамеренным, или какой-либо из сценариев, он может звонить, является злонамеренным, затем он мог поставить под угрозу Вашу систему.

Короче говоря, если Вы не доверяете программному обеспечению, не устанавливайте его. Если Вы доверяете программному обеспечению, то выполнение как корень ничего не должно повреждать.

Примечание:

sudo make install совпадает с su; make install в большинстве случаев.

3
27.01.2020, 19:49
  • 1
    Вы были правы закончить с "в большинстве случаев". Вот угловой случай. –  ederag 26.09.2016, 10:59

Как был отвечен выше, sudo make install позволяет Вам установить файлы в каталогах, которые в других отношениях только для чтения Вам как пользователь.

Проблема, которую я могу предвидеть, состоит в том, что позднее можно хотеть удалить или обновить программу. Если у Вас все еще есть дерево каталогов исходного кода затем a make uninstall удалит программу для Вас, но если, как многие другие типичные пользователи, Вы удалили дерево каталогов исходного кода затем, Вам не повезло. И так как Вы не установили программу с помощью системы управления пакета, можно также не мочь удалить программу тот путь.

Лучший способ установить такие программы может состоять в том, чтобы установить их в Вашем корневом каталоге. Передайте опцию --prefix=/home/<user>/<some>/<directory> кому: ./configure. Это позволит Вам использовать make install вместо sudo make install с тех пор /home/<user>/<some>/<directory> перезаписываемо Вами. Также удаление является снимком- rm -rf /home/<user>/<some>/<directory>

3
27.01.2020, 19:49

Теги

Похожие вопросы