Каков источник «скомпилировать его самостоятельно» в linux [закрыто]

Я немного использовал Linux в колледже и знаком с условиями. Я регулярно развиваюсь на языках .NET, поэтому я не компьютер неграмотный.

Тем не менее, я не могу сказать, что понимаю «скомпилировать его самостоятельно» [CIY], который существует в кругах * nix. Я знаю, что это уходит, но все равно слышать это время от времени. Как разработчик, я знаю, что настройка компиляторов и необходимых зависимостей - это боль в прикладе, поэтому я чувствую, что потоки работы CIY помогли сделать * nix намного менее доступным.

Какие социальные или технические факторы привели к возникновению менталитета CIY?

12 голосов | спросил Sidney 14 J0000006Europe/Moscow 2017, 20:28:04

2 ответа


14

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

Аспект с открытым исходным кодом

Есть люди, которым нравится знать, что они используют бесплатное программное обеспечение, и подтверждают это, выбирая компиляцию из источника. Здесь происходят такие вещи, как Linux From Scratch project /howto /guide /book.

Аспект оптимизации и параметров

Хотите скомпилировать материал с определенной оптимизацией для вашей конкретной архитектуры процессора? Возможно, есть опция времени компиляции (или патч для ее создания) для включения или отключения определенной функции, которая вам нужна. Примером этого может быть исправление постфикса, чтобы иметь возможность управлять квотами или использовать такой дистрибутив, как Gentoo, где вы можете отказаться от использования systemd, или вы специально настраиваете поддержку ogg /theora /vorbis /whatever и NOT mp3 из-за проблем с лицензированием или что-то еще.

Аспект архитектуры процессора

Использует ли ваше рабочее место высокопроизводительные машины, отличные от x86 /amd64? Пакет, который вам нужен /нужен, может быть недоступен, предварительно скомпилированный для вашей архитектуры процессора, а тем более независимо от того, какой вы используете. Конечно, большинство мест, в которых работает этот вид оборудования, также находятся в поддержке от IBM и т. Д., И не пытайтесь устанавливать /компилировать материал волей-неволей. Но что, если вы возьмете один из излишней продажи, выкапываете старый процессор iMac w /PPC и т. Д.?

Аспект распространения

Распределение «семейств» - то есть Debian w /Ubuntu, Mint, et al и RedHat с CentOS, Whitebox, Fedora и др. - все используют разные форматы пакетов. И каждая версия поставляется с различными версиями библиотек и т. Д. Даже для простого сценария с одиночной файловой оболочкой, устанавливающего надлежащий файл Debian .deb, требуется время и усилия. Если вы написали какое-нибудь программное обеспечение, чтобы поцарапать некоторый зуд и захотелось сделать его бесплатным и опубликовать его на gitlab, вашем собственном веб-сервере, что бы вы хотели, просто разместите общий файл .tar.gz источника с инструкциями по созданию или вы бы предпочли пакетные версии для двух версий Debian (стабильные и тестовые, возможно, старые), несколько версий Redhat и Fedora в качестве RPM, TGZ для Slackware, профиль ebuild для Gentoo и т. д. и т. д. и т. д.

ответил ivanivan 14 J0000006Europe/Moscow 2017, 21:03:49
9

Как говорит @terdon, в настоящее время необходимость компиляции вещей довольно тонкая, особенно для домашних пользователей.

В прошлом в мире Unix я сильно зависел от компиляции источников, например, когда я управлял системами Solaris, AIX, Ultrix, Digital Ultrix и HP /UX, которые иногда больше не поддерживались поставщиком, или какие реализации общих служб намного отстают от того, что обычно используется другими Unix, включая Linux.

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

Мне также пришлось составлять программное обеспечение вручную при выполнении реинжиниринга систем для переноса на Debian и /или новые версии Debian, у которых была инфраструктура, которая больше не поддерживалась ОС.

Например, в прошлом мне приходилось компилировать вручную DHCP-демоны, чтобы иметь поддержку (к последним) изменениям Windows в протоколе или поддерживать определенные исправления для обеспечения в мире Telecom.

Я все еще сохраняю в своих локальных репозиториях версии FreeRadius, скомпилированные мной из dev git repo, поскольку существует строка стабильных версий, в которых были (серьезные) ошибки в Debian, и обычно соответствующие .debs для Debian /Ubuntu не были адекватны нашим потребностям.

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

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

ответил Rui F Ribeiro 14 J0000006Europe/Moscow 2017, 20:52:36

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132