О. Вы должно быть думаете о последовательных портах на обратной стороны вашего компьютера. Мы используем слово `порт' здесь для обозначения результата `переноса' программы с одной версии Unix на другую. (Использование одного и того же слова для обозначения совершенно разных вещей, к сожалению, стало плохой привычкой всех в околокомпьютерном мире.
О. Совершенно верно, это обычно самый быстрый и простой способ сделать это.
О. Есть несколько причин:-
О. Патч - это маленький (обычно) файл, в котором описано как изменить одну версию файла до другой. Он содержит текст который, в действительности, состоит из вещей вроде ``удалить строку 23'', ``добавить эти две строки после строки 468'' или ``изменить строку 197 на эту''. Он также известен как ``diff'', поскольку так называется программа, которая их генерирует.
О. Это файл с заканчивающийся на .tar.gz (возможно .tar.Z, или даже .tgz)
По существу, это архив структуры каталогов (.tar), а потом сжатый (.gz). Изначально эта технология использовалась для архивов на лентах (Tape ARchive - отсюда и название `tar'), но сейчас это один из наиболее широко применяемых методов распространения исходных текстов программ по Интернет.
Вы можете посмотреть какие файлы находятся внутри, или даже разархивировать их самостоятельно, используя стандартную утилиту UNIX - tar. Она поставляется вместе с базовой системой FreeBSD. Например:
tar tvzf foobar.tar.gz # Показывает содержимое foobar.tar.gz tar xzvf foobar.tar.gz # Разархивирует файлы в текущий каталог
О. Это число, являеющееся результатом суммирования всех байт файла который вы проверяете. Если значение какого-нибудь байта поменяется, контрольная сумма поменяется тоже, так что простое сравнение с эталоном позволит определить что файл был изменен. (На практике используется более сложные алгоритмы, чем простое суммирование, для того чтобы замечать такие ``сложные'' изменения файлов, как перестановка байт.
О. Условия лицензии для kermit не позволяют нам положить его tarball на CDROM, так что вам придется скачать его самостоятельно. Причина, из-за которой вы получили эти сообщения об ошибках, - это отсутствие подключения к Интернет в тот момент. Как только вы скачаете нужный tarball откуда-нибудь, вы можете повторить попытку сделать порт. (скачивайте его с ближайшего к вам места, так вы сохраните и ваше время и пропускные способности Интернет)
О. Механизм портов по умолчанию ищет tarball в каталоге /usr/ports/distfiles, но у вас не получится ничего туда добавить, потому что это символьная ссылка на CDROM, запись на который невозможна. Но вы можете изменить место поиска tarball с помощью команды:
DISTDIR=/where/you/put/it make install
О. Вы можете использовать переменные PORTSDIR и PREFIX для указания необходимости использовать другие директории. Например,
PORTSDIR=/u/people/guests/wurzburger/ports make install
Эта команда компилирует порт в /u/people/guests/wurzburger/ports и устанавливает в /usr/local?.
а следующая команда откомпилирует порт в /usr/ports и установит в /u/people/guests/wurzburger/local: PREFIX=/u/people/guests/wurzburger/local make install
И наконец
PORTSDIR=.../ports PREFIX=.../local make install
объединяет оба эффекта (полная команда слишком длинна и не влезает целиком на страницу, но я уверен, что вы уже поняли идею)
Если вы не хотите набирать такие строки каждый раз при инсталляции порта, то вставьте эти переменные в свое окружение (environment).
О. Для того чтобы скачать все tarball для коллекции портов, запустите:
# cd /usr/ports # make fetch
Для того чтобы скачать все tarball для отдельной директории, запустите:
# cd /usr/ports/directory # make fetch
Ну я думаю вы уже догадались как скачать tarball для одного порта.
О. Да. если вы например думаете, что ftp.FreeBSD.ORG намного ближе, чем узлы из списка MASTER_SITES, то используйте следующий пример. # cd /usr/ports/directory # make MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.ORG/pub/FreeBSD/distfiles/ fetch
О. 'make fetch-list' покажет вам список файлов необходимых этому порту.
О. Использование 'make extract' остановит процесс после скачивания и распаковки исходных текстов.
О. Да, 'make patch' - это то что вы ищете. И кстати, спасибо за то что вы это делаете!
О. Да, в gcc версии 2.6.3 (эта версия поставлялась вместе с FreeBSD 2.1.0 и 2.1.5), опция -O2 могла приводить к коду с ошибками, если не использовать опцию -fno-strength-reduce. (Большинство поротов не использует -O2). У вас должна быть возможность указывать флаги, используя что-нибудь вроде:
# CFLAGS='-O2 -fno-strength-reduce' make install
или при помощи редактирования /etc/make.conf, но это кажется не всегда срабатывает. наиболее надежный способ - использовать 'make configure', после чего зайти в каталог с исходными текстами и проверить Makefile, но это может быть затруднительно если дерево исходных текстов содержит кучу подкаталогов, в каждом из которых есть свой Makefile.
О. Смотрите INDEX в каталоге /usr/ports.
О. Порт 'foo' требует что-нибудь, что поставляется вместе с 'bar' - рапример, если 'foo' использует графику, то 'bar' может иметь библиотеку с полезными графическими процедурами. Или 'bar' может быть инструментом, который нужен для компиляции порта 'foo'.
О. Нет проблем, просто запустите
pkg_delete grizzle-6.5
О. Нет, конечно, вы можете узнать его следующим образом
pkg_info -a | grep grizzle
Результатом будет что-то вроде:-
Information for grizzle-6.5: grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game.
О. Да, если вы уже установили программу и не собираетесь переустанавливать ее снова, то нет никакой необходимости хранить исходники. Самый лучший способ избавиться от них - это:
# cd /usr/ports # make clean
В результате во всех подкаталогах /usr/ports будут удалены все файлы кроме входящих в каркас.
О. Да, если вы уверены, что они вам больше не нужны.
О. Просто сделайте
# cd /usr/ports # make install
О. Нет, проблема в том, что некоторые порты начинают задавать вопросы (например - ``Вы используете бумагу формата A4 или Letter?'') и им нужен кто-то кто введет ответ.
О. Ok, сделайте это перед тем как идти в кровать/на работу/местный парк :-
# cd /usr/ports # make -DBATCH install
В результате будут установленны все порты которые НЕ требуют участия человека в установке. Потом, когда вы вернетесь, запустите
# cd /usr/ports # make -DIS_INTERACTIVE install
для того чтобы закончить работу.
О. Никаких проблем, если вы знаете как сделать патчи соответствующие вашим изменениям:
# cd /usr/ports/somewhere/frobble # make extract # cd work/frobble-2.8 [Добавьте ваши патчи] # cd ../.. # make package
О. Никаких секретов. Просто смотрите в файлы bsd.ports.mk и bsd.ports.subdir.mk в каталоге /localhost/usr/share/mk/ с makefiles. (Замечание: Читателям с отвращением к замысловатым shell-скриптам рекомендуем пропустить эту ссылку ...)
| |
|