Обновление программ на Linux-десктопе: Debian apt-get или Gentoo Portage?

Поставить и настроить Linux и нужные программы — пол дела. Открытый софт имеет ошибки и уязвимости в безопасности, как и любые сложные программы. Кроме того во многих открытых программах отсутствуют важные для их использования функции. В новых версиях программ ошибки исправляются, уязвимости закрываются, функции со временем добавляются. Все это делает необходимым регулярное обновление свободного софта на Linux-десктопе. Какие возможности предоставляет Linux для обновления программного обеспечения?

1. Выкачивание обновлений с помощью стабильного репозитария бинарных программ дистрибутива Linux

Этот способ позволяет с минимумом усилий и временных затрат и максимальной степенью надежности получать обновления основных программ, исправляющие ошибки и закрывающие уязвимости. Исправления достаточно быстро попадают в репозитарии Debian и Ubuntu. Выкачивать придется обновленную программу полностью, поэтому стоит посмотреть лог изменений в обновленной версии и качать только программы, которые действительно необходимо обновить. В стабильные репозитарии не попадают версии программ с новыми функциями, а только с исправленными ошибками.

2. Обновление программ с помощью нестабильного репозитария бинарных программ

Новые функции реализованы в новых релизах программ. Эти релизы как правило добавляются в нестабильные репозитарии дистрибутивов, которые по умолчанию не выключены в менеджере пакетов. Часто новые версии в нестабильном репозитарии скомпилированы с новыми версиями библиотек. Из за этого такое обновление по Сети, хотя и происходит без особых усилий со стороны пользователя, как правило требует скачивания больших объемов. Еще одна неприятность с таким обновлением связана с тем, что не обновленные программы, зависящие от обновленных библиотек, могут в результате изменений в библиотеках нестабильно работать вплоть до полной неработоспособности. Такие программы тоже потребуется обновить из того же репозитария. Можно заказывать срезы нестабильного репозитария по почте и выполнять обновление с дисков.

3. Обновление до следующей стабильной версии дистрибутива

Самый надежный и дешевый способ обновления — дождаться выхода следующего релиза дистрибутива и выполнить обновление всей системы с диска. Далее настроить менеджер пакетов на репозитарии новой версии дистрибутива и выкачать обновления используемых программ, отсутствующих на диске дистрибутива. Недостаток этого способа в том, что необходимо ждать выхода новой версии дистрибутива даже если программы уже обновились. Выбирая с расчетом на такую схему обновления обратите внимания на регулярность официальных релизов. Например Ubuntu выпускается раз в пол года, а Debian и Slackware "когда будут готовы".

4. Компилирование программ из исходных текстов

Обеспечивает наиболее оперативное получение новых версий. Исходники программ довольно большие, например AbiWord в исходниках занимает 35 Мб + заголовки библиотек. Для использования этой схемы обновления лучше выбрать большой дистрибутив, в составе которого на дисках есть исходники, компилятор и заголовки библиотек, такой как Debian. В однодисковых Ubuntu и Kubuntu ничего этого нет, и чтобы что-нибудь скомпилировать надо сначала будет выкачать довольно много пакетов для разработки (dev) из репозитария. Кроме того если в составе дистрибутива есть исходники старой версии, то обновить их до новой версии можно скачав лишь патчи изменений, применив их к исходникам с помощью команды patch. В этом случае скачивать надо совсем не много, однако придется повозиться с поиском и применением патчей.

5. Использование дистрибутивов Linux, полностью основанных на компиляции из исходников

Речь здесь идет об уникальном дистрибутиве Gentoo Linux. Это единственный Linux, система управления репозитариями которого (Portage) имеет возможность автоматически обновлять исходники программ до последней версии, выкачивая только разницу с имеющейся версией.

Я потратил некоторое время на чтение форумов чтобы выяснить, применим ли Gentoo для десктопа и насколько удобны обновления c помощью Portage. Оставим в стороне сложность освоения этого дистрибутива.

В процессе обновления все не так гладко. Из за низкого качества описаний программ (ebuild) в репозитариях, недостаточности тестирования, возникают специфические для Portage проблемы, решение которых требует затрат времени и глубокого понимания особенностей работы системы. Пользователи Gentoo с пятилетним стажем переходят на Ubuntu из за нехватки времени на установку обновлений, которая порой представляет собой целое приключение и не всегда автоматизирована полностью. Уже освоившие Gentoo люди переходят на Ubuntu, Kubuntu, Debian из за падения качества пакейджей исходников (пакет отмеченный как стабильный может даже не установиться), связанных с их устранениями затрат времени (больше настраиваешь систему, чем пользуешься ей), низкой по сравнению с apt-get производительности Portage и необходимости тратить время на компиляцию, когда надо что то быстро поставить и работать, возникновении проблем при установке больших но самых обычных программ, например Gnome.

Как выяснилось, преимущества использования Gentoo для многих вовсе не в скорости оптимизированных программ и быстроте и оперативности обновления системы. Пользователей Gentoo привлекает полный контроль над работой и составом системы, преобретение глубоких знаний архитектуры Linux и сети в процессе настройки системы, а также особое эстетическое удовольствие от ее изучения и настройки на протяжении месяцев :).

Для обновления десктопа большинству пользователей, не заинтересованных в глубоком изучении Linux и использующих его для работы, подходит способ 1, 3 (Ubuntu, Kubuntu): выкачиваем критические обновления по Сети, обновляем систему с выходом дистрибутива. Тем, кто хочет быстро получать новые версии программ по Сети, подходит 2, 4 (Debian). 5 когда требуется полный контроль над системой и есть много свободного времени на изучение и компиляцию.

P.S. С Ubuntu вы с собакой выходите погулять. С Gentoo вы выгуливаете собаку. C Windows собака убегает и гадить в саду у соседей. ©

Блог: RU Linux

Справедливо. Люблю Linux и пользуюсь только этой операционной системой. Но, "особое эстетическое удовольствие от ее изучения и настройки на протяжении месяцев" начинает утомлять. Из-за студентов-практикантов не собирается 95% программ, упакованных в исходники (tar.и.т.п.) Дело даже не в зависимостях, которые требуют программы, а в невозможности их разрешить. Кто не однажды читал в терминале ругательства - по поводу команд configure и make - сразу поймут. Изучение системы - полезная вещь, но должен быть предел. Пора упрощать, Господа! Или нас, поголовно, желают посвятить в программисты, чтобы переписывать за нерадивых коды на Си, Питонах и прочих Жабах (Java'х)?