Книга: Священные войны мира FOSS
Apt vs yum
Apt vs yum
Февраль 13, 2012
В дистрибутивах, использующих формат пакетов 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.
- Chapter 5. Preparations
- Chapter 6. Traversing of tables and chains
- Chapter 7. The state machine
- Chapter 8. Saving and restoring large rule-sets
- Chapter 9. How a rule is built
- Chapter 10. Iptables matches
- Chapter 11. Iptables targets and jumps
- Chapter 12. Debugging your scripts
- Chapter 5 Installing and Configuring VirtualCenter 2.0
- Chapter 13. rc.firewall file
- Chapter 14. Example scripts
- Chapter 15. Graphical User Interfaces for Iptables