Правильный способ строить из источников

12

Я вошел как обычный пользователь. Должен ли я использовать:

./configure && make && make install

или

sudo ./configure && sudo make && sudo make install

или

./configure && make && sudo make install

при установке пакетов.

И кто-то может объяснить различия.

Я хочу, чтобы все пользователи могли использовать его.

8k_of_power
источник
Еще лучше ... unix.stackexchange.com
mxmissile
1
Вы должны установить программное обеспечение из репозиториев Ubuntu или PPA. Если вы столкнулись с чем-то, что еще не упаковано, не стесняйтесь подумать о запуске собственного PPA. Таким образом, вы будете поддерживать свою систему в чистоте, будете предоставлять пакеты и другим людям, а в качестве бесплатного бонуса в конечном итоге получите больше тестеров.
тест

Ответы:

15

Ваша третья версия верна ./configure && make && sudo make install. Создать и настроить можно как обычный пользователь, так как вы не пытаетесь записывать файлы в системный каталог, make installчасто пытаетесь скопировать двоичные файлы в / usr / bin или / bin, для записи которых требуется доступ с правами root.

Бенн
источник
... и которые не должны быть записаны, потому что их содержимое управляется управлением пакетами.
reinierpost
2
Вы даже можете зайти так далеко, что создадите пользователя local, затем выполните команду a, chown -R local /usr/localа затем установите программное обеспечение, используя его, sudo local make installчтобы вы были предупреждены, когда пакет записывает куда-то еще, кроме него /usr/local(что может испортить управление вашим пакетом).
reinierpost
Если пакет собран в соответствии со стандартами кодирования gnu, необработанный файл 'configure && make && sudo make install' будет устанавливаться только в / usr / local, а не в / usr / bin или / bin.
Уильям Перселл
4

Вам нужна последняя версия:

./configure && make && sudo make install

Настройка и сборка могут происходить в вашей локальной папке, но для установки вам потребуются права суперпользователя. Эта команда выполняет это.

Убедитесь, что приложение, которое вы устанавливаете, отсутствует в менеджере пакетов. Как правило, гораздо проще использовать предварительно скомпилированное программное обеспечение для вашей системы, чем пытаться найти все зависимости для компиляции чего-либо.

Cfreak
источник
2

Вы должны использовать наименьшие привилегии, которые работают. Это обычно:

./configure && make && sudo make install
Марк Байерс
источник
2

Вариант № 3:

./configure

make

sudo make install
Джастин Нисснер
источник
2

&& анализируется вашей исходной оболочкой. Помещение одного sudo впереди влияет только на конфигурацию. Последний вариант имеет смысл, поскольку он настраивает и компилирует как обычный пользователь, а затем устанавливает результаты для всех пользователей.

Одно предостережение: некоторые скрипты configure обнаружат, что они запущены от имени пользователя без полномочий root, и создадут make-файлы, которые устанавливаются в $ HOME или аналогичный. В этом случае вы также захотите использовать sudo ./configure. Если вы запустите команду configure или make от имени пользователя root, у вас будут раздражать некоторые файлы, принадлежащие пользователю root, в вашем каталоге обычного пользователя.

Бен Джексон
источник
2

Вместо sudo make install вы должны использовать sudo checkinstall

Таким образом, установленная программа распознается системой управления пакетами, и вы можете удалить ее снова, если она вам больше не нужна.

https://help.ubuntu.com/community/CheckInstall

user54114
источник