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


12

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

./configure && make && make install

или

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

или

./configure && make && sudo make install

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

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

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


Еще лучше ... 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

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

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


2

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

./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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.