Каково различие между созданием из источника и использованием пакета установки?

Вы обычно не вводите команду для выполнения Apache: это запускается когда начальные загрузки системы. Сценарии в /etc/init.d запустите сервисы, и выполняются автоматически во время начальной загрузки, если Ваша система настраивается правильно. С большинством дистрибутивов сервисам включают по умолчанию и запустятся, если Вы не сделали что-то для отключения их.

Если Вы остановили Apache и хотите перезапустить его, /etc/init.d/apache2 start нормальный путь — или предпочтительно service apache2 start. Это было бы мало полезно, чтобы иметь более короткую команду, так как это не что-то, что Вы сделали бы как часть использования нормальной системы. Команды, которые предназначаются для общего использования, может быть выполнен, не указывая их полный путь; эти команды находятся в каталогах, перечисленных в PATH переменная среды (какой Windows подражает).

46
29.02.2016, 13:37
5 ответов

Все программное обеспечение - это программы , которые также называются пакетами исходного кода . Итак, все пакеты с исходным кодом должны быть сначала собраны , чтобы работать в вашей системе.

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

Двоичные пакеты легко установить .
Но может не иметь всех опций из восходящего пакета.

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

Преимущества установки из исходного кода:

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

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

Обновление : добавление аргумента, связанного с безопасностью, в комментариях ниже. Да, это правда, что при установке из двоичного кода у вас нет целостности исходного кода. Но тогда это зависит от того, откуда вы взяли двоичный файл. Существует множество надежных источников, из которых вы можете получить двоичный код любого нового проекта, единственный минус - это время . Может потребоваться некоторое время, чтобы двоичный файл обновлений или даже новый проект появился в наших надежных репозиториях.

И, прежде всего, о безопасности программного обеспечения, я хотел бы выделить эту веселую страницу в Bell-labs , предоставленную Джо , в комментариях ниже.

44
27.01.2020, 19:34

Помимо других ответов, я хотел бы добавить кое-что:

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

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

Если вы не можете себе этого позволить, лучше позволить сопровождающему пакета делать эту работу за вас.

19
27.01.2020, 19:34

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

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

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

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

6
27.01.2020, 19:34

Исходный файл содержит оригинальный код, написанный разработчиком на любом языке, который он / она выбирает (C, C ++, Python и т. Д.), И является универсальным. Это не специфично для любого дистрибутива и во многих случаях для любой операционной системы.

Пакет (например, RPM или DEB) является бинарным исполняемым (или интерпретированным сценарием и т. Д.) Предварительно подготовлено для вашего определенного дистрибутива. Задача подготовки источника для составления (добавление любых необходимых патчей и т. Д.), Фактический компиляционный, создающий определенные файлы конфигурации DISTRE, создание сценариев Pre и Post Install etc все готово для вас сопровождающего пакета.

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

Гораздо проще в использовании пакета почти во всех случаях как:

  • Они намного проще установить
  • , они специально предназначены для работы с вашим дистрибутивом
  • , они иногда исправляются сопроводительными пакетами Исправлять определенные ошибки DISTRE
  • Диспетчер пакетов удалит их
  • Диспетчер пакетов будет управлять всеми зависимостями для вас
  • Менеджер пакетов позаботится об обновлениях
  • , вам не нужно устанавливать инструменты разработчика на ваш Система (компиляторы, создайте и т. Д.)

Однако иногда упакованная версия является старой версией или даже хуже, нет упакованной версии; В этом случае ваш единственный вариант состоит в том, чтобы скомпилировать себя. Если вы это сделаете, вам необходимо рассмотреть следующее:

  • Вам нужно будет установить все инструменты разработчика в вашей системе
  • , вы будете нести ответственность за проверку обновления и перекомпилирования
  • , вам нужно будет убедиться, Все зависимости устанавливаются, в том числе dev пакеты - могут быть многие из них.
  • Вам может потребоваться отладки проблем, если она не работает, как ожидалось, на вашем дистрибутиве

, если вы готовы ввести дополнительные усилия, то компиляция от источника может дать вам преимущества:

  • Последняя доступная версия
  • Опция оптимизации процесса компиляции для производительности / стабильности
  • Наслаждение!

Обратите внимание, что в то время как некоторые предварительные пакеты Distrios предоставляют двоичные исполнители, которые готовы к установке и запуску (RPM и DEB являются примерами), другие дистрибутивы предоставляют пакеты, которые просто автоматизируют процесс компиляции.

Gentoo's Ebuilds является примером этого - пакет в основном инструкции для менеджера пакета, описывающим, как компилировать и установить исполняемый файл. Это имеет много преимуществ традиционных менеджеров по пакетам (автоматические обновления, удаление и т. Д.), По-прежнему позволяют пользователю оптимизировать процесс компиляции к его / ее вкусу.

Arch Linux имеет упаковочную систему, в которой основные пакеты являются двоичными, в то время как многие дополнительные пакеты скомпилированы в системе с использованием файлов PKGBUILD .

32
27.01.2020, 19:34

Один из способов получить лучшее из обоих миров (актуальное программное обеспечение, простая установка / удаление, включение большинства дистрибутивов настройки и адаптации, можно оптимизировать для местных требований), в то время как затраты (нужно быть в курсе, следить за ошибками и исправлениями в последний момент, следить за разработкой, вы сами по себе в отношении исправлений ошибок и несовместимости между версиями ) не может быть уменьшено (сильно), заключается в создании собственных пакетов, начиная с исходных пакетов из вашего дистрибутива. Да, это больше, чем просто сборка и установка.

0
27.01.2020, 19:34

Теги

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