У нас есть среда разработки на FreeBSD 10.3. Я слышал, что FreeBSD управляет зависимостями пакетов таким образом, что он всегда ищет самую новую версию всех пакетов, от которых зависит основной пакет. И это выглядит как правда. Итак, мои вопросы:
- Это правда? Есть ли официальные документы, подтверждающие это?
- Лучший способ, как преодолеть эту проблему?
pkg lock
ее, а затем установить все, что вам нужно.Ответы:
Как FreeBSD собирает пакеты
Проект FreeBSD использовался для сборки пакетов только для выпусков, а иногда и для веток STABLE. Старые сборщики пакетов использовали распределенную систему с именем Portbuild. Для сборки пакетов использовался бы большой кластер из небольших машин размером 2 ГБ и 4 ГБ. Это было подвержено ошибкам и медленно, в основном из-за старых машин. Полная сборка может занять неделю. Сегодня пакеты создаются на одной большой машине с использованием Poudriere. (С веб-страницы Брайана Дрюри ).
Смотрите также: Как обновить набор пакетов и портов во FreeBSD
FreeBSD имеет развивающийся ABI (и API), как и Solaris и Windows, в то время как Linux имеет стабильный (застойный?) ABI (и API), так что в Linux старые двоичные файлы все равно будут работать в более новой версии ОС, тогда как в не-Linux ОС это Это всегда так (иногда это так).
Использование
pkg lock
может по-прежнему приводить к головным болям , хотя оно блокируется (выдает предупреждение), когда вы пытаетесь выполнить обновление, используяpkg upgrade
его, все еще предполагает, что версии с более высоким номером лучше (желательно) и что это то, что вы хотели бы сделать - поэтому он запрашивает разрешение, и вы можете позволить, но это не гарантирует, что что-то еще не будет сломано. Смотрите выше URL или это обсуждение: « Вы бы предпочли, чтобы FreeBSD блокировала версии двоичных пакетов, распространяемых через pkg, для версии ОС? ».Если один пакет заблокирован, иногда вам нужно будет дать разрешение разблокировать его и выполнить обновление, хотя это будет работать для одного пакета (и всех его зависимостей), нет никакой гарантии, что что-то еще не будет несовместимо с новыми библиотеками ( и, следовательно, также необходимо обновление, если оно доступно в настоящее время).
Блог Брайана Дрюри: « FreeBSD Journal: Poudriere » полагает:
Но загвоздка ...
Так ...
Решение:
Настройка вашего собственного репозитория с помощью poudriere позволяет вам иметь гибкость портов и простоту управления пакетами.
источник