Fink

Ч.З.В. - 1. Общие вопросы

В1.1: Что такое Fink?

О: Целью Fink является максимальный перенос ПО Unix в Mac OS X, из чего вытекают две основные задачи:

Задача номер один: перенос ПО в Mac OS X. Это значит, что мы берем ПО Unix с открытым исходным кодом и вносим корректировки, необходимые для его компилирования и работы в Mac OS X. Иногда это нетрудно, но в некоторых случаях бывает крайне сложно и даже невозможно для некоторых пакетов. Мы стараемся предоставлять инструменты и документацию для облегчения этого процесса.

Задача номер два: обеспечение доступа обычным пользователям к результатам работы. Для этого мы основываем дистрибуцию на применении инструментов управления пакетами, перенесенных из Linux, а именно dpkg и apt-get, созданными в рамках проекта Debian GNU/Linux и предназначенными для него же. При бинарной дистрибуции используется пакетный формат.deb. Для построения пакетов на основе исходного кода у нас имеется собственный инструмент, названный fink, который создает пакетные файлы .deb.

В1.2: Что означает название Fink?

О: Ничего, это просто имя. Это даже не аббревиатура.

Вообще-то Fink - это немецкий вариант слова Finch (зяблик), названия породы птиц. Я искал название для проекта и название Darwin OS навело на мысль о Чарльзе Дарвине, Галапагосских островах и эволюции. Я со школьных времен помнил о так называемых зябликах Дарвина и их клювах, и вот ...

В1.3: Чем Fink отличается от механизма переноса BSD (включая OpenPackages и GNU-Darwin)?

О: Некоторые главные преимущества:

  • Он написан с использованием Perl, а не make/оболочки. То есть он не опирается на особые параметры, которые можно найти только в BSD make. Нет необходимости отмечать пакеты, которые нуждаются в GNU make для построения.

  • dpkg обеспечивает развитое управление бинарными пакетами - равномерное обновление, специальную обработку файлов конфигурации, виртуальных пакетов и другие усовершенствованные взаимозависимости.

  • Fink ничего не инсталлирует в /usr/local, если нет конкретного запроса, и не требует действий с /usr/bin/make или другими командами, обеспечиваемыми системой. Это делает его более безопасным в использовании и снижает интерференцию в отношении Mac OS X и пакетов третьих лиц до минимума.

В1.4: Почему Fink ничего не инсталлирует в /usr/local?

О: Для этого есть несколько причин, но в основном "потому что произойдет сбой в работе".

Первая причина: ПО третьих лиц. /usr/local является хорошим местом для размещения ПО, которое не является частью системы, поставленной первоначальным продавцом. Это хорошее место для размещения всякой всячины. Но это также значит, что и другие будут там что-нибудь размещать. Большинство программ инсталляции будут просто записывать поверх того, что там находится - это также относится и к dpkg. Конечно, можно решить не инсталлировать ПО третьих лиц в /usr/local. Но к сожалению, большинство инсталляторов не предупреждают заранее о том, что и где они установят.

Вторая причина: /usr/local/bin находится в PATH по умолчанию. Это значит, что ваша оболочка найдет инсталлированные программы без дополнительных мер. Но это также значит, что вам надо принять дополнительные меры, если вы не хотите использовать программы. В наихудших случаях это может также повлиять на саму систему - многие части зависят от скриптов оболочки.

Третья причина: Цепочка инструментов компилятора находит /usr/local по умолчанию. Компилятор находит /usr/local/include для файлов заголовков, а компоновщик производит поиск /usr/local/lib для библиотек. Опять же, иногда это безусловно удобно, но очень трудно сделать дезактивацию в случае необходимости. Можно без труда дезактивировать компилятор, поместив файл с ненужными данными, названный stdio.h, в /usr/local/include.

С учетом всего сказанного, можно инсталлировать Fink в /usr/local. Скрипт инсталляции сделает предупреждение, но продолжит выполнение после подтверждения с вашей стороны, что вы делаете это на свой страх и риск.

В1.5: Тогда почему вы выбрали /sw?

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

Следующий: 2. Связь с другими проектами