Создаем порт для FreeBSD своими руками. Часть II :: Ачилов Рашид
Страница: 2 из 7 | |||
| ||||||||||||||
| ||||||||||||||
КАТЕГОРИИ КНИГПОСЛЕДНИЕ ОТЗЫВЫ О КНИГАХМихаил (19.04.2017 - 06:11:11) Антихрист666 (18.04.2017 - 21:05:58) Ладно, теперь поспешили вы... (18.04.2017 - 20:50:34) Роман (18.04.2017 - 18:12:26) АНДРЕЙ (18.04.2017 - 16:42:55) СЛУЧАЙНОЕ ПРОИЗВЕДЕНИЕВ ПАМЯТЬ О ТЕБЕ 29.06.10 - 12:55 Хотите чтобы ваше произведение или ваш любимый стишок появились здесь? добавьте его! |
Хорошо, конечно, когда есть свой собственный ftp-сервер, в надежности которого не сомневаешься.
В этом случае файлы дистрибутива просто перечисляются: DISTFILES= file1.tar.bz2 \ file2.tar.bz2 \ file3.tar.bz2 при этом все данные файлы будут последовательно запрошены со всех перечисленных сайтов в MASTER_SITES и с основного сайта FreeBSD, если они не будут обнаружены. Но что же делать тем, кто не имеет собственных серверов и размещает файлы на публичных хостингах? Для этого в системе есть специальная возможность связывания определенных файлов и определенных сайтов так, чтобы при поиске файлов система просматривала только некоторые определенные сайты. Эта возможность называется «MASTER_SITES:n». Возьмем приведенный выше пример. Допустим, у нас имеются веб-сайты www.foobar.com и www.nichego.net. Сайт www.foobar.com находится за рубежом, имеет быстрый и надежный канал. www.nichego.net находится в г. Тьмутаракани и подключен к Интернету через модем на 28.8 кБит. Как сделать так, чтобы система брала только file1.tar.gz с www.nichego.net, а остальные – с www.foobar.com? Нужно ассоциировать метки и с файлами, и с сайтами: DISTFILES= file1.tar.bz2 \ file2.tar.bz2:foobar \ file3.tar.bz2:foobar MASTER_SITES= http://www.foobar.com/:foobar \ http://www.nichego.net Если метка отсутствует, считается, что файл (сайт) имеет метку по умолчанию DEFAULT. Явно задавать ее не следует, разве что требуется перечислить несколько групп и DEFAULT в том числе. Система свяжет DISTFILES и MASTER_SITES, используя метки, и загрузит файлы в следующей последовательности: сначала file1.tar.bz2 с http://www.nichego.net, потом file2.tar.bz2 и file3.tar.bz2 с http://www.foobar.com. Можно было бы сделать, чтобы и файл file1.tar.bz2 тоже сначала проверялся на http://www.foobar.com, а уже потом – на http://www.nichego.net. Для этого нужно www.foobar.com включить также и в группу DEFAULT: MASTER_SITES= http://www.foobar.com/:foobar,DEFAULT Один и тот же файл может входить в несколько групп. Равным образом в одну группу могут входить несколько файлов. Естественно, допускается использование подстановки переменных: GSI_VERSION= 2005-01-20 DISTFILES+= gsi-$(GSI_VERSION)-sorted.txt.bz2:oorus,oorus2 INFRA_PATCHEXT= OOo_1.1.4_infra_patches DISTFILES+= $.tar.gz:DEFAULT,oorus MASTER_SITES+= http://ootrans.i-rs.ru/out/:oorus MASTER_SITES+= ftp://ftp.i-rs.ru/pub/openoffice/1.1.4/ru/:oorus2 MASTER_SITES+= ftp://ftp/granch.ru/pub/openoffice В данном фрагменте файл gsi-2005-01-20-sorted.txt.bz2 будет скачиваться сначала с http://ootrans.i-rs.ru/out, потом с ftp://ftp.i-rs.ru/pub/openoffice/1.1.4/ru, а файл OOo_1.1.4_infra_patches.tar.gz – сначала с ftp://ftp.i-rs.ru/pub/openoffice/1.1.4/ru , потом с ftp://ftp.granch.ru/pub/openoffice . Когда стоит пользоваться такой возможностью? Когда порт может состоять из большого количества файлов и хочется сделать возможность обойтись без загрузки файлов, которые не нужны. Например, это не было сделано в порту editors/openoffice-1.1, и в результате чего исходные тексты Mozilla Suite (обьема немалого – 35 Мб) загружались независимо от желания пользователя ее использовать. Использование внешних патчей во многом похоже на загрузку файлов исходного кода программы, только здесь используются переменные PATCH_SITES и PATCHFILES: PATCH_SITES= ftp://ftp.cis.upenn.edu/pub/xv/ PATCHFILES= $.JPEG-patch $.TIFF-patch \ croppad.patch grabpatch vispatch \ deepcolor.patch gifpatch exceed_grab.patch \ tiff1200.patch gssafer.patch Имейте в виду, что патчи, заданные в PATCHFILES, применяются до применения патчей из подкаталога files! То есть последовательность действий будет выглядеть так: ===> Patching for xv-3.10a_5 ===> xv-3.10a_5 depends on file: /usr/local/bin/perl5.8.7 - found ===> Applying distribution patches for xv-3.10a_5 ===> Applying FreeBSD patches for xv-3.10a_5 Когда стоит использовать внешние патчи? Разработчики обычно используют их, чтобы избежать выпуска нового релиза программы (так обычно поступают разработчики Squid – вместо выпуска нового релиза они выкладывают патчи значительного обьема), авторы портов, не являющиеся разработчиками программы, – чтобы внести в исходный текст изменения, с которыми автор может быть не согласен, если они достаточно обьемные и их нельзя поместить непосредственно в дерево портов, для расширения функциональности и т. д. |
ИНТЕРЕСНОЕ О ЛИТЕРАТУРЕ
ТОП 20 КНИГ
ТОП 20 АВТОРОВ
| ||||||||||||
|