Программы обычно расспространаятся на Интернет как tarball, состоящие из Makefile, исходных текстов программ, и обычно некоторых инструкций (которые, к сожалению, не всегда поучительны, как могло бы быть), и возможно конфигурационных скриптов.
Стандартный набор действий заключается в том, что вы должны ftp-уть tarball, расспоковать его, выполнить конфигурационный скрипт, и использовать стандартную программу 'make', чтобы скомпилировать и инсталировать программу.
Порты FreeBSD все еще используют механизм tarball, но используют каркас(skeleton), чтобы управлять "знанием" о том, как получить работающую программу на FreeBSD, вместо того, чтобы ожидать от пользователя, чтобы он добился этого сам. Порты также содержат их собственные Makefile, так что почти каждый порт м.б. построен одним и тем же способом.
Если вы смотрите на каркас порта (либо на вашей FreeBSD системе или на FTP узле ) и ожидаете найти что-то сверхумное, то вы будете разочарованы парой простеньких файлов и директорий, которые вы там найдете. (Мы уделим этому минутку в секции Где взять FreeBSD порт ).
''Как такое может быть?'' - Я слышу ваш крик. ''Здесь нет даже исходных текстов!''
Не бойтесь, все скоро станет ясно. Давайте посмотрим, что произойдет, если мы попытаемся инсталировать порт. Я выбрал 'bash', также известный как Bourne-Again Shell, так как это кажется наиболее типичным.
Замечание: Если вы пытаетесь сделать это дома, вам необходимо зайти как root.
# cd /usr/ports/shells/bash # make install Checksums OK. ===> Extracting for bash-1.14.5 ===> Patching for bash-1.14.5 ===> Applying FreeBSD patches for bash-1.14.5 ===> Configuring for bash-1.14.5 ===> Building for bash-1.14.5 [lots and lots of compiler output here...] ===> Installing for bash-1.14.5 make -f bash-Makefile bindir=/usr/local/bin prefix=/usr/local install (cd ./documentation/; make ) rm -f builtins.txt nroff -man builtins.1 > builtins.txt install -c -o bin -g bin -m 555 bash /usr/local/bin/bash install -c -o bin -g bin -m 555 bashbug /usr/local/bin/bashbug ( cd ./documentation/ ; make mandir=/usr/local/man/man1 man3dir=/usr/local/man/man3 infodir=/usr/local/info install ) [ -d /usr/local/man/man1 ] || mkdir /usr/local/man/man1 [ -d /usr/local/info ] || mkdir /usr/local/info ../support/install.sh -c -m 644 bash.1 /usr/local/man/man1 ../support/install.sh -c -m 644 builtins.1 /usr/local/man/man1/bash_builtins.1 ../support/install.sh -c -m 644 features.info /usr/local/info/bash.info gzip -9nf /usr/local/man/man1/bash.1 /usr/local/man/man1/bash_builtins.1 ===> Registering installation for bash-1.14.5
Чтобы избежать проблем, приводящих в замешательство, я слегка обрезал выводимую информацию во время инсталяции, а также полностью удалил выводимую информацию во время build. Если вы попробуете это сами, то вы получили в начале что-то вроде этого:-
>> bash-1.14.5.tar.gz doesn't seem to exist on this system. >> Attempting to fetch from ftp://slc2.ins.cwru.edu/pub/dist/.
Программа 'make' заметила, что вы не имеете локальной копии исходных текстов и попыталась FTP-уть их (вы начинаете удивляться? 8-)). В моем случае я уже имею исходники, так что здесь нет необходимости их доставать .
Давайте посмотрим, что программа 'make' делала.
Посмотрите, можете ли вы обнаружить эти действия в выводимой информации.
И если вы еще не были удивленны, то вы должны это сделать сейчас!
Назад | Содержание | Вперед