Меню Рубрики

Установка программ исходных текстов

Компиляция и установка программ из исходников

Содержание

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

Распаковка

Программы обычно распространяются в упакованных архивах, это файлы с расширениями

Нужно понимать отличие между архиватором и упаковщиком.

Для архивации директорий и файлов используется программа tar; результатом её работы является файл с расширением .tar. Грубо говоря, это копия файловой системы — директорий и файлов с их атрибутами и правами доступа, помещённая в один файл.

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

Программа tar умеет распаковывать, поэтому не нужно вызывать gunzip, а можно просто указать программе tar, что файл нужно cначала распаковать. Например, команда

сразу распакует и разархивирует. Отличие файлов с расширениями

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

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

Сборка пакета

Для сборки программ в GNU/Linux используется (в основном) программа make, которая запускает инструкции из Makefile, но поскольку дистрибутивов GNU/Linux много, и они все разные, то для того чтобы собрать программу, нужно для каждого дистрибутива отдельно прописывать пути,где какие лежат библиотеки и заголовочные файлы. Программисты не могут изучать каждый дистрибутив и для каждого отдельно создавать Makefile. Поэтому придумали конфигураторы, которые «изучают» систему, и в соответствии с полученными знаниями создают Makefile. Но на конфигураторе они не остановились и придумали конфигураторы конфигураторов …на этом они остановились

Для сборки нам нужны компиляторы: они прописаны в зависимостях пакета build-essential, так что достаточно установить его со всеми зависимостями. Ещё нужны autoconf и automake.

Итак, чтобы собрать что-то из исходников, нужно сначала собрать конфигуратор; как собрать конфигуратор, описано в файле configure.in. Для сборки конфигуратора необходимо выполнить

Если таких скриптов в архиве не оказалось, то можно выполнить последовательно следующие команды:

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

Конфигуратор построит Makefile основываясь на полученных знаниях и файле makefile.am. Можно передать конфигуратору опции, предусмотренные в исходниках программы, которые позволяют включать/отключать те или иные возможности программы, обычно узнать о них можно командой

Также есть набор стандартных опций, вроде

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

БЕЗ слеша в конце! Теперь можно запустить процесс сборки самой программы командой

Для сборки достаточно привелегий обычного пользователя. Окончанием сборки можно считать момент, когда команды в консоли перестанут «беспорядочно» выполняться и не будет слова error. Теперь всё скомпилировано и готово для установки.

Установка

Усилия потраченные на Правильную установку в последствии с лихвой окупятся в случае удаления или обновления устанавливаемого программного обеспечения.

Правильная установка(Вариант №1)

Установка при помощи утилиты checkinstall. Для установки выполните

Для создания и установки deb-пакета необходимо выполнить

Правильная установка(Вариант №2)

Быстрое создание deb-пакета «вручную».

Установка (вариант №3)

Процедура создания deb-пакета подробно описана в данной статье.

Неправильная установка

Для установки необходимо выполнить

Для удаления пакета, установленного данным способом необходимо выполнить в корневой директории исходников программы (там где вы запускали make install).

Ошибки

Часто на этапе конфигурации конфигуратор сообщает, что нехватает той или иной библиотеки. Название библиотеки, которое он сообщает, не всегда соответствует названию пакета в Ubuntu. Из собственного опыта могу посоветовать поискать в Синаптике нужный пакет, исключив префикс lib, если нашлось несколько пакетов различающихся приставкой -dev в названии, то вам нужно установить именно -dev пакет (обычно он тянет за собой и не -dev пакет). Можно ещё поискать с помощью http://packages.ubuntu.com/, введя имя библиотеки в поиск по содержимому пакетов, аналогично, если найдётся dev и не dev, нужны оба . Ну или просто поискать в Google.

Необходимое программное обеспечение

Пакеты с буквами mm в конце описания — это пакеты для C++ программ. Список для bmpx, но подойдёт почти для любой GTK2/Gnome программы. Так что если не получается собрать, то посмотрите на этот список и сверьте с тем что у вас установлено.

источник

Установка программ исходных текстов

уПЪДБОЙЕ ЙУРПМОСЕНПЗП ЖБКМБ ЙЪ ПДЙОПЮОПЗП ЖБКМБ .c ЧЩЗМСДЙФ ДПЧПМШОП РТПУФП. уОБЮБМБ .c-ЖБКМ ЛПНРЙМЙТХЕФУС Ч ПВЯЕЛФОЩК ЛПД (ЖБКМ .o — «object»), ЛПФПТЩК ЪБФЕН РТЙ РПНПЭЙ УВПТЭЙЛБ (loader; ЕЗП ЕЭЕ ОБЪЩЧБАФ МЙОЛЕТПН — linker) У ДПВБЧМЕОЙЕН УЙУФЕНОЩИ ВЙВМЙПФЕЛ РТЕЧТБЭБЕФУС УПВУФЧЕООП Ч ЙУРПМОСЕНЩК ЖБКМ.

уПЪДБОЙЕ РТПЗТБННЩ ЙЪ ПДОПЗП ЙУИПДОПЗП ЖБКМБ

вПМШЫЙОУФЧП ЦЕ РТПЗТБНН УПУФПСФ ЙЪ ОЕУЛПМШЛЙИ ЙУИПДОЩИ ЖБКМПЧ (ЛТХРОЩЕ РТПЗТБННЩ УПДЕТЦБФ РП ОЕУЛПМШЛП УПФЕО Й ДБЦЕ ФЩУСЮ ЖБКМПЧ). ьФЙ ЖБКМЩ ФБЛЦЕ ЛПНРЙМЙТХАФУС Ч ПВЯЕЛФОЩК ЛПД, Б РПФПН УВПТЭЙЛ ДЕМБЕФ ЙЪ ОЙИ ЙУРПМОСЕНЩК ЖБКМ.

уПЪДБОЙЕ ЛТХРОПК РТПЗТБННЩ

нОПЗЙЕ РБЛЕФЩ УПУФПСФ ЙЪ ОЕУЛПМШЛЙИ ЙУРПМОСЕНЩИ ЖБКМПЧ, Ч ЬФПН УМХЮБЕ ЛБЦДЩК ЙЪ ОЙИ УПВЙТБЕФУС ФПЮОП ФБЛ ЦЕ. рТЙ ЬФПН НОПЗЙЕ РБЛЕФЩ УПДЕТЦБФ УПВУФЧЕООЩЕ ВЙВМЙПФЕЛЙ, ЛПФПТЩЕ ФБЛЦЕ ЛПНРЙМЙТХАФУС ЙЪ ЙУИПДОЩИ ФЕЛУФПЧ Ч ПВЯЕЛФОЩЕ ЖБКМЩ (УПЧЕТЫЕООП БОБМПЗЙЮОП ПВЩЮОЩН ЙУИПДОЩН ЖБКМБН — ОБ ТЙУХОЛЕ ЬФП РПЛБЪБОП ХРТПЭЕООП ДМС ЬЛПОПНЙЙ НЕУФБ) Й ЪБФЕН РТЙ РПНПЭЙ РТПЗТБННЩ-ВЙВМЙПФЕЛБТС (archiver) УПВЙТБАФУС Ч Ф.О. БТИЙЧЩ — ЖБКМЩ .a.

лПНРЙМСФПТЩ СЪЩЛБ уЙ Ч Unix ПВЩЮОП ОБЪЩЧБАФУС cc (C Compiler), Б ЪБЮБУФХА (ПУПВЕООП Ч Linux) ЙУРПМШЪХЕФУС Ф.О. GNU C Compiler — gcc . лПНРЙМСФПТЩ уЙ++ БОБМПЗЙЮОП ОБЪЩЧБАФУС c++ Й g++ . уВПТЭЙЛЙ ЙНЕОХАФУС ld , ИПФС НПЦОП ДМС ЬФЙИ ГЕМЕК РПМШЪПЧБФШУС Й gcc . вЙВМЙПФЕЛБТШ-БТИЙЧБФПТ — РТПЗТБННБ ar .

ъБНЕЮБОЙЕ
рТБЛФЙЮЕУЛЙ ЧУЕ УПЧТЕНЕООЩЕ ЛМПОЩ Unix РПДДЕТЦЙЧБАФ ФБЛЦЕ ТБЪДЕМСЕНЩЕ ВЙВМЙПФЕЛЙ (ЙНЕОХЕНЩЕ .so (shared object) ЙМЙ .sa (shared archive)), ЛПФПТЩЕ РПДЛМАЮБАФУС Л РТПЗТБННЕ ОЕРПУТЕДУФЧЕООП РЕТЕД ЙУРПМОЕОЙЕН (БОБМПЗЙЮОП .dll Ч Windows). уПВУФЧЕООП, ВПМШЫЙОУФЧП ВЙВМЙПФЕЛ СЧМСАФУС ЙНЕООП ТБЪДЕМСЕНЩНЙ. ъДЕУШ НЩ ТБЪДЕМСЕНЩЕ ВЙВМЙПФЕЛЙ ОЕ ЪБФТБЗЙЧБЕН ЧП-РЕТЧЩИ ДМС ЛТБФЛПУФЙ, Б ЧП-ЧФПТЩИ РПФПНХ, ЮФП ПВЩЮОП РТЙ ЛПНРЙМСГЙЙ ОЙЛБЛПЗП ЧОЕЫОЕЗП ПФМЙЮЙС НЕЦДХ .a Й .so ОЕФ.

хФЙМЙФБ make

рТЙЧЕДЕООБС Ч РТЕДЩДХЭЕН ТБЪДЕМЕ ЛБТФЙОБ УРПУПВОБ РПЧЕТЗОХФШ Ч ХОЩОЙЕ — ОЕХЦЕМЙ ЧУЕ ЬФЙ ДЕКУФЧЙС ОБДП ЧЩРПМОСФШ «ЧТХЮОХА»?

еУФЕУФЧЕООП, ОЕФ — ДМС ЬФПЗП УХЭЕУФЧХЕФ ХФЙМЙФБ make , ЛПФПТБС ЧУЕ Й ДЕМБЕФ («make» — ДПУМПЧОП «ДЕМБФШ»).

хФЙМЙФБ make УЮЙФЩЧБЕФ ЙЪ УРЕГЙБМШОПЗП ЖБКМБ У ЙНЕОЕН Makefile ЙМЙ makefile Ч ФЕЛХЭЕК ДЙТЕЛФПТЙЙ ЙОУФТХЛГЙЙ П ФПН, ЛБЛ (РТЙ РПНПЭЙ ЛБЛЙИ ЛПНБОД) ЛПНРЙМЙТПЧБФШ Й УПВЙТБФШ РТПЗТБННЩ, Б ФБЛЦЕ ЙОЖПТНБГЙА, ЙЪ ЛБЛЙИ ЖБКМПЧ УПУФПЙФ РТПЗТБННБ, ЛПФПТХА ОБДП «УДЕМБФШ».

пДОЙН ЙЪ ЗМБЧОЩИ ДПУФПЙОУФЧ make (ЮТЕЪЧЩЮБКОП РПМЕЪОЩН РТЙ УПЪДБОЙЙ ВПМШЫЙИ РТПЗТБНН) СЧМСЕФУС ФП, ЮФП ПО УТБЧОЙЧБЕФ ЧТЕНЕОБ НПДЙЖЙЛБГЙЙ ЖБКМПЧ, Й ЕУМЙ, Л РТЙНЕТХ, ЖБКМ file1.c ОПЧЕЕ, ЮЕН РПМХЮБЕНЩК ЙЪ ОЕЗП file1.o , ФП make РПКНЕФ, ЮФП РЕТЕЛПНРЙМЙТПЧБФШ ОБДП ФПМШЛП ЕЗП, Б ПУФБМШОЩЕ — ОЕ ОХЦОП (ЕУМЙ ПОЙ ОЕ ЙЪНЕОЙМЙУШ).

Читайте также:  Установка плагина фотошоп dmg

Makefile УПДЕТЦБФ ФТЙ ПУОПЧОЩИ ЛПНРПОЕОФБ:

  • рТБЧЙМБ, ЛБЛ ЙЪ ПДОЙИ ЖБКМПЧ УПЪДБЧБФШ ДТХЗЙЕ (ОБРТЙНЕТ, .o ЙЪ .c ).
  • фБЛ ОБЪЩЧБЕНЩЕ «ЪБЧЙУЙНПУФЙ», ЛПФПТЩЕ ХЛБЪЩЧБАФ, ЮФП, ОБРТЙНЕТ, ЙУРПМОСЕНЩК ЖБКМ proggie УПВЙТБЕФУС ЙЪ ЖБКМПЧ prg_main.o Й prg_funcs.o , Б ФЕ, Ч УЧПА ПЮЕТЕДШ, РПМХЮБАФУС ЙЪ ЖБКМПЧ prg_main.c Й prg_funcs.c .
  • пРТЕДЕМЕОЙС РЕТЕНЕООЩИ, РПЪЧПМСАЭЙЕ ДЕМБФШ Makefile ВПМЕЕ ЗЙВЛЙНЙ.

оЙЦЕ РТЙЧЕДЕО РТЙНЕТ РТПУФЕКЫЕЗП Makefile (ПО Й ЙУРПМШЪХЕНЩЕ ЖБКМЩ .c ДПУФХРОЩ ЪДЕУШ):

пРТЕДЕМЕОЙС РЕТЕНЕООЩИ. уФТПЛЙ ЧЙДБ » йнс=ЪОБЮЕОЙЕ » — ЬФП ПРТЕДЕМЕОЙС РЕТЕНЕООЩИ. дМС РПМХЮЕОЙС ЪОБЮЕОЙС РЕТЕНЕООПК ЙУРПМШЪХЕФУС ЪБРЙУШ » $(йнс&#41 » (ЪОБЛ ДПММБТБ, Б ЪБ ОЙН ЙНС РЕТЕНЕООПК Ч УЛПВЛБИ). рЕТЕНЕООБС НПЦЕФ ПРТЕДЕМСФШУС ЮЕТЕЪ ЪОБЮЕОЙС ДТХЗЙИ РЕТЕНЕООЩИ, ОБРТЙНЕТ:

рТБЧЙМБ. ъБРЙУШ » .c.o: » У РПУМЕДХАЭЕК ЛПНБОДПК ПЪОБЮБЕФ: «ДМС МАВПЗП ЖБКМБ .c , ЮФПВЩ ЙЪ ОЕЗП РПМХЮЙФШ ПДОПЙНЕООЩК ЖБКМ .o , ОБДП ЧЩРПМОЙФШ ФБЛХА-ФП ЛПНБОДХ»; Ч ДБООПН УМХЮБЕ —

ч РТБЧЙМБИ ЧУЕЗДБ ЙУРПМШЪХАФУС УРЕГЙБМШОЩЕ РЕТЕНЕООЩЕ » $@ » Й » $ «. рЕТЕНЕООБС » $@ » ПВПЪОБЮБЕФ «ФПФ ЖБКМ, ЛПФПТЩК ОБДП РПМХЮЙФШ» (Ч ДБООПН УМХЮБЕ .o), Б » $ » — «ЙУИПДОЩК ЖБКМ» (Ч ДБООПН УМХЮБЕ .c). фБЛЙЕ РЕТЕНЕООЩЕ ОБЪЩЧБАФУС БЧФПНБФЙЮЕУЛЙНЙ .

лПНБОДБ ТБУРПМБЗБЕФУС ОБ УМЕДХАЭЕК УФТПЛЕ, РТЙЮЕН ЬФБ УФТПЛБ ПВСЪБФЕМШОП ДПМЦОБ ОБЮЙОБФШУС У УЙНЧПМБ ФБВХМСГЙЙ .

ьФП ДПЧПМШОП УФТБООПЕ РТБЧЙМП СЧМСЕФУС ПУОПЧОЩН ЙУФПЮОЙЛПН ПЫЙВПЛ Й ЪБРХФБООПУФЙ Makefile’ПЧ — ЧЕДШ ЧЙЪХБМШОП ПФМЙЮЙФШ УЙНЧПМ ФБВХМСГЙЙ ПФ ГЕРПЮЛЙ РТПВЕМПЧ ОЕЧПЪНПЦОП. рПЬФПНХ, Л РТЙНЕТХ, ТЕДБЛФПТ Midnight Commander БЧФПНБФЙЮЕУЛЙ ГЧЕФПН ЧЩДЕМСЕФ УФТПЛЙ, ОБЮЙОБАЭЙЕУС У УЙНЧПМБ ФБВХМСГЙЙ.

оЕУНПФТС ОБ ФП, ЮФП ЪБЧЙУЙНПУФЙ РП ЧОЕЫОЕНХ ЧЙДХ РПИПЦЙ ОБ РТБЧЙМБ, make ЙИ ТБЪМЙЮБЕФ.

ч РТЙОГЙРЕ Ч ДБООПН Makefile ОЕ РПНЕЫБМЙ ВЩ Й УФТПЛЙ

вПМЕЕ ДМЙООЩЕ РТБЧЙМБ Й ЪБЧЙУЙНПУФЙ.

ч РТБЧЙМБИ НПЦОП ХЛБЪЩЧБФШ ОЕ ФПМШЛП ПДОХ ЛПНБОДХ, ОП Й ОЕУЛПМШЛП. дПРПМОЙФЕМШОЩЕ ЛПНБОДЩ ДПМЦОЩ ТБУРПМБЗБФШУС ОБ УМЕДХАЭЙИ УФТПЛБИ, РТЙЮЕН ДПРПМОЙФЕМШОЩЕ УФТПЛЙ ФБЛЦЕ ДПМЦОЩ ОБЮЙОБФШУС У УЙНЧПМБ ФБВХМСГЙЙ.

бОБМПЗЙЮОП РПУМЕ ЪБЧЙУЙНПУФЙ ОБ УМЕДХАЭЙИ УФТПЛБИ НПЦОП ХЛБЪБФШ ЛПНБОДЩ, РТЙ РПНПЭЙ ЛПФПТЩИ ЕЕ ОБДП «ДЕМБФШ». оБРТЙНЕТ,

рТЙ ЬФПН ЛПНБОДЩ, ПРТЕДЕМСЕНЩЕ Ч РТБЧЙМЕ » .c.o » ЙУРПМШЪПЧБФШУС ОЕ ВХДХФ.

ъБНЕЮБОЙЕ
ч Linux ЙУРПМШЪХЕФУС GNU-ЧЕТУЙС РТПЗТБННЩ make (GNU Make), ЙНЕАЭЙК ВПМЕЕ ВПЗБФЩК УЙОФБЛУЙУ (ПО ЧЛМАЮБЕФ ХУМПЧОЩЕ ЛПОУФТХЛГЙЙ, ДЙТЕЛФЙЧХ include ДМС «ЧУФБЧЛЙ» ДТХЗЙИ ЖБКМПЧ, ВПМЕЕ ЗЙВЛЙК ЖПТНБФ ПРТЕДЕМЕОЙС РТБЧЙМ (ЧЙДБ %.c: %.o )). рПЬФПНХ НОПЗЙЕ РТПЗТБННЩ РПМШЪХАФУС Makefile’БНЙ ЙНЕООП РПД GNU Make. ч ДТХЗЙИ пу ДМС ЧЩЪПЧБ GNU Make ПВЩЮОП УМХЦЙФ ЛПНБОДБ » gmake «.

рТЙ ЪБРХУЛЕ ВЕЪ РБТБНЕФТПЧ make РЩФБЕФУС УДЕМБФШ УБНХА РЕТЧХА ГЕМШ ЙЪ РЕТЕЮЙУМЕООЩИ Ч Makefile. пВЩЮОП Ч ЛБЮЕУФЧЕ РЕТЧПК УФБЧСФ ДПРПМОЙФЕМШОХА ГЕМШ » all «, ЪБЧЙУСЭХА ПФ ЧУЕИ ЖБКМПЧ, ЛПФПТЩЕ ОБДП УДЕМБФШ ДМС ЙЪЗПФПЧМЕОЙС РТПЗТБННЩ.

еУМЙ ЦЕ ХЛБЪБФШ Ч ЛПНБОДОПК УФТПЛЕ ЙНС ГЕМЙ, ФП make ЧЩРПМОЙФ ЛПНБОДЩ, ОЕПВИПДЙНЩЕ ДМС ЬФПК ГЕМЙ (Й, РТЙ ОБДПВОПУФЙ, ЛПНБОДЩ ДМС ЙЪЗПФПЧМЕОЙС РТПНЕЦХФПЮОЩИ ГЕМЕК).

еУМЙ ЪБРХУФЙФШ make У ЛМАЮПН » -n «, ФП ПО МЙЫШ ОБРЕЮБФБЕФ ОБ ЬЛТБОЕ ЛПНБОДЩ, ЛПФПТЩЕ УМЕДХЕФ ЧЩРПМОЙФШ, ОЕ ОЕ УФБОЕФ ТЕБМШОП ЙИ ЪБРХУЛБФШ. (нОЕНПОЙЛБ ДМС ЪБРПНЙОБОЙС: » -n » — «do Nothing» — «NЙЮЕЗП ОЕ ДЕМБК».)

лМАЮ » -f » РПЪЧПМСЕФ ЪБУФБЧЙФШ make ЮЙФБФШ ЙОУФТХЛГЙЙ ЙЪ ХЛБЪБООПЗП ЖБКМБ, ЧНЕУФП Makefile ЙМЙ makefile , ЙУРПМШЪХЕНЩИ РП ХНПМЮБОЙА. рТЙНЕТ:

еУМЙ РТЙ ЛПНРЙМСГЙЙ ЙМЙ УВПТЛЕ ЧПЪОЙЛБЕФ ПЫЙВЛБ, ФП make РТЕЛТБЭБЕФ РТПГЕУУ, ОЕ ЧЩРПМОСС РПУМЕДХАЭЙЕ ЛПНБОДЩ.

еУМЙ ЧПЪОЙЛБЕФ ОЕПВИПДЙНПУФШ УПЪДБФШ УЧПК Makefile, ФП МХЮЫЕ ЧУЕЗП ЧЪСФШ ЪБ ПВТБЪЕГ Makefile ПФ ЛБЛПК-ОЙВХДШ ОЕУМПЦОПК РТПЗТБННЩ.

лТПНЕ ФПЗП, ПЮЕОШ РПДТПВОБС ДПЛХНЕОФБГЙС (ЧЛМАЮБС ЧЧЕДЕОЙЕ ДМС ОБЮЙОБАЭЙИ) ЕУФШ Ч info-ДПЛХНЕОФБГЙЙ ОБ GNU Make, ЧЩЪЩЧБЕНПК ЛПНБОДПК » info make «, — ФБН УПДЕТЦЙФУС ВХЛЧБМШОП «ЧУЕ, ЮФП ЧЩ ИПФЕМЙ ЪОБФШ П Make, ОП ВПСМЙУШ УРТПУЙФШ».

лПОЖЙЗХТБГЙС, ЛПНРЙМСГЙС Й ХУФБОПЧЛБ РТПЗТБНН ЙЪ ЙУИПДОЩИ ФЕЛУФПЧ

рТЙ ТБЪТБВПФЛЕ РТПЗТБНН РПД Unix БЧФПТЩ ПВЩЮОП УФБТБАФУС УДЕМБФШ ФБЛ, ЮФПВЩ ЙИ РТПДХЛФ НПЦОП ВЩМП ЙУРПМШЪПЧБФШ У МАВЩН ЛМПОПН Unix.

оП, РПУЛПМШЛХ ТБЪОЩЕ ЛМПОЩ ДПЧПМШОП УЙМШОП ПФМЙЮБАФУС (ПУПВЕООП BSD-УЙУФЕНЩ ПФ SystemV), ФП ОБРЙУБФШ ЛПД, ЛПФПТЩК ЛПНРЙМЙТПЧБМУС Й ТБВПФБМ ВЩ ВЕЪ ЙЪНЕОЕОЙК ОБ ВПМШЫПН ЛПМЙЮЕУФЧЕ УЙУФЕН, РТБЛФЙЮЕУЛЙ ОЕЧПЪНПЦОП. рТЙЮЕН, ЮЕН ВПМШЫЕ РТПЗТБННБ, ФЕН ЬФБ ЪБДБЮБ УМПЦОЕЕ.

рПЬФПНХ РЕТЕД ЛПНРЙМСГЙЕК ОБДП УОБЮБМБ РТПЙЪЧЕУФЙ ОБУФТПКЛХ.

дМС ЬФПЗП ПВЩЮОП ЙУРПМШЪХЕФУС ПДЙО ЙЪ ФТЕИ УРПУПВПЧ:

  1. еУМЙ Л ДЙУФТЙВХФЙЧХ РТЙМБЗБЕФУС УЛТЙРФ configure , ФП ОБДП ЕЗП ЪБРХУФЙФШ (ЛПНБОДПК » ./configure «).
  2. чПЪНПЦОП, Ч Makefile ЙНЕЕФУС УРЕГЙБМШОБС ГЕМШ » config » — Ч ФБЛПН УМХЮБЕ ДМС ЛПОЖЙЗХТЙТПЧБОЙС УМХЦЙФ ЛПНБОДБ » make config «.
  3. ч Makefile НПЗХФ ВЩФШ ТБЪОЩЕ ГЕМЙ ДМС ТБЪОЩИ пу, Ч ФБЛПН УМХЮБЕ ДМС ЛПНРЙМСГЙЙ РПД Irix ОБДП ВХДЕФ ДБФШ ЛПНБОДХ ФЙРБ » make irix «, Б РПД Linux — » make linux «.

рЕТЧЩЕ ДЧБ УРПУПВБ УПЪДБАФ ЖБКМЩ ОБУФТПЕЛ, УРЕГЙЖЙЮОЩЕ ДМС ДБООПК пу (ПВЩЮОП ЬФП ЙМЙ include-ЖБКМЩ (.h), ЙМЙ ЦЕ УТБЪХ ЗЕОЕТЙТХЕФУС ОХЦОЩК Makefile). ч ФТЕФШЕН УМХЮБЕ УТБЪХ ЪБРХУЛБЕФУС ЛПНРЙМСГЙС У РБТБНЕФТБНЙ, УРЕГЙЖЙЮОЩНЙ ДМС ДБООПК УЙУФЕНЩ.

лБЛПК ЙЪ УРПУПВПЧ ЙУРПМШЪХЕФУС Ч ЛПОЛТЕФОПК РТПЗТБННЕ — ОБДП УНПФТЕФШ Ч РТЙМБЗБЕНПК ДПЛХНЕОФБГЙЙ (Ф.Е. Ч ЖБКМБИ ФЙРБ README Й INSTALL).

оЕРПУТЕДУФЧЕООП ДМС ЙОУФБММСГЙЙ ЦЕ РТБЛФЙЮЕУЛЙ ЧУЕЗДБ ЙУРПМШЪХЕФУС УРЕГЙБМШОБС ГЕМШ » install » Ч Makefile. ф.Е. ДМС ФПЗП, ЮФПВЩ РПУМЕ ЛПНРЙМСГЙЙ Й УВПТЛЙ ХУФБОПЧЙФШ РТПЗТБННХ, ОБДП ДБФШ ЛПНБОДХ

дМС РТЙНЕТБ ТБУУНПФТЙН ЛПНРЙМСГЙА ДЧХИ РТПЗТБНН — Wget, ЙУРПМШЪХАЭЕК РЕТЧЩК УРПУПВ, Й NetCat, ЙУРПМШЪХАЭЕК ФТЕФЙК.

ъБНЕЮБОЙЕ
ч РТЙОГЙРЕ, ПВЕ РТПЗТБННЩ (ЧУМЕДУФЧЙЕ УЧПЕК РПРХМСТОПУФЙ) УХЭЕУФЧХАФ Й Ч ЧЙДЕ .rpm-РБЛЕФПЧ, ОП ПОЙ СЧМСАФ УПВПК ПЮЕОШ РТПУФЩЕ Й «ЮЙУФЩЕ» РТЙНЕТЩ ПВПЙИ ЧБТЙБОФПЧ ЛПОЖЙЗХТЙТПЧБОЙС, РПЬФПНХ НЩ ЙНЙ Й ЧПУРПМШЪХЕНУС.

лПНРЙМСГЙС Й ХУФБОПЧЛБ РТПЗТБННЩ Wget

Wget — ЬФП ХФЙМЙФБ ЛПНБОДОПК УФТПЛЙ, УМХЦБЭБС ДМС УЛБЮЙЧБОЙС ЖБКМПЧ У WWW- Й FTP-УЕТЧЕТПЧ. пОБ ЙНЕЕФ НОПЦЕУФЧП ДПУФПЙОУФЧ, Ч ЮБУФОПУФЙ, ТЕЛХТТЕОФОХА РЕТЕЛБЮЛХ Й БЧФПНБФЙЮЕУЛХА ДПЛБЮЛХ РПУМЕ ПВТЩЧБ УПЕДЙОЕОЙС. (вПМЕЕ РПДТПВОП Wget ПРЙУБО Ч ТБЪДЕМЕ «рТПЗТБННБ wget»).

тБЪЧЕТОХЧ БТИЙЧ, НЩ ХЧЙДЙН Ч ОЕН ЖБКМ INSTALL Й УЛТЙРФ configure , Б ЧПФ Makefile ФБН ОЕФ!

лБЛ Й УМЕДПЧБМП ПЦЙДБФШ, Ч INSTALL ТЕЛПНЕОДХАФ ЪБРХУФЙФШ configure , Б ЪБФЕН ОБВТБФШ » make «.

ч ПФЧЕФ ОБ ЛПНБОДХ » ./configure » ЛПНРШАФЕТ УППВЭБЕФ, ЮФП ЛПОЖЙЗХТЙТХЕФ РТПЗТБННХ GNU Wget 1.5.3, Б ЪБФЕН ПЛПМП НЙОХФЩ РЕЮБФБЕФ УРЙУПЛ УЧПКУФЧ УЙУФЕНЩ, ЛПФПТЩЕ ПО РТПЧЕТСЕФ. ч ЛПОГЕ ПО ХЧЕДПНМСЕФ, ЮФП УПЪДБЕФ ОЕУЛПМШЛП Makefile (Ч ТБЪОЩИ РПДДЙТЕЛФПТЙСИ).

оБВТБЧ ФЕРЕТШ » make «, ЪБРХУЛБЕН РТПГЕУУ ЛПНРЙМСГЙЙ Й УВПТЛЙ, ЛПФПТЩК ЪБОЙНБЕФ ОЕЛПФПТПЕ ЧТЕНС.

рП ЕЗП ПЛПОЮБОЙЙ НПЦОП ОБВТБФШ » make install «. чПФ Й ЧУЕ!

лПНРЙМСГЙС РТПЗТБННЩ NetCat

NetCat — ЬФП, ЧППВЭЕ ЗПЧПТС, ИБЛЕТУЛБС РТПЗТБННБ ДМС «ПФМБДЛЙ» УЕФЙ, РПЪЧПМСАЭБС РЕТЕДБЧБФШ ДБООЩЕ Ч УЕФШ РП РТПФПЛПМБН TCP Й UDP Й РТЙОЙНБФШ ЙИ ЙЪ УЕФЙ. лБЛ ПВЩЮОП, ЧПУРПМШЪХЕНУС МПЛБМШОПК ЛПРЙЕК ДЙУФТЙВХФЙЧБ ЧЕТУЙЙ 1.10.

рЕТЧЩН ДЕМПН ТБЪЧЕТОЕН БТИЙЧ:

йЪ ЖБКМБ README ХЪОБЕН, ЮФП ДМС ЛПНРЙМСГЙЙ ОБДП ХЛБЪБФШ ЛПНБОДЕ make ФЙР пу. фП ЦЕ ХЧЙДЙН, Й ЪБРХУФЙЧ make ВЕЪ РБТБНЕФТПЧ:

вЕЗМЩК РТПУНПФТ Makefile РПЛБЪЩЧБЕФ, ЮФП Ч ОЕН ЕУФШ ГЕМШ РПД ОБЪЧБОЙЕН » linux «. йФБЛ,

лБЛ НЩ ЧЙДЙН, РПУМЕ ЛПНРЙМСГЙЙ РПСЧЙМУС ЙУРПМОСЕНЩК ЖБКМ nc . рПУЛПМШЛХ ГЕМШ » install » Ч Makefile ПФУХФУФЧХЕФ, ФП ДМС ХУФБОПЧЛЙ ОБДП РТПУФП УЛПРЙТПЧБФШ ЬФПФ ЖБКМ Ч ПВЭЕУЙУФЕНОХА ДЙТЕЛФПТЙА:

пУПВЕООПУФЙ ЛПНРЙМСГЙЙ РТПЗТБНН РПД X-Window

Imakefile Й РТПЗТБННБ xmkmf

л НПНЕОФХ РПСЧМЕОЙС УЙУФЕНЩ X-Window РТПВМЕНБ ТБЪМЙЮЙК РТЙ ЛПНРЙМСГЙЙ РПД ТБЪОЩЕ ЛМПОЩ Unix УФБМБ ХЦЕ ЫЙТПЛП ЙЪЧЕУФОБ, Й ВЩМ ТБЪТБВПФБО УРПУПВ, РПЪЧПМСАЭЙК ХОЙЖЙГЙТПЧБООП ЛПНРЙМЙТПЧБФШ рп ДМС X РПД ТБЪОЩНЙ УЙУФЕНБНЙ.

йДЕС ЪБЛМАЮБМБУШ Ч ФПН, ЮФПВЩ РЕТЕД ЛПНРЙМСГЙЕК Makefile БЧФПНБФЙЮЕУЛЙ ЗЕОЕТЙТПЧБМУС УРЕГЙБМШОПК ХФЙМЙФПК xmkmf , «ЪОБАЭЕК» РТП УРЕГЙЖЙЛХ ЛПОЛТЕФОПК УЙУФЕНЩ, ЙЪ ДТХЗПЗП ЖБКМБ, РПД ОБЪЧБОЙЕН Imakefile. ч Imakefile ЦЕ ОБ ОЕЛПЕН УРЕГЙБМШОПН СЪЩЛЕ ЪБРЙУЩЧБЕФУС РТЙНЕТОП ФБ ЦЕ ЙОЖПТНБГЙС, ЮФП Ч Makefile.

ъБНЕЮБОЙЕ
бВВТЕЧЙБФХТБ » xmkmf » ТБУЫЙЖТПЧЩЧБЕФУС ПЮЕОШ РТПУФП — «MaKe MakeFile» — «УДЕМБК Makefile», Б » x » — РТЕЖЙЛУ, ПВПЪОБЮБАЭЙК РТЙОБДМЕЦОПУФШ РТПЗТБННЩ Л X-Window.

иПФС ЪБНЩУЕМ ВЩМ ПЮЕОШ ИПТПЫЙК, ТЕБМЙЪБГЙС ПУФБЧМСЕФ ЦЕМБФШ МХЮЫЕЗП. чП-РЕТЧЩИ, СЪЩЛ Imakefile’ПЧ — ОЕ НЕОЕЕ «РФЙЮЙК», ЮЕН Х Makefile, ФБЛ ЮФП МАДЕК, ХНЕАЭЙИ ЙИ УПЪДБЧБФШ, ЕЭЕ НЕОШЫЕ. чП-ЧФПТЩИ, xmkmf ВЕТЕФ ПРЙУБОЙЕ УЙУФЕНЩ ЙЪ ОЕУЛПМШЛЙИ ЖБКМПЧ ЛПОЖЙЗХТБГЙЙ (Ч ЗМХВЙОЕ ДЙТЕЛФПТЙЙ /usr/X11R6/ ), Б ПОЙ ЪБЮБУФХА ПЛБЪЩЧБАФУС ОЕУПЧНЕУФЙНЩ У ЛПОЛТЕФОЩН Imakefile, Й xmkmf РТПУФП ЪБЧЕТЫБЕФУС У ЛБЛЙН-ОЙВХДШ НБМПЧТБЪХНЙФЕМШОЩН УППВЭЕОЙЕН ПВ ПЫЙВЛЕ.

фЕН ОЕ НЕОЕЕ, ВПМШЫЙОУФЧП РТПЗТБНН РПД X-Window РПУФБЧМСАФУС ЙНЕООП У Imakefile.

рТЙНЕТ УВПТЛЙ Й ХУФБОПЧЛЙ РТПЗТБННЩ РПД X-Window

ч ЛБЮЕУФЧЕ РТЙНЕТБ ТБУУНПФТЙН УВПТЛХ Й ХУФБОПЧЛХ РТПЗТБННЩ XRoach (ФПК УБНПК, ЮФП РХУЛБЕФ ВЕЗБФШ РП ЬЛТБОХ ФБТБЛБОПЧ). чПУРПМШЪХЕНУС МПЛБМШОПК ЛПРЙЕК ДЙУФТЙВХФЙЧБ.

уОБЮБМБ ТБЪЧЕТОЕН ДЙУФТЙВХФЙЧ:

рТПЮФС ЖБКМ README.linux , НЩ ХЪОБЕН МЙЫШ, ЮФП РТЙ ЛПНРЙМСГЙЙ ДПМЦОП ВЩФШ РТЕДХРТЕЦДЕОЙЕ (warning) Ч УФТПЛЕ 373.

ъБРХУЛБЕН xmkmf Й ЪБФЕН make :

фЕРЕТШ, БОБМПЗЙЮОП ПВЩЮОЩН РТПЗТБННБН, ДЕМБЕН » make install «:

еДЙОУФЧЕООП ЮФП, БЧФПТ РПМЕОЙМУС УДЕМБФШ БЧФПНБФЙЮЕУЛХА ХУФБОПЧЛХ man-УФТБОЙГЩ, ИПФС ПОБ Й ЕУФШ. юФП Ц, ОЕ ВЕДБ — УЛПРЙТХЕН ЕЕ Ч ОХЦОПЕ НЕУФП «ТХЛБНЙ»:

(рПУЛПМШЛХ » make install » ХУФБОПЧЙМ РТПЗТБННХ Ч /usr/X11R6/bin/ , ФП Й man-УФТБОЙГХ ОБДП РПМПЦЙФШ «ТСДПН» — ЧОХФТЙ /usr/X11R6/ . б РПУЛПМШЛХ xroach — РПМШЪПЧБФЕМШУЛБС РТПЗТБННБ, ФП ЕЕ man-УФТБОЙГБ ДПМЦОБ МЕЦБФШ Ч ТБЪДЕМЕ 1 (РПДДЙТЕЛФПТЙС man1/ .)

источник

Установка программ исходных текстов

уПЪДБОЙЕ ЙУРПМОСЕНПЗП ЖБКМБ ЙЪ ПДЙОПЮОПЗП ЖБКМБ .c ЧЩЗМСДЙФ ДПЧПМШОП РТПУФП. уОБЮБМБ .c-ЖБКМ ЛПНРЙМЙТХЕФУС Ч ПВЯЕЛФОЩК ЛПД (ЖБКМ .o — «object»), ЛПФПТЩК ЪБФЕН РТЙ РПНПЭЙ УВПТЭЙЛБ (loader; ЕЗП ЕЭЕ ОБЪЩЧБАФ МЙОЛЕТПН — linker) У ДПВБЧМЕОЙЕН УЙУФЕНОЩИ ВЙВМЙПФЕЛ РТЕЧТБЭБЕФУС УПВУФЧЕООП Ч ЙУРПМОСЕНЩК ЖБКМ.

уПЪДБОЙЕ РТПЗТБННЩ ЙЪ ПДОПЗП ЙУИПДОПЗП ЖБКМБ

вПМШЫЙОУФЧП ЦЕ РТПЗТБНН УПУФПСФ ЙЪ ОЕУЛПМШЛЙИ ЙУИПДОЩИ ЖБКМПЧ (ЛТХРОЩЕ РТПЗТБННЩ УПДЕТЦБФ РП ОЕУЛПМШЛП УПФЕО Й ДБЦЕ ФЩУСЮ ЖБКМПЧ). ьФЙ ЖБКМЩ ФБЛЦЕ ЛПНРЙМЙТХАФУС Ч ПВЯЕЛФОЩК ЛПД, Б РПФПН УВПТЭЙЛ ДЕМБЕФ ЙЪ ОЙИ ЙУРПМОСЕНЩК ЖБКМ.

уПЪДБОЙЕ ЛТХРОПК РТПЗТБННЩ

нОПЗЙЕ РБЛЕФЩ УПУФПСФ ЙЪ ОЕУЛПМШЛЙИ ЙУРПМОСЕНЩИ ЖБКМПЧ, Ч ЬФПН УМХЮБЕ ЛБЦДЩК ЙЪ ОЙИ УПВЙТБЕФУС ФПЮОП ФБЛ ЦЕ. рТЙ ЬФПН НОПЗЙЕ РБЛЕФЩ УПДЕТЦБФ УПВУФЧЕООЩЕ ВЙВМЙПФЕЛЙ, ЛПФПТЩЕ ФБЛЦЕ ЛПНРЙМЙТХАФУС ЙЪ ЙУИПДОЩИ ФЕЛУФПЧ Ч ПВЯЕЛФОЩЕ ЖБКМЩ (УПЧЕТЫЕООП БОБМПЗЙЮОП ПВЩЮОЩН ЙУИПДОЩН ЖБКМБН — ОБ ТЙУХОЛЕ ЬФП РПЛБЪБОП ХРТПЭЕООП ДМС ЬЛПОПНЙЙ НЕУФБ) Й ЪБФЕН РТЙ РПНПЭЙ РТПЗТБННЩ-ВЙВМЙПФЕЛБТС (archiver) УПВЙТБАФУС Ч Ф.О. БТИЙЧЩ — ЖБКМЩ .a.

лПНРЙМСФПТЩ СЪЩЛБ уЙ Ч Unix ПВЩЮОП ОБЪЩЧБАФУС cc (C Compiler), Б ЪБЮБУФХА (ПУПВЕООП Ч Linux) ЙУРПМШЪХЕФУС Ф.О. GNU C Compiler — gcc . лПНРЙМСФПТЩ уЙ++ БОБМПЗЙЮОП ОБЪЩЧБАФУС c++ Й g++ . уВПТЭЙЛЙ ЙНЕОХАФУС ld , ИПФС НПЦОП ДМС ЬФЙИ ГЕМЕК РПМШЪПЧБФШУС Й gcc . вЙВМЙПФЕЛБТШ-БТИЙЧБФПТ — РТПЗТБННБ ar .

ъБНЕЮБОЙЕ
рТБЛФЙЮЕУЛЙ ЧУЕ УПЧТЕНЕООЩЕ ЛМПОЩ Unix РПДДЕТЦЙЧБАФ ФБЛЦЕ ТБЪДЕМСЕНЩЕ ВЙВМЙПФЕЛЙ (ЙНЕОХЕНЩЕ .so (shared object) ЙМЙ .sa (shared archive)), ЛПФПТЩЕ РПДЛМАЮБАФУС Л РТПЗТБННЕ ОЕРПУТЕДУФЧЕООП РЕТЕД ЙУРПМОЕОЙЕН (БОБМПЗЙЮОП .dll Ч Windows). уПВУФЧЕООП, ВПМШЫЙОУФЧП ВЙВМЙПФЕЛ СЧМСАФУС ЙНЕООП ТБЪДЕМСЕНЩНЙ. ъДЕУШ НЩ ТБЪДЕМСЕНЩЕ ВЙВМЙПФЕЛЙ ОЕ ЪБФТБЗЙЧБЕН ЧП-РЕТЧЩИ ДМС ЛТБФЛПУФЙ, Б ЧП-ЧФПТЩИ РПФПНХ, ЮФП ПВЩЮОП РТЙ ЛПНРЙМСГЙЙ ОЙЛБЛПЗП ЧОЕЫОЕЗП ПФМЙЮЙС НЕЦДХ .a Й .so ОЕФ.

хФЙМЙФБ make

рТЙЧЕДЕООБС Ч РТЕДЩДХЭЕН ТБЪДЕМЕ ЛБТФЙОБ УРПУПВОБ РПЧЕТЗОХФШ Ч ХОЩОЙЕ — ОЕХЦЕМЙ ЧУЕ ЬФЙ ДЕКУФЧЙС ОБДП ЧЩРПМОСФШ «ЧТХЮОХА»?

еУФЕУФЧЕООП, ОЕФ — ДМС ЬФПЗП УХЭЕУФЧХЕФ ХФЙМЙФБ make , ЛПФПТБС ЧУЕ Й ДЕМБЕФ («make» — ДПУМПЧОП «ДЕМБФШ»).

хФЙМЙФБ make УЮЙФЩЧБЕФ ЙЪ УРЕГЙБМШОПЗП ЖБКМБ У ЙНЕОЕН Makefile ЙМЙ makefile Ч ФЕЛХЭЕК ДЙТЕЛФПТЙЙ ЙОУФТХЛГЙЙ П ФПН, ЛБЛ (РТЙ РПНПЭЙ ЛБЛЙИ ЛПНБОД) ЛПНРЙМЙТПЧБФШ Й УПВЙТБФШ РТПЗТБННЩ, Б ФБЛЦЕ ЙОЖПТНБГЙА, ЙЪ ЛБЛЙИ ЖБКМПЧ УПУФПЙФ РТПЗТБННБ, ЛПФПТХА ОБДП «УДЕМБФШ».

пДОЙН ЙЪ ЗМБЧОЩИ ДПУФПЙОУФЧ make (ЮТЕЪЧЩЮБКОП РПМЕЪОЩН РТЙ УПЪДБОЙЙ ВПМШЫЙИ РТПЗТБНН) СЧМСЕФУС ФП, ЮФП ПО УТБЧОЙЧБЕФ ЧТЕНЕОБ НПДЙЖЙЛБГЙЙ ЖБКМПЧ, Й ЕУМЙ, Л РТЙНЕТХ, ЖБКМ file1.c ОПЧЕЕ, ЮЕН РПМХЮБЕНЩК ЙЪ ОЕЗП file1.o , ФП make РПКНЕФ, ЮФП РЕТЕЛПНРЙМЙТПЧБФШ ОБДП ФПМШЛП ЕЗП, Б ПУФБМШОЩЕ — ОЕ ОХЦОП (ЕУМЙ ПОЙ ОЕ ЙЪНЕОЙМЙУШ).

Makefile УПДЕТЦБФ ФТЙ ПУОПЧОЩИ ЛПНРПОЕОФБ:

  • рТБЧЙМБ, ЛБЛ ЙЪ ПДОЙИ ЖБКМПЧ УПЪДБЧБФШ ДТХЗЙЕ (ОБРТЙНЕТ, .o ЙЪ .c ).
  • фБЛ ОБЪЩЧБЕНЩЕ «ЪБЧЙУЙНПУФЙ», ЛПФПТЩЕ ХЛБЪЩЧБАФ, ЮФП, ОБРТЙНЕТ, ЙУРПМОСЕНЩК ЖБКМ proggie УПВЙТБЕФУС ЙЪ ЖБКМПЧ prg_main.o Й prg_funcs.o , Б ФЕ, Ч УЧПА ПЮЕТЕДШ, РПМХЮБАФУС ЙЪ ЖБКМПЧ prg_main.c Й prg_funcs.c .
  • пРТЕДЕМЕОЙС РЕТЕНЕООЩИ, РПЪЧПМСАЭЙЕ ДЕМБФШ Makefile ВПМЕЕ ЗЙВЛЙНЙ.

оЙЦЕ РТЙЧЕДЕО РТЙНЕТ РТПУФЕКЫЕЗП Makefile (ПО Й ЙУРПМШЪХЕНЩЕ ЖБКМЩ .c ДПУФХРОЩ ЪДЕУШ):

пРТЕДЕМЕОЙС РЕТЕНЕООЩИ. уФТПЛЙ ЧЙДБ » йнс=ЪОБЮЕОЙЕ » — ЬФП ПРТЕДЕМЕОЙС РЕТЕНЕООЩИ. дМС РПМХЮЕОЙС ЪОБЮЕОЙС РЕТЕНЕООПК ЙУРПМШЪХЕФУС ЪБРЙУШ » $(йнс&#41 » (ЪОБЛ ДПММБТБ, Б ЪБ ОЙН ЙНС РЕТЕНЕООПК Ч УЛПВЛБИ). рЕТЕНЕООБС НПЦЕФ ПРТЕДЕМСФШУС ЮЕТЕЪ ЪОБЮЕОЙС ДТХЗЙИ РЕТЕНЕООЩИ, ОБРТЙНЕТ:

рТБЧЙМБ. ъБРЙУШ » .c.o: » У РПУМЕДХАЭЕК ЛПНБОДПК ПЪОБЮБЕФ: «ДМС МАВПЗП ЖБКМБ .c , ЮФПВЩ ЙЪ ОЕЗП РПМХЮЙФШ ПДОПЙНЕООЩК ЖБКМ .o , ОБДП ЧЩРПМОЙФШ ФБЛХА-ФП ЛПНБОДХ»; Ч ДБООПН УМХЮБЕ —

ч РТБЧЙМБИ ЧУЕЗДБ ЙУРПМШЪХАФУС УРЕГЙБМШОЩЕ РЕТЕНЕООЩЕ » $@ » Й » $ «. рЕТЕНЕООБС » $@ » ПВПЪОБЮБЕФ «ФПФ ЖБКМ, ЛПФПТЩК ОБДП РПМХЮЙФШ» (Ч ДБООПН УМХЮБЕ .o), Б » $ » — «ЙУИПДОЩК ЖБКМ» (Ч ДБООПН УМХЮБЕ .c). фБЛЙЕ РЕТЕНЕООЩЕ ОБЪЩЧБАФУС БЧФПНБФЙЮЕУЛЙНЙ .

лПНБОДБ ТБУРПМБЗБЕФУС ОБ УМЕДХАЭЕК УФТПЛЕ, РТЙЮЕН ЬФБ УФТПЛБ ПВСЪБФЕМШОП ДПМЦОБ ОБЮЙОБФШУС У УЙНЧПМБ ФБВХМСГЙЙ .

ьФП ДПЧПМШОП УФТБООПЕ РТБЧЙМП СЧМСЕФУС ПУОПЧОЩН ЙУФПЮОЙЛПН ПЫЙВПЛ Й ЪБРХФБООПУФЙ Makefile’ПЧ — ЧЕДШ ЧЙЪХБМШОП ПФМЙЮЙФШ УЙНЧПМ ФБВХМСГЙЙ ПФ ГЕРПЮЛЙ РТПВЕМПЧ ОЕЧПЪНПЦОП. рПЬФПНХ, Л РТЙНЕТХ, ТЕДБЛФПТ Midnight Commander БЧФПНБФЙЮЕУЛЙ ГЧЕФПН ЧЩДЕМСЕФ УФТПЛЙ, ОБЮЙОБАЭЙЕУС У УЙНЧПМБ ФБВХМСГЙЙ.

оЕУНПФТС ОБ ФП, ЮФП ЪБЧЙУЙНПУФЙ РП ЧОЕЫОЕНХ ЧЙДХ РПИПЦЙ ОБ РТБЧЙМБ, make ЙИ ТБЪМЙЮБЕФ.

ч РТЙОГЙРЕ Ч ДБООПН Makefile ОЕ РПНЕЫБМЙ ВЩ Й УФТПЛЙ

вПМЕЕ ДМЙООЩЕ РТБЧЙМБ Й ЪБЧЙУЙНПУФЙ.

ч РТБЧЙМБИ НПЦОП ХЛБЪЩЧБФШ ОЕ ФПМШЛП ПДОХ ЛПНБОДХ, ОП Й ОЕУЛПМШЛП. дПРПМОЙФЕМШОЩЕ ЛПНБОДЩ ДПМЦОЩ ТБУРПМБЗБФШУС ОБ УМЕДХАЭЙИ УФТПЛБИ, РТЙЮЕН ДПРПМОЙФЕМШОЩЕ УФТПЛЙ ФБЛЦЕ ДПМЦОЩ ОБЮЙОБФШУС У УЙНЧПМБ ФБВХМСГЙЙ.

бОБМПЗЙЮОП РПУМЕ ЪБЧЙУЙНПУФЙ ОБ УМЕДХАЭЙИ УФТПЛБИ НПЦОП ХЛБЪБФШ ЛПНБОДЩ, РТЙ РПНПЭЙ ЛПФПТЩИ ЕЕ ОБДП «ДЕМБФШ». оБРТЙНЕТ,

рТЙ ЬФПН ЛПНБОДЩ, ПРТЕДЕМСЕНЩЕ Ч РТБЧЙМЕ » .c.o » ЙУРПМШЪПЧБФШУС ОЕ ВХДХФ.

ъБНЕЮБОЙЕ
ч Linux ЙУРПМШЪХЕФУС GNU-ЧЕТУЙС РТПЗТБННЩ make (GNU Make), ЙНЕАЭЙК ВПМЕЕ ВПЗБФЩК УЙОФБЛУЙУ (ПО ЧЛМАЮБЕФ ХУМПЧОЩЕ ЛПОУФТХЛГЙЙ, ДЙТЕЛФЙЧХ include ДМС «ЧУФБЧЛЙ» ДТХЗЙИ ЖБКМПЧ, ВПМЕЕ ЗЙВЛЙК ЖПТНБФ ПРТЕДЕМЕОЙС РТБЧЙМ (ЧЙДБ %.c: %.o )). рПЬФПНХ НОПЗЙЕ РТПЗТБННЩ РПМШЪХАФУС Makefile’БНЙ ЙНЕООП РПД GNU Make. ч ДТХЗЙИ пу ДМС ЧЩЪПЧБ GNU Make ПВЩЮОП УМХЦЙФ ЛПНБОДБ » gmake «.

рТЙ ЪБРХУЛЕ ВЕЪ РБТБНЕФТПЧ make РЩФБЕФУС УДЕМБФШ УБНХА РЕТЧХА ГЕМШ ЙЪ РЕТЕЮЙУМЕООЩИ Ч Makefile. пВЩЮОП Ч ЛБЮЕУФЧЕ РЕТЧПК УФБЧСФ ДПРПМОЙФЕМШОХА ГЕМШ » all «, ЪБЧЙУСЭХА ПФ ЧУЕИ ЖБКМПЧ, ЛПФПТЩЕ ОБДП УДЕМБФШ ДМС ЙЪЗПФПЧМЕОЙС РТПЗТБННЩ.

еУМЙ ЦЕ ХЛБЪБФШ Ч ЛПНБОДОПК УФТПЛЕ ЙНС ГЕМЙ, ФП make ЧЩРПМОЙФ ЛПНБОДЩ, ОЕПВИПДЙНЩЕ ДМС ЬФПК ГЕМЙ (Й, РТЙ ОБДПВОПУФЙ, ЛПНБОДЩ ДМС ЙЪЗПФПЧМЕОЙС РТПНЕЦХФПЮОЩИ ГЕМЕК).

еУМЙ ЪБРХУФЙФШ make У ЛМАЮПН » -n «, ФП ПО МЙЫШ ОБРЕЮБФБЕФ ОБ ЬЛТБОЕ ЛПНБОДЩ, ЛПФПТЩЕ УМЕДХЕФ ЧЩРПМОЙФШ, ОЕ ОЕ УФБОЕФ ТЕБМШОП ЙИ ЪБРХУЛБФШ. (нОЕНПОЙЛБ ДМС ЪБРПНЙОБОЙС: » -n » — «do Nothing» — «NЙЮЕЗП ОЕ ДЕМБК».)

лМАЮ » -f » РПЪЧПМСЕФ ЪБУФБЧЙФШ make ЮЙФБФШ ЙОУФТХЛГЙЙ ЙЪ ХЛБЪБООПЗП ЖБКМБ, ЧНЕУФП Makefile ЙМЙ makefile , ЙУРПМШЪХЕНЩИ РП ХНПМЮБОЙА. рТЙНЕТ:

еУМЙ РТЙ ЛПНРЙМСГЙЙ ЙМЙ УВПТЛЕ ЧПЪОЙЛБЕФ ПЫЙВЛБ, ФП make РТЕЛТБЭБЕФ РТПГЕУУ, ОЕ ЧЩРПМОСС РПУМЕДХАЭЙЕ ЛПНБОДЩ.

еУМЙ ЧПЪОЙЛБЕФ ОЕПВИПДЙНПУФШ УПЪДБФШ УЧПК Makefile, ФП МХЮЫЕ ЧУЕЗП ЧЪСФШ ЪБ ПВТБЪЕГ Makefile ПФ ЛБЛПК-ОЙВХДШ ОЕУМПЦОПК РТПЗТБННЩ.

лТПНЕ ФПЗП, ПЮЕОШ РПДТПВОБС ДПЛХНЕОФБГЙС (ЧЛМАЮБС ЧЧЕДЕОЙЕ ДМС ОБЮЙОБАЭЙИ) ЕУФШ Ч info-ДПЛХНЕОФБГЙЙ ОБ GNU Make, ЧЩЪЩЧБЕНПК ЛПНБОДПК » info make «, — ФБН УПДЕТЦЙФУС ВХЛЧБМШОП «ЧУЕ, ЮФП ЧЩ ИПФЕМЙ ЪОБФШ П Make, ОП ВПСМЙУШ УРТПУЙФШ».

лПОЖЙЗХТБГЙС, ЛПНРЙМСГЙС Й ХУФБОПЧЛБ РТПЗТБНН ЙЪ ЙУИПДОЩИ ФЕЛУФПЧ

рТЙ ТБЪТБВПФЛЕ РТПЗТБНН РПД Unix БЧФПТЩ ПВЩЮОП УФБТБАФУС УДЕМБФШ ФБЛ, ЮФПВЩ ЙИ РТПДХЛФ НПЦОП ВЩМП ЙУРПМШЪПЧБФШ У МАВЩН ЛМПОПН Unix.

оП, РПУЛПМШЛХ ТБЪОЩЕ ЛМПОЩ ДПЧПМШОП УЙМШОП ПФМЙЮБАФУС (ПУПВЕООП BSD-УЙУФЕНЩ ПФ SystemV), ФП ОБРЙУБФШ ЛПД, ЛПФПТЩК ЛПНРЙМЙТПЧБМУС Й ТБВПФБМ ВЩ ВЕЪ ЙЪНЕОЕОЙК ОБ ВПМШЫПН ЛПМЙЮЕУФЧЕ УЙУФЕН, РТБЛФЙЮЕУЛЙ ОЕЧПЪНПЦОП. рТЙЮЕН, ЮЕН ВПМШЫЕ РТПЗТБННБ, ФЕН ЬФБ ЪБДБЮБ УМПЦОЕЕ.

рПЬФПНХ РЕТЕД ЛПНРЙМСГЙЕК ОБДП УОБЮБМБ РТПЙЪЧЕУФЙ ОБУФТПКЛХ.

дМС ЬФПЗП ПВЩЮОП ЙУРПМШЪХЕФУС ПДЙО ЙЪ ФТЕИ УРПУПВПЧ:

  1. еУМЙ Л ДЙУФТЙВХФЙЧХ РТЙМБЗБЕФУС УЛТЙРФ configure , ФП ОБДП ЕЗП ЪБРХУФЙФШ (ЛПНБОДПК » ./configure «).
  2. чПЪНПЦОП, Ч Makefile ЙНЕЕФУС УРЕГЙБМШОБС ГЕМШ » config » — Ч ФБЛПН УМХЮБЕ ДМС ЛПОЖЙЗХТЙТПЧБОЙС УМХЦЙФ ЛПНБОДБ » make config «.
  3. ч Makefile НПЗХФ ВЩФШ ТБЪОЩЕ ГЕМЙ ДМС ТБЪОЩИ пу, Ч ФБЛПН УМХЮБЕ ДМС ЛПНРЙМСГЙЙ РПД Irix ОБДП ВХДЕФ ДБФШ ЛПНБОДХ ФЙРБ » make irix «, Б РПД Linux — » make linux «.

рЕТЧЩЕ ДЧБ УРПУПВБ УПЪДБАФ ЖБКМЩ ОБУФТПЕЛ, УРЕГЙЖЙЮОЩЕ ДМС ДБООПК пу (ПВЩЮОП ЬФП ЙМЙ include-ЖБКМЩ (.h), ЙМЙ ЦЕ УТБЪХ ЗЕОЕТЙТХЕФУС ОХЦОЩК Makefile). ч ФТЕФШЕН УМХЮБЕ УТБЪХ ЪБРХУЛБЕФУС ЛПНРЙМСГЙС У РБТБНЕФТБНЙ, УРЕГЙЖЙЮОЩНЙ ДМС ДБООПК УЙУФЕНЩ.

лБЛПК ЙЪ УРПУПВПЧ ЙУРПМШЪХЕФУС Ч ЛПОЛТЕФОПК РТПЗТБННЕ — ОБДП УНПФТЕФШ Ч РТЙМБЗБЕНПК ДПЛХНЕОФБГЙЙ (Ф.Е. Ч ЖБКМБИ ФЙРБ README Й INSTALL).

оЕРПУТЕДУФЧЕООП ДМС ЙОУФБММСГЙЙ ЦЕ РТБЛФЙЮЕУЛЙ ЧУЕЗДБ ЙУРПМШЪХЕФУС УРЕГЙБМШОБС ГЕМШ » install » Ч Makefile. ф.Е. ДМС ФПЗП, ЮФПВЩ РПУМЕ ЛПНРЙМСГЙЙ Й УВПТЛЙ ХУФБОПЧЙФШ РТПЗТБННХ, ОБДП ДБФШ ЛПНБОДХ

дМС РТЙНЕТБ ТБУУНПФТЙН ЛПНРЙМСГЙА ДЧХИ РТПЗТБНН — Wget, ЙУРПМШЪХАЭЕК РЕТЧЩК УРПУПВ, Й NetCat, ЙУРПМШЪХАЭЕК ФТЕФЙК.

ъБНЕЮБОЙЕ
ч РТЙОГЙРЕ, ПВЕ РТПЗТБННЩ (ЧУМЕДУФЧЙЕ УЧПЕК РПРХМСТОПУФЙ) УХЭЕУФЧХАФ Й Ч ЧЙДЕ .rpm-РБЛЕФПЧ, ОП ПОЙ СЧМСАФ УПВПК ПЮЕОШ РТПУФЩЕ Й «ЮЙУФЩЕ» РТЙНЕТЩ ПВПЙИ ЧБТЙБОФПЧ ЛПОЖЙЗХТЙТПЧБОЙС, РПЬФПНХ НЩ ЙНЙ Й ЧПУРПМШЪХЕНУС.

лПНРЙМСГЙС Й ХУФБОПЧЛБ РТПЗТБННЩ Wget

Wget — ЬФП ХФЙМЙФБ ЛПНБОДОПК УФТПЛЙ, УМХЦБЭБС ДМС УЛБЮЙЧБОЙС ЖБКМПЧ У WWW- Й FTP-УЕТЧЕТПЧ. пОБ ЙНЕЕФ НОПЦЕУФЧП ДПУФПЙОУФЧ, Ч ЮБУФОПУФЙ, ТЕЛХТТЕОФОХА РЕТЕЛБЮЛХ Й БЧФПНБФЙЮЕУЛХА ДПЛБЮЛХ РПУМЕ ПВТЩЧБ УПЕДЙОЕОЙС. (вПМЕЕ РПДТПВОП Wget ПРЙУБО Ч ТБЪДЕМЕ «рТПЗТБННБ wget»).

тБЪЧЕТОХЧ БТИЙЧ, НЩ ХЧЙДЙН Ч ОЕН ЖБКМ INSTALL Й УЛТЙРФ configure , Б ЧПФ Makefile ФБН ОЕФ!

лБЛ Й УМЕДПЧБМП ПЦЙДБФШ, Ч INSTALL ТЕЛПНЕОДХАФ ЪБРХУФЙФШ configure , Б ЪБФЕН ОБВТБФШ » make «.

ч ПФЧЕФ ОБ ЛПНБОДХ » ./configure » ЛПНРШАФЕТ УППВЭБЕФ, ЮФП ЛПОЖЙЗХТЙТХЕФ РТПЗТБННХ GNU Wget 1.5.3, Б ЪБФЕН ПЛПМП НЙОХФЩ РЕЮБФБЕФ УРЙУПЛ УЧПКУФЧ УЙУФЕНЩ, ЛПФПТЩЕ ПО РТПЧЕТСЕФ. ч ЛПОГЕ ПО ХЧЕДПНМСЕФ, ЮФП УПЪДБЕФ ОЕУЛПМШЛП Makefile (Ч ТБЪОЩИ РПДДЙТЕЛФПТЙСИ).

оБВТБЧ ФЕРЕТШ » make «, ЪБРХУЛБЕН РТПГЕУУ ЛПНРЙМСГЙЙ Й УВПТЛЙ, ЛПФПТЩК ЪБОЙНБЕФ ОЕЛПФПТПЕ ЧТЕНС.

рП ЕЗП ПЛПОЮБОЙЙ НПЦОП ОБВТБФШ » make install «. чПФ Й ЧУЕ!

лПНРЙМСГЙС РТПЗТБННЩ NetCat

NetCat — ЬФП, ЧППВЭЕ ЗПЧПТС, ИБЛЕТУЛБС РТПЗТБННБ ДМС «ПФМБДЛЙ» УЕФЙ, РПЪЧПМСАЭБС РЕТЕДБЧБФШ ДБООЩЕ Ч УЕФШ РП РТПФПЛПМБН TCP Й UDP Й РТЙОЙНБФШ ЙИ ЙЪ УЕФЙ. лБЛ ПВЩЮОП, ЧПУРПМШЪХЕНУС МПЛБМШОПК ЛПРЙЕК ДЙУФТЙВХФЙЧБ ЧЕТУЙЙ 1.10.

рЕТЧЩН ДЕМПН ТБЪЧЕТОЕН БТИЙЧ:

йЪ ЖБКМБ README ХЪОБЕН, ЮФП ДМС ЛПНРЙМСГЙЙ ОБДП ХЛБЪБФШ ЛПНБОДЕ make ФЙР пу. фП ЦЕ ХЧЙДЙН, Й ЪБРХУФЙЧ make ВЕЪ РБТБНЕФТПЧ:

вЕЗМЩК РТПУНПФТ Makefile РПЛБЪЩЧБЕФ, ЮФП Ч ОЕН ЕУФШ ГЕМШ РПД ОБЪЧБОЙЕН » linux «. йФБЛ,

лБЛ НЩ ЧЙДЙН, РПУМЕ ЛПНРЙМСГЙЙ РПСЧЙМУС ЙУРПМОСЕНЩК ЖБКМ nc . рПУЛПМШЛХ ГЕМШ » install » Ч Makefile ПФУХФУФЧХЕФ, ФП ДМС ХУФБОПЧЛЙ ОБДП РТПУФП УЛПРЙТПЧБФШ ЬФПФ ЖБКМ Ч ПВЭЕУЙУФЕНОХА ДЙТЕЛФПТЙА:

пУПВЕООПУФЙ ЛПНРЙМСГЙЙ РТПЗТБНН РПД X-Window

Imakefile Й РТПЗТБННБ xmkmf

л НПНЕОФХ РПСЧМЕОЙС УЙУФЕНЩ X-Window РТПВМЕНБ ТБЪМЙЮЙК РТЙ ЛПНРЙМСГЙЙ РПД ТБЪОЩЕ ЛМПОЩ Unix УФБМБ ХЦЕ ЫЙТПЛП ЙЪЧЕУФОБ, Й ВЩМ ТБЪТБВПФБО УРПУПВ, РПЪЧПМСАЭЙК ХОЙЖЙГЙТПЧБООП ЛПНРЙМЙТПЧБФШ рп ДМС X РПД ТБЪОЩНЙ УЙУФЕНБНЙ.

йДЕС ЪБЛМАЮБМБУШ Ч ФПН, ЮФПВЩ РЕТЕД ЛПНРЙМСГЙЕК Makefile БЧФПНБФЙЮЕУЛЙ ЗЕОЕТЙТПЧБМУС УРЕГЙБМШОПК ХФЙМЙФПК xmkmf , «ЪОБАЭЕК» РТП УРЕГЙЖЙЛХ ЛПОЛТЕФОПК УЙУФЕНЩ, ЙЪ ДТХЗПЗП ЖБКМБ, РПД ОБЪЧБОЙЕН Imakefile. ч Imakefile ЦЕ ОБ ОЕЛПЕН УРЕГЙБМШОПН СЪЩЛЕ ЪБРЙУЩЧБЕФУС РТЙНЕТОП ФБ ЦЕ ЙОЖПТНБГЙС, ЮФП Ч Makefile.

ъБНЕЮБОЙЕ
бВВТЕЧЙБФХТБ » xmkmf » ТБУЫЙЖТПЧЩЧБЕФУС ПЮЕОШ РТПУФП — «MaKe MakeFile» — «УДЕМБК Makefile», Б » x » — РТЕЖЙЛУ, ПВПЪОБЮБАЭЙК РТЙОБДМЕЦОПУФШ РТПЗТБННЩ Л X-Window.

иПФС ЪБНЩУЕМ ВЩМ ПЮЕОШ ИПТПЫЙК, ТЕБМЙЪБГЙС ПУФБЧМСЕФ ЦЕМБФШ МХЮЫЕЗП. чП-РЕТЧЩИ, СЪЩЛ Imakefile’ПЧ — ОЕ НЕОЕЕ «РФЙЮЙК», ЮЕН Х Makefile, ФБЛ ЮФП МАДЕК, ХНЕАЭЙИ ЙИ УПЪДБЧБФШ, ЕЭЕ НЕОШЫЕ. чП-ЧФПТЩИ, xmkmf ВЕТЕФ ПРЙУБОЙЕ УЙУФЕНЩ ЙЪ ОЕУЛПМШЛЙИ ЖБКМПЧ ЛПОЖЙЗХТБГЙЙ (Ч ЗМХВЙОЕ ДЙТЕЛФПТЙЙ /usr/X11R6/ ), Б ПОЙ ЪБЮБУФХА ПЛБЪЩЧБАФУС ОЕУПЧНЕУФЙНЩ У ЛПОЛТЕФОЩН Imakefile, Й xmkmf РТПУФП ЪБЧЕТЫБЕФУС У ЛБЛЙН-ОЙВХДШ НБМПЧТБЪХНЙФЕМШОЩН УППВЭЕОЙЕН ПВ ПЫЙВЛЕ.

фЕН ОЕ НЕОЕЕ, ВПМШЫЙОУФЧП РТПЗТБНН РПД X-Window РПУФБЧМСАФУС ЙНЕООП У Imakefile.

рТЙНЕТ УВПТЛЙ Й ХУФБОПЧЛЙ РТПЗТБННЩ РПД X-Window

ч ЛБЮЕУФЧЕ РТЙНЕТБ ТБУУНПФТЙН УВПТЛХ Й ХУФБОПЧЛХ РТПЗТБННЩ XRoach (ФПК УБНПК, ЮФП РХУЛБЕФ ВЕЗБФШ РП ЬЛТБОХ ФБТБЛБОПЧ). чПУРПМШЪХЕНУС МПЛБМШОПК ЛПРЙЕК ДЙУФТЙВХФЙЧБ.

уОБЮБМБ ТБЪЧЕТОЕН ДЙУФТЙВХФЙЧ:

рТПЮФС ЖБКМ README.linux , НЩ ХЪОБЕН МЙЫШ, ЮФП РТЙ ЛПНРЙМСГЙЙ ДПМЦОП ВЩФШ РТЕДХРТЕЦДЕОЙЕ (warning) Ч УФТПЛЕ 373.

ъБРХУЛБЕН xmkmf Й ЪБФЕН make :

фЕРЕТШ, БОБМПЗЙЮОП ПВЩЮОЩН РТПЗТБННБН, ДЕМБЕН » make install «:

еДЙОУФЧЕООП ЮФП, БЧФПТ РПМЕОЙМУС УДЕМБФШ БЧФПНБФЙЮЕУЛХА ХУФБОПЧЛХ man-УФТБОЙГЩ, ИПФС ПОБ Й ЕУФШ. юФП Ц, ОЕ ВЕДБ — УЛПРЙТХЕН ЕЕ Ч ОХЦОПЕ НЕУФП «ТХЛБНЙ»:

(рПУЛПМШЛХ » make install » ХУФБОПЧЙМ РТПЗТБННХ Ч /usr/X11R6/bin/ , ФП Й man-УФТБОЙГХ ОБДП РПМПЦЙФШ «ТСДПН» — ЧОХФТЙ /usr/X11R6/ . б РПУЛПМШЛХ xroach — РПМШЪПЧБФЕМШУЛБС РТПЗТБННБ, ФП ЕЕ man-УФТБОЙГБ ДПМЦОБ МЕЦБФШ Ч ТБЪДЕМЕ 1 (РПДДЙТЕЛФПТЙС man1/ .)

источник

Добавить комментарий

Adblock
detector