Сравнение мужей: apt vs. yum

Алексей Федорчук

В дистрибутивах, использующих формат пакетов rpm, применяется ряд систем для управления оными. Из них наиболее известны (в исторической последовательности) apt-rpm, yum, urpmi, zypper. Последние два — дистрибутив-специфические, и применяются, насколько я знаю, только в Mandriva и openSUSE, соответственно. Два других же, apt-rpm и yum, используются в нескольких дистрбутивах, в том числе в некоторых (Fedora, PCLinuxOS) могут применяться параллельно, или, скорее, альтернативно. И потому сравнение их представляется не лишённым смысла. Чем мы и займёмся в настоящей заметке.

Для начала надо отметить, что сравнение apt vs. yum никогда не было предметом ожесточённых сетевых баталий, и поэтому здесь я вполне могу следовать завету Корнелия Тацита, то есть писать «без гнева и пристрастья». Но для начала — маленький исторический очерк, для расстановки приоритетов.

Первые годы своего существования Rad Hat и его прямые клоны и порты, такие, как Caldera, Mandrake и Yellow Dog, обходились без системы управления пакетами, довольствуясь средством их установки — утилитой rpm. Впрочем, систем управления пакетами тогда не было ни в одном дистрибутиве Linux — вплоть до того момента, когда в 1999 году в Debian’е не появилась система apt. Которая была быстро окучена бразильской компанием Conectiva и приспособлена к работе с rpm-пакетами.

Система, получившая название apt-rpm, оказалась очень удачной, и была немедленно задействована в российском дистрибутиве Altlinux, как раз в это время (2001 год) отделившемся от Mandrake. Началось и ползучее её внедрение в праотеческий Red Hat, а затем, после покупки фирмой MandrakeSoft бразильской Conectiva — и в объединённом дистрибутиве Mandriva. Однако, в отличие от Altlinux, использующего её до сих пор, ни там, ни там apt-rpm не прижился. В Mandriva она была заменена собственной системой urpmi, а Red Hat взял на вооружение систему yum.

Прототипом системы yum послужила система yup, разработанная для дистрибутива Yellow Dog — порта Red Hat на платформу PowerPC. К 2002 году она, уже под своим современным именем, была адаптирована для самого Red Hat’а и сразу же взята на вооружение российским же дистрибутивом Asplinux. В Red Hat’е же она боролась с apt-rpm за почётное звание ударника пакетного менеджмента до осени 2003 года. Когда была принята в качестве штатного средства управления пакетами в только что образовавшемся дистрибутиве Fedora Core. В котором, тем не менее, реликтовая поддержка apt-rpm сохранилась до сих пор.

Ещё один дистрибутив, в котором apt-rpm прочно утвердился в роли менеджера пакетов — PCLinuxOS. И до недавнего времени он был там единственным исполнителем этой роли (вместе со своей графической оболочкой — Synaptic’ом). Ныне ведутся работы по включению в этот дистрибутив и yum’а — также с его графическим фронт-эндом yumex. В настоящее время оба они доступны для тестирования в 32-битной сборке PCLInuxOS (хотя в 64-битной и yum, и yumex пока отсутствуют).

За всё время пользования Fedora я использовал только yum (и PackageKit, а недавно опробовал yumex), необходимости обращаться к apt-rpm не возникало. В PCLinuxOS же, напротив, я ограничивался исключительно apt’ом — за отсутствием, как уже сказал, yum’ в 64-битной сборке. Тем не менее, на уровне субъективных ощущений вполне могу сравнить оба пакетных менеджера.

Первым впечатлением от apt-get в PCLinuxOS было ощущение быстроты. То есть я всегда знал, что yum — система довольно медленная, так как требует скачивания больших объёмов метаинформации. Но что она медленней настолько — для меня было неожиданностью. Аналогично и с графическими фронт-эндами: Synaptic работал ощутимо быстрее, нежели yumex (сравнивать его с PackageKit было бы некорректно, так как последний, в сущности, может быть назван пакетным метаменеджером).

С другой стороны, yum синтаксически проще: если использование apt’а требует двух команд — apt-cache для получения информации о пакетах и apt-get — для выполнения действий над ними, каждая со своим набором субкоманд, то в yum присутствует только единственная одноимённая команда, сопровождаемая субкомандами.

Кроме того, yum показался мне несколько более богатым функциями: в этом отношении его можно скорее сравнить с aptitude в командном режиме (реализации которой для работы с rpm-пакетами не существует). Кроме того, функциональность yum’а расширяется за счёт многочисленных плагинов. А при использовании в качестве пользовательской командной оболочки (login shell) zsh он хорошо интегрируется с нею, повышая удобство работы (подробности — здесь).

Наконец, главный недостаток yum’а — медлительность — можно несколько уменьшить, по крайней мере при выполнении запросов от лица пользователя, таких, как поиск пакета или получение информации о нём. Как это сделать — описано здесь.

В общем, данное сравнение мужей завершается вничью — миром и дружбой. Я так и не смог решить, кто же доблестней — Кох или Вагнер apt или yum. И для себя решил пользовать оба — каждый в своём родном дистрибутиве: yum — в Fedora, apt — в PCLinuxOS.