Это проблема, которая действительно ограничивает мое удовольствие от Linux. Если приложение не находится в репозитории или если у него нет сценария установки, тогда я действительно борюсь, где и как установить приложение из исходного кода.
По сравнению с Windows это просто. Вы (в значительной степени) обязаны использовать приложение-установщик, которое выполняет всю работу в мастере. С Linux ... не так много.
Итак, есть ли у вас какие-либо советы или инструкции по этому поводу или есть какие-либо веб-сайты, которые явно объясняют, как, почему и где устанавливать программы Linux из исходных текстов?
compiling
software-installation
source
Nitrodist
источник
источник
Ответы:
Обычно у проекта будет веб-сайт с инструкциями по его сборке и установке. Google для этого в первую очередь.
По большей части вы будете делать либо:
tar zxvf myapp.tar.gz
архиву в сжатом виде илиtar jxvf myapp.tar.bz2
в архиве с архивом./configure && make && sudo make install
Или:
./autogen.sh && make && sudo make install
Как configure, так и autogen.sh примут аргумент --prefix, чтобы указать, где установлено программное обеспечение. Я рекомендую проверить Где я должен поставить программное обеспечение, которое я сам собираю? за советом по поводу лучшего места для установки программного обеспечения на заказ.
источник
make && sudo make install
. Некоторые проекты Python будут иметь только setup.py, который вы будете вызывать для установки (так как нет реальной настройки компиляции). Есть также много других систем сборки / установки. Надеемся, что файлы README или INSTALL точно объяснят, что делать.Я просто хочу добавить, что есть менеджеры пакетов, которые компилируют пакеты из исходного кода и обрабатывают все зависимости пакетов, флаги и т. Д.
В системах BSD это
ports
: Использование Коллекции ПортовВ Debian
apt-get
менеджер пакетов также может быть установлен из исходного кода: APT HOWTO: Работа с исходными пакетами (То же самое касается Ubuntu, Linux-mint и всего остального, основанного на Debian)В дистрибутиве Gentoo используется
portage
менеджер пакетов, который компилирует всю систему только из исходного кода: Введение в Portage .Slackware может компилировать пакеты, но я не знаю, есть ли там менеджер пакетов для этого .. =)
В любом случае вы всегда можете скомпилировать пакеты вручную, как Сэнди упоминал выше =) Также должна быть возможность использовать
apt-get
илиportage
менеджеры пакетов в любом другом дистрибутивеисточник
Я думаю, что лучше всего прочитать документацию, прилагаемую к той конкретной программе или приложению, которое вы хотите установить. Обычно внутри tarballs находятся файлы readmes / README (исходный архив приложения, который вы обычно можете загрузить) или, возможно, даже файлы INSTALL, чтобы прочитать и узнать, какой способ установки приложения является предпочтительным. Короче: RTFM;)
источник
Сводка по использованию Коллекции Портов во FreeBSD:
Найти порт
Порты упорядочены по категориям, поэтому, если вы не знаете, к какой категории относится порт, вы должны сначала найти его:
Иногда таких записей слишком много. Я лично предпочитаю:
Используйте
*
при поиске, поскольку часто доступно несколько версий порта. Аргумент глубины гарантирует, что ваши возвращаемые результаты не будут излишне загромождены совпадениями, которые вы вряд ли захотите.конфигурация
Часто вам захочется выполнить некоторые настройки; Программное обеспечение, такое как Apache и Postgres, практически требует его. Существует три основных варианта: командная строка, окружение и файлы конфигурации make. Чтобы начать с командной строки:
это перечислит параметры конфигурации по умолчанию. Если вам нравятся настройки по умолчанию, вы готовы к компиляции и установке. Если не,
вызовет диалоговое окно, где вы можете выбрать, какие параметры вы хотите. (Не путайтесь с этим, и
make configure
это настраивает ваш порт с выбранными вами опциями!) Этого часто достаточно, но для некоторых программ, таких как Apache, часто существует сложная конфигурация, которую простой диалог не может обработать. Для этого вы также должны взглянуть на Makefile (ы), которые иногда дают вам некоторые дополнительные цели для make, которые дают вам больше информации. Продолжить пример Apacheпредоставит вам информацию о настройке выбранных вами модулей, опциях потоков и т.п. Если значения по умолчанию вашего порта в основном хороши, и вы просто хотите изменить несколько вещей, вы также можете просто передать пары ключ = значение, такие как переменные среды:
Кроме того, вы можете установить параметры переключателя с помощью
-D
опции:Однако для сложной конфигурации командная строка не будет работать хорошо, и вы лучше, ни один из первых двух методов не будет эффективным. В этом случае вы можете создать файл конфигурации и передать его
make
с помощью переменной __MAKE_CONF. FreeBSD имеет файл конфигурации по умолчанию,/etc/make.conf
который обычно содержит информацию о ранее установленных портах и других системных настройках. Для начала создайте файл с параметрами вашего порта, вызовите его~/myport.mk
и затем объедините этот файл с /etc/make.conf:Затем вы можете дважды проверить свою конфигурацию:
и если все выглядит хорошо
BEWARE! Если вам необходимо настроить параметры конфигурации после
make configure
или после установки полностью или частично, вам необходимо сначала очистить конфигурацию :Невыполнение этого требования приведет к неожиданному взаимодействию между подсистемой портов,
make
настройками по умолчанию для вашего порта и желаемой конфигурацией.Это довольно много для краткого изложения, но сложность конфигурации в основном связана с приложением, а не с портом. Bash, например, на самом деле не имеет никаких вариантов.
Установка
Это легкая часть:
или вы можете
который просто больше печатать.
Вот и все. Очевидно, что вы можете сделать больше, например, рекурсивно перечислять зависимости и параметры конфигурации, обновлять патчи и так далее. Здесь я отсылаю вас к разделу Руководства по портам, справочной странице подсистемы портов (хорошая информация о дополнительных целях make) и справочной
make
странице.источник
Недавно я начал использовать «Checkinstall» при установке из источника вне моего менеджера пакетов. Он создает «пакет» из стороннего архива, который затем можно установить (и удалить) с помощью инструментов менеджера пакетов.
Проверьте эту статью - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source
источник