Как скомпилировать и установить программы из источника

A tty обычное оконечное устройство (консоль на Вашем сервере, например).
A pts psuedo терминальное ведомое устройство ( xterm или ssh соединение).

man pts имеет подробное описание псевдотерминалов.

42
20.09.2012, 05:31
5 ответов

Обычно, проект будет иметь веб-сайт с инструкциями для того, как создать и установить его. Google для этого сначала.

По большей части Вы сделаете также:

  1. Загрузите tarball (tar.gz или файл tar bz2), который является выпуском определенной версии исходного кода
  2. Извлеките tarball с командой как tar zxvf myapp.tar.gz для gzipped tarball или tar jxvf myapp.tar.bz2 для bzipped tarball
  3. CD в каталог, созданный выше
  4. выполненный ./configure && make && sudo make install

Или:

  1. Используйте мерзавца или svn или безотносительно вытягивать последний исходный код из их официального исходного репозитория
  2. CD в каталог, созданный выше
  3. выполненный ./autogen.sh && make && sudo make install

Оба настраивают, и autogen.sh примет - аргумент префикса указывать, где программное обеспечение установлено. Я рекомендую проверить, Куда я должен поместить программное обеспечение, я компилирую меня? для совета относительно лучшего места для установки произведенного по заказу программного обеспечения.

24
27.01.2020, 19:35
  • 1
    То, почему autogen.sh используется при получении последнего, но настраивайте/делайте, используется для официального выпуска? –  Louis Salin 11.08.2010, 02:55
  • 2
    Обычно люди, которые хотят "новейшее" программное обеспечение, вытянут выпуск из программного обеспечения управления версиями (как мерзавец, подверсия или CVS). Это является "новейшим", потому что это, вероятно, не тестируется, в отличие от выпущенного tarball, который (вероятно), ручался за как работающий (по крайней мере главным образом). Иметь смысл? –  Matt Simmons 11.08.2010, 05:30
  • 3
    @Matt, уверенный, это имеет смысл, но я думаю, что комментарий был направлен больше на то, что Sandy теперь заставила его появиться, как будто существует autogen.sh в каждой соединительной линии git'd/svn'd. –  reiche 11.08.2010, 13:42
  • 4
    И курица в каждом горшке... или чем-то как этот. Heck, время от времени, я сталкиваюсь с программным обеспечением без настраивать сценария, также. Если бы был легкий, объединенный способ сделать его, то нам не были бы нужны пакеты ;-) –  Matt Simmons 11.08.2010, 14:04
  • 5
    Matt является абсолютно правильным, это - то, почему я сказал "по большей части" и сначала рекомендовал искать веб-сайт проекта. autogen.sh/configure совет будет содержать для в значительной степени каждого модуля GNOME и тонны других проектов, также. Некоторые проекты не используют, автоделают и будет только иметь Make-файл, и Вы будете просто работать make && sudo make install. Некоторые проекты Python будут только иметь setup.py, который Вы назовете к установке (так как нет никакой реальной установки компиляции). Существует много других систем сборки/установки там, также. Надо надеяться, README или файлы УСТАНОВКИ объяснят точно, что сделать. –  Sandy 11.08.2010, 16:11

Я просто хочу добавить, что существуют диспетчеры пакетов, которые компилируют пакеты из источника и обрабатывают все зависимости от пакета, флаги, и т.д.

В системах BSD это ports: Использование набора портов

В Debian, apt-get диспетчер пакетов может установить из источника также: ПРАКТИЧЕСКОЕ РУКОВОДСТВО APT: Работа с исходными пакетами (То же идет для Ubuntu, Linux Mint и всего остального на основе Debian),

Хинду распределение использует portage диспетчер пакетов, который компилирует целую систему из источника только: Введение Перевозки.

Slackware может скомпилировать пакеты, но я не знаю, существует ли какой-либо диспетчер пакетов для этого там..=)

Так или иначе можно всегда компилировать пакеты вручную как Sandy, упомянул выше =) Также должно быть возможно использовать apt-get или portage диспетчеры пакетов в любом другом дистрибутиве...

4
27.01.2020, 19:35
  • 1
    Для высказывания "Кв. - добираются, диспетчер пакетов может установить из источника", является неправильным. Заключенный в кавычки раздел описывает, как можно создать пакет Debian из источников Debian. Не произвольные восходящие источники. –  Faheem Mitha 13.12.2011, 21:45

Я думаю, что просто лучше прочитать документацию, идущую с той определенной программой или приложением, которое Вы желаете установить. Обычно существуют readmes/READMEs в tarballs (архив исходного кода приложения, который можно обычно загружать), или, возможно, даже УСТАНОВИТЕ файлы, чтобы читать и узнать о том, что является предпочтительным способом установить было, сказано в приложении. Короче говоря: прочитайте руководство ;)

2
27.01.2020, 19:35
  • 1
    я приехал сюда, потому что README дал все требования для создания в соответствии с Linux, но только имеет инструкции по установке Windows. Принятый ответ работал на меня и вероятно работает большую часть времени. Я думаю, что это - почти лучший совет попробовать эти./настраиваем маршрутов и перейти к README, если это не работает (т.е. пропавшие без вести зависимости, и Вы не можете считать выход компилятора). –  Stephen C 21.03.2018, 16:52

Сводка для использования Набора Портов в FreeBSD:

Найдите порт

Порты организованы по категориям поэтому, если Вы не знаете, какая категория порт находится в Вас, должны найти его сначала:

cd /usr/ports
make search name=myport

Иногда существует слишком много записей тот путь. Я лично предпочитаю:

find /usr/ports -name myport* -print -depth 2

Используйте * при поиске с тех пор часто существует несколько версий доступного порта. Аргумент глубины гарантирует, что Ваши результаты возврата не напрасно нарушены соответствиями, которые Вы вряд ли захотите.

Конфигурация

Часто, Вы захотите реализовать некоторую конфигурацию; программное обеспечение, такое как Apache и Пост-ГРЭС практически требует его. Существует три основных варианта: командная строка, среда и делают конфигурационные файлы. Начать с командной строкой:

make showconfig

это перечислит параметры конфигурации по умолчанию. Если Вам нравятся значения по умолчанию, Вы готовы скомпилировать и установить. В противном случае

make config

поднимет диалоговое окно, где можно выбрать, какие опции Вы хотите. (Не становитесь смущенными с этим и make configure который настраивает Ваш порт с Вашими выбранными опциями!) Это часто достаточно, но для некоторого программного обеспечения, как Apache, часто существует сложная конфигурация, которую не обработает простое диалоговое окно. Для этого также необходимо посмотреть на Make-файл (make-файлы), который будет иногда давать Вам, некоторые дополнительные цели для составляют то завещание, дают Вам больше информации. Продолжать пример Apache

make show-modules
make show-options
make show-categories

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

make MYVBL1=MYVAL1 ... install clean

Кроме того, можно установить опции переключателя через -D опция:

make -D MYVAR -D MYOTHERVAR ... install clean

Для сложной конфигурации однако командная строка не будет работать хорошо, и Вы лучше, ни один из первых двух методов не будет эффективным. В этом случае можно сделать конфигурационный файл и передачу этим к make с __ переменная MAKE_CONF. FreeBSD имеет конфигурационный файл по умолчанию: /etc/make.conf который обычно содержит информацию о ранее установленных портах и других параметрах настройки системы. Для начала создайте файл с опциями портов, назовите его ~/myport.mk и затем объединение, что файл с/etc/make.conf:

cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf

можно затем проверить конфигурацию дважды:

make showconfig __MAKE_CONF=~/make.port.conf

и если все выглядит хорошим:

make install clean __MAKE_CONF=~/make.myport.conf

Остерегайтесь! Если необходимо скорректировать параметры конфигурации после make configure или установка полностью или часть абсолютно необходимо очистить конфигурацию сначала:

make rmconfig

Отказ сделать так приведет к неожиданным взаимодействиям между подсистемой портов, Ваш порт make значения по умолчанию и Ваша желаемая конфигурация.

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

Установка

Это - легкая часть:

make install clean

или Вы можете

make build
make install
make clean

который просто больше вводит.

Это - в значительной степени это. Очевидно, существует больше, можно сделать, такие как рекурсивный список зависимостей и параметров конфигурации, обновления с патчами и так далее. Здесь я отошлю Вас к разделу Ports Руководства, страница справочника подсистемы порта (хорошая информация о дополнительном делают цели), и make страница справочника.

1
27.01.2020, 19:35

Недавно я начал использовать "Checkinstall" при установке из источника за пределами моего диспетчера пакетов. Это создает "пакет" из третьей стороны tarball, который может затем устанавливаться и управляться (и удаляться) через Ваши инструменты диспетчера пакетов.

Проверьте эту статью - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
27.01.2020, 19:35

Теги

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