Что делает "сделать установку"?

переходя от Windows к Linux, я не могу понять процесс установки программного обеспечения в Linux. В Windows, когда мы запускаем установочный файл, он спрашивает, где вы хотите установить программу, скорее всего, только в папке program files. Позже он редактирует реестр. Это называется установкой в Windows. Что именно означает "установка программного обеспечения" в Linux?

предположим, я скачал исходный код, сконфигурировал его, а затем собрал двоичный файл, используя make. Теперь это просто двоичная, еще не используемая программа. Как это будет получить "установлен" ? By make install ? И что конкретно делает эта команда?

12
задан KawaiKx
26.03.2023 4:28 Количество просмотров материала 3292
Распечатать страницу

4 ответа

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

когда вы делаете что-то вроде "make all", программа make выполняет правило с именем "all" из файла в текущем каталоге с именем "Makefile". Это правило обычно вызывает компилятор для компиляции некоторого исходного кода в двоичные файлы.

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

36
отвечен sharjeel 2023-03-27 12:16

make install Не все Makefile автор хочет это сделать. Как правило, к этому моменту уже слишком поздно менять каталог установки, как его часто называют ранее, во время сборки, поэтому на файлы справки и файлы конфигурации можно ссылаться с правильными путями.

многие проекты используют GNU Autotools попытаться улучшить их переносимость среди аппаратных средств и различий в операционной системе. (Различные варианты Unix используют немного разные заголовки для объявлений функций, которые немного отличаются от обычного пути-за исключением того, что большинству программ нужны те или иные из них, объявленные в разных местах.)

когда проект использует Autotools, обычная мантра для его установки:

./configure
make
make install

на ./configure обычно позволяет использовать параметр командной строки, например --prefix /opt/apache или что-то подобное, чтобы указать другой путь. /usr/local/ является общим значением по умолчанию prefix. Это гораздо проще для локально построенных программное обеспечение для проживания в одном месте и дистрибутив-предоставляется программное обеспечение для проживания в "главных каталогах":/usr/ /bin/ и так далее. (Упаковщики очень осторожно никогда touch файлы в /usr/local/ -- они знают, что это исключительно для системных администраторов.)

все равно ./configure --prefix /path/to/new/prefix установит переменную в Makefile, который доступен при компиляции программы, изменении справочных страниц, чтобы они указывали на правильные местоположения файлов, изменении файлы конфигурации и т. д. Так make построит програмное обеспечение специфически для положения установки вы хотите и make install установит его в эту папку.

большинство программ могут работать даже без final make install шаг -- просто ./program_name часто будет запускать их. Это определенно вещь для каждого проекта - некоторые, как postfix,qmail, etc. состоят из различных движущихся частей и полагаться на них все вместе. Другие, как ls или su может быть самодостаточный достаточно, чтобы выполнить штраф из каталога, в котором они были построены. (Это не часто полезно - но иногда очень полезное.)

однако не все проекты используют Autotools -- они огромный,сложные, и несчастный для поддержания. Рукописный Makefiles намного проще писать, и я лично думаю, что просто распространяю простой Makefile настройки переменных намного проще для разработчиков и пользователей оба. (Хотя ./configure ; make ; make install мантра действительно легкий на потребителях когда оно работает.)

33
отвечен sarnold 2023-03-27 14:33

make install не меньше, чем исполнение install функция / раздел Makefile

15
отвечен sascha 2023-03-27 16:50

самое главное, что нужно сказать об установке программного обеспечения на Linux, это то, что гораздо надежнее и проще установить программное обеспечение из вашего дистрибутива (это его цель!). Используйте только make install Если нет другого способа (рассмотрим альтернативные программы).

распространенной ошибкой пользователей Windows является загрузка программ из разных мест и попытка их установить, забыв проверить их дистрибутивы, которые можно установить одним щелчком мыши или командой (в менеджере пакетов).

также помните, что одной из основных причин отсутствия вирусных инфекций в Linux является то, что программное обеспечение устанавливается (или должно быть) из центрального (доверенного) местоположения вместо множества случайных сайтов.

как дополнительное примечание, в то время как дистрибутивы вроде Ubuntu всегда содержат устаревшие пакеты, есть также дистрибутивы, такими как Arch Linux, которые всегда вверх-к-дата (хотя они не предлагают буквально каждый программы, когда-либо выпущенных для Linux, как Debian/Ubuntu).

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

8
отвечен corvinus 2023-03-27 19:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх