LINUX.ORG.RU

История изменений

Исправление iZEN, (текущая версия) :

Пример того что в Gentoo делается просто:
- Использовать openrc вместо systemd или наоборот;

rc-скрипты.

pulseaudio или без него

Аналогично на выбор: sndio (нативно), ALSA (наносное), PulseAudio (если необходимо), Jack (если сильно надо).

- Наложить кастомный патч;

Без проблем - по подобию исходного редактируешь свой порт, монтируешь каталог через unionfs со своими патчами в /usr/ports, пересобираешь порт как тебе надо.

- Подключить или отключить такие вещи как vaapi, vdpau, opencv и т. п.

Как правило, такие вещи прописаны в опциях конфигурации портов - можно как включить, так и выключить по команде make config и пересобрать порт.

- Иметь несколько веток софта; уточню, что это работает только для определённых пакетов; например можно одновременно установить python 2.7, 3.4, 3.5 или qt4 и qt5, но нельзя одновременно установить qt 5.7 и 5.8

Во FreeBSD с портами так и сделано.

#2 Очень удобный и функциональный пакетный менеджер

Примеры удобных фич:

- Прервать установку (вплоть до перегрузки компьютера), а потом ее продолжить.

Не задумывался о необходимости этого. portmaster что-то там предлагает сделать с прерванной сборкой - всегда удаляю.

последний пакет, например, если его установка прервалась с ошибкой

Во FreeBSD пакет либо установился, либо нет. Неконсистентное состояние исключается. Хотя есть кольцевые зависимости между пакетами, когда один зависит от другого и наоборот, но тут лучше не допускать ошибок в таких конфигурациях, чем предотвращать их.

- Когда при установке обновляется конфиг приложения, определяется редактировался ли предыдущий конфиг пользователем. Если да, конфиг не перезаписывается, а кладётся радом, и выводится сообщение пользователю с предложением обновить конфиг.

Во FreeBSD текстовая база конфигов установленных пакетов находится в каталоге /var/db/ports. Если версия порта меняется и требуется переконфигурация порта (например, добавилась новая опция), то будет вызван make config автоматически.

- Обновить всю систему, но исключить некоторые пакеты (удобно для исключения больших пакетов из ежедневного обновления)

Опция -x пакет в командной строке portmaster'а при массированном обновлении. Правда, зависимые от этого пакета всё равно потребуют его обновить прежде чем самим обновиться. То есть необходимо перечислять всю ветку зависимых пакетов, которые не должны обновиться, если обновление их базового пакета отложено.

- Почистить зависимости - удалить те пакеты, которые больше никому не нужны.

Сторонняя утилита pkg_cutleaves. Да и portmaster -e удаляемый пакет тоже подтирает ненужные пакеты.

- Вынести компиляцию на другой компьютер

Да хоть в Jail и установку ПО на другие компьютеры из специально созданного репозитория с набором централизованно обновляемых программ, по сети.

#3 Хорошая документация, по крайней мере на английском.

Да.

#4 Достаточно свежий софт, много сторонних репозиториев.

Аналогично. Во FreeBSD легко делается собственный репозиторий pkg repo /path/to/pkgs/All, расшаривается в локальной сети и настраиваются машины на него одной строчкой в конфиге местного pkg.

Gentoo - rolling release

FreeBSD -STABLE и -CURRENT - rolling release. -STABLE стабильный, -CURRENT - экспериментальный срез непрерывной разработки операционной системы. Порты общие, предназначены для -STABLE ветки, учитывают развитие операционной системы в этих направлениях, задавая соответствующие опции сборки.

#5 Полный порядок в системе, ничего лишнего - эстетическое удовольствие, плюс возможно можно немного улучшить перформанс

Я бы поспорил насчёт ничего лишнего. Например, зачем нужен Python 2.7 и 3.6 оновременно? Почему не использовать LLVM 5.0.1, установленный для графической системы Mesa3D, в качестве системного компилятора? Ведь технически это возможно.

#6 В процессе установки и эксплуатации получаешь полное понимание как работает система

Несовсем. На уровне пользователя разбираешься, на уровне программиста - в зависимости от квалификации.

#2 Пакетный менеджер хоть и удобный, но очень медленный

На FreeBSD pkg довольно быстрый - за секунду может обновить 1-2 установленных пакета (больше зависит от скорости скачивания по сети).

#3 Если не обновлять систему долго (полгода и более), то сложность обновления сопоставима с установкой новой системы.

Если система и ПО собираются из исходников, то пересборка всего занимает ощутимое время.

Миф #5 В Gentoo нет бинарных пакетов

Почему-то не популярны бинарные пакеты в Gentoo.

Исходная версия iZEN, :

Сравнение Gentoo Linux и FreeBSD

Пример того что в Gentoo делается просто:
- Использовать openrc вместо systemd или наоборот;

rc-скрипты.

pulseaudio или без него

Аналогично на выбор: sndio (нативно), ALSA (наносное), PulseAudio (если необходимо), Jack (если сильно надо).

- Наложить кастомный патч;

Без проблем - по подобию исходного редактируешь свой порт, монтируешь каталог через unionfs со своими патчами в /usr/ports, пересобираешь порт как тебе надо.

- Подключить или отключить такие вещи как vaapi, vdpau, opencv и т. п.

Как правило, такие вещи прописаны в опциях конфигурации портов - можно как включить, так и выключить по команде make config и пересобрать порт.

- Иметь несколько веток софта; уточню, что это работает только для определённых пакетов; например можно одновременно установить python 2.7, 3.4, 3.5 или qt4 и qt5, но нельзя одновременно установить qt 5.7 и 5.8

Во FreeBSD с портами так и сделано.

#2 Очень удобный и функциональный пакетный менеджер

Примеры удобных фич:

- Прервать установку (вплоть до перегрузки компьютера), а потом ее продолжить.

Не задумывался о необходимости этого. portmaster что-то там предлагает сделать с прерванной сборкой - всегда удаляю.

последний пакет, например, если его установка прервалась с ошибкой

Во FreeBSD пакет либо установился, либо нет. Неконсистентное состояние исключается. Хотя есть кольцевые зависимости между пакетами, когда один зависит от другого и наоборот, но тут лучше не допускать ошибок в таких конфигурациях, чем предотвращать их.

- Когда при установке обновляется конфиг приложения, определяется редактировался ли предыдущий конфиг пользователем. Если да, конфиг не перезаписывается, а кладётся радом, и выводится сообщение пользователю с предложением обновить конфиг.

Во FreeBSD текстовая база конфигов установленных пакетов находится в каталоге /var/db/ports. Если версия порта меняется и требуется переконфигурация порта (например, добавилась новая опция), то будет вызван make config автоматически.

- Обновить всю систему, но исключить некоторые пакеты (удобно для исключения больших пакетов из ежедневного обновления)

Опция -x пакет в командной строке portmaster'а при массированном обновлении. Правда, зависимые от этого пакета всё равно потребуют его обновить прежде чем самим обновиться. То есть необходимо перечислять всю ветку зависимых пакетов, которые не должны обновиться, если обновление их базового пакета отложено.

- Почистить зависимости - удалить те пакеты, которые больше никому не нужны.

Сторонняя утилита pkg_cutleaves. Да и portmaster -e удаляемый пакет тоже подтирает ненужные пакеты.

- Вынести компиляцию на другой компьютер

Да хоть в Jail и установку ПО на другие компьютеры из специально созданного репозитория с набором централизованно обновляемых программ, по сети.

#3 Хорошая документация, по крайней мере на английском.

Да.

#4 Достаточно свежий софт, много сторонних репозиториев.

Аналогично. Во FreeBSD легко делается собственный репозиторий pkg repo /path/to/pkgs/All, расшаривается в локальной сети и настраиваются машины на него одной строчкой в конфиге местного pkg.

Gentoo - rolling release

FreeBSD -STABLE и -CURRENT - rolling release. -STABLE стабильный, -CURRENT - экспериментальный срез непрерывной разработки операционной системы. Порты общие, предназначены для -STABLE ветки, учитывают развитие операционной системы в этих направлениях, задавая соответствующие опции сборки.

#5 Полный порядок в системе, ничего лишнего - эстетическое удовольствие, плюс возможно можно немного улучшить перформанс

Я бы поспорил насчёт ничего лишнего. Например, зачем нужен Python 2.7 и 3.6 оновременно? Почему не использовать LLVM 5.0.1, установленный для графической системы Mesa3D, в качестве системного компилятора? Ведь технически это возможно.

#6 В процессе установки и эксплуатации получаешь полное понимание как работает система

Несовсем. На уровне пользователя разбираешься, на уровне программиста - в зависимости от квалификации.

#2 Пакетный менеджер хоть и удобный, но очень медленный

На FreeBSD pkg довольно быстрый - за секунду может обновить 1-2 установленных пакета (больше зависит от скорости скачивания по сети).

#3 Если не обновлять систему долго (полгода и более), то сложность обновления сопоставима с установкой новой системы.

Если система и ПО собираются из исходников, то пересборка всего занимает ощутимое время.

Миф #5 В Gentoo нет бинарных пакетов

Почему-то не популярны бинарные пакеты в Gentoo.