Современные дистрибутивы Linux и *BSD используют только такой подход. Вот почему нужно забыть «./configure; make; make install», . Суть сводится к тому, что эту команду в виде «make install» или. Установка и удаление программ в FreeBSD, коллекция портов (ports), установка. Устанавливаем программу вводя команду make install и удаляем . В июле 2012 года проект Портов FreeBSD сменил систему контроля версий: на смену CVS пришел.
Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install / Хабрахабр. К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего- либо для конкретного дистра предлагают выполнить make install. Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя. Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение.
А make install является универсальным, хоть и зачастую неправильным способом это сделать. Лирическое отступление.
Как известно, для нормальной работы большинство софта должно быть не только скомпилировано, но и правильно установлено в системе. Программы ожидают найти нужные им файлы в определённых местах, и места эти в большинстве *nix- систем зашиты в код на этапе компиляции. Помимо этого аспекта основным отличием процесса установки в linux/freebsd/whatever от таковой в Windows и Mac.
OS является то, что программа не просто складывает кучу файлов в отдельную директорию в Program Files или /Applications, а «размазывает» себя по всей файловой системе. Библиотеки идут в lib, исполняемые файлы в bin, конфиги в etc, разного рода данные в var и так далее. Если вам вдруг понадобится её обновить, то всё это надо сначала как- то вычистить, т. Вероятность этого события не так велика, но оно вам надо на боевом сервере?
И что с того? Более того, установка новой версии поверх старой, скорее всего, затрёт ваши изменения в конфигах. После этого процесса совершенно никакой информации о том, что и куда ставилось, получить в удобоваримом виде невозможно. Игру Пазлы Природа На Компьютер Через Торрент. Иногда, конечно, Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Помимо этого хранить для деинсталяции распакованное дерево исходников и правил сборки как- то странно.
Как бороться? При его использовании установка происходит примерно так: берётся определённым образом сформированный архивиз него извлекается информация о том, что это вообще такое, какой версии, от чего зависит, с чем конфликтует, надо ли для установки/удаления/настройки запускать какие- то скрипты, etc. Выполняются действия по непосредственной установке. Все данные о том, куда и что было поставлено добавляются в базу данных пакетного менеджера.
В этом случае при обновлении можно безболезненно поудалять лишнее, а заодно посмотреть, не поменялись ли в системе файлы, помеченные как конфигурационные и спросить, что делать, если в новой версии их содержимое отличается. Помимо этого, пакетный менеджер не даст затереть файлы одного пакета при установке другого. В общем, много полезных штук он может сделать.
Если вы по незнанию/лени скопипастили make install из инструкции, то в системе появляются файлы, о которых пакетный менеджер не знает. Со всеми вытекающими, если вам мало того, что было перечислено ранее. Что делать? Не говоря уже о путях для pkgconfig и прочем. Так что надо собирать пакет. У меня нет времени, чтобы ***ться с этим, лучше ещё раз сделаю make install, всё просто и понятно! Он у нас за ноги привязан.
Всё не так уж страшно и сложно, как кажется на первый взгляд. Всё, при обновлении никаких проблем с вычисткой старого хлама у вас не будет. Сборка deb- пакета вручную. Если вы не склонны доверять такой автоматике (которая иногда всё же косячит) или же хочется внести пару изменений, но разбираться с нормальным процессом сборки пакетов всё же лениво, то можно собрать пакет ручками.
Я привожу способ, как соорудить его для систем на базе Debian, т. Он не является идеологически правильным, но на выходе получается вполне корректный пакет без задействования дополнительных сущностей. Делается это следующим образом. Пишем: fakeroot. make install DESTDIR=`pwd`/tempinstall. После чего получаем в свежесозданной директории весь тот набор файлов.
Кстати, мы сейчас находимся в fakeroot- окружении, т. Софт же внутри fakeroot- сессии будет получать изменённую информацию, что позволит упаковать в архив файлы с корректными правами. А авторам статей на хабре просьба: пишите checkinstall вместо make install. Не надо давать вредные советы.