Архив метки: Дистрибутивы

Mandriva/ROSA 2011 — что можно сделать после установки

Решил вкратце собрать тут ту инфу, что смог собрать, пользуясь свежей Mandriva (которая сегодня зарелизилась) уже месяц. Как всегда, приводимая здесь информация на свой страх и риск. Приведенные советы могут взорвать ваш компьютер, съесть вашего хомяка, начальник лишит вас премии, а лучший друг обидится на вас. Если все это вас не пугает — вперед!

Читать

Дистрибутивы Linux. Часть II

Хоть Virens частично и раскрыл эту тему в своем последнем посте, пост, приведенный ниже уже был наполовину готов. И я подумал — а не буду я отменять выкладывание этого поста. Что лучше, что хуже пусть судят остальные ;). Вопросы, касающиеся пакетного менеджмента я, в свое время, тоже опишу.

В первой части были рассмотрены основные определения, касающиеся понимания дистрибутива Linux. Теперь, собственно, я попытаюсь собрать это все воедино.

Как получается очередной дистрибутив Linux?
Читать

Из чего состоят дистрибутивы Linux. Часть I

 

Дистрибутивов Linux огромное количество. Откуда они берутся, как получаются и почему именно такие — этому и посвящена статья. Статья адресована прежде всего новичкам в мире Linux, поскольку большинство из тех, кто начинал им пользоваться раньше появления Ubuntu, обычно знают все, что приведено ниже.

Представьте себе огромное количество разного ПО от маленьких (но важных) проектов по отдельным библиотекам до огромных типа KDE, GNOME, Libre- и OpenOffice, ядра Linux. Все эти отдельные проекты развиваются каждый сам по себе, иногда с оглядкой на остальные, иногда нет. Конечно, каждый может собрать это все ПО вместе и объявить дистрибутивом Linux, но в случае серьезных дистрибутивов (я к ним отношу те, что занимают первые 10 мест в рейтинге Distrowatch) все обычно гораздо сложнее.


Немного о терминах.
Разработчиками дистрибутива (или майнтейнерами) обычно называют тех, кто берет какое-то ПО и упаковывает его в пакет для конкретного дистрибутива (пакетная система, для чего она нужна и что делает — отдельный большой вопрос).
Место, откуда это ПО берется — называется апстрим (от английского upstream). Адекватного перевода на русский язык я пока не нашел, да и слово апстрим стало уже устоявшимся термином. Для серьезных дистрибутивов апстримом являются конкретные проекты свободного (и не очень) ПО. Для производных дистрибутивов — другие дистрибутивы Linux. Например, для CentOS — апстримом является Red Hat Enterpise Linux, для Ubuntu — Debian, для Debian — оригинальные разработчики ПО. Еще раз — апстрим это или разработчик конкретной программы, или родительский дистрибутив.
Пакетом называется отдельный атом дистрибутива (в смысле неделимости), который несет в себе конкретную программу (или набор программ), библиотеку (или набор библиотек), документацию, темы оформления или что-то еще. Короче говоря, все, что составляет дистрибутив Linux — это меньшее или большее количество пакетов. Пакет — это обычно:

  • архив дерева файлов в том виде, в котором они должны лежать на диске после установки;
  • набор метаданных, содержащих информацию о пакете (имя майнтейнера, описание пакета, зависимости);
  • набор скриптов, облегчающих установку пакета для пользователя и/или производящих те или иные настройки.

Пакетная система — то, что помогает пользователям дистрибутива искать, ставить, обновлять пакеты и автоматически отслеживать зависимости между ними. Пакетные системы в мире Linux делятся на три больших и хорошо очерченных класса:

  • пакетная система Debian и ее deb-пакеты.
  • пакетная система rpm, придуманная в свое время Red Hat и теперь имеющая не всегда совместимые между собой пакеты разных rpm-дистрибутивов (Red Hat/Fedora, SUSE, Mandriva и т.п.). Имеется в виду, что, например, пакет для Mandriva может и встанет на SUSE (зависит от положения звезд на небе), но работать скорее всего откажется.
  • все остальные пакетные системы. В качестве примера сюда можно отнести и пакеты ArchLinux, и Slackware, и отчасти Gentoo.

Важный составляющих элемент пакетной системы — менеджер пакетов. Это программа, позволяющая управлять пакетами на конкретной машине. И обычно она имеет только текстовый интерфейс, но разработчики большинства дистрибутивов, как правило, поставляют графические утилиты, взаимодействующие с пакетным менеджером и таким образом значительно облегчающие жизнь тех, кто еще не познакомился с консолью Linux или не хочет с ней знакомится вовсе.
Вопрос какая пакетная система лучше, какая хуже — относится к сфере личных пристрастий и потому спорный. Желающие могут в этом убедиться, открыв на каком-нибудь Linux-форуме тему «Что лучше rpm или deb?». Если Вас сразу не забанят модераторы форума за провокац
ию, то флейм по этому поводу займет не один десяток страниц.

Зависимости — это следующая непонятная новичкам штука. Бывают жесткие и мягкие. Жесткая зависимость в общем виде — это все то, без чего содержимое пакета работать не будет. Обычно это какие-то библиотеки, обеспечивающие функционал конкретной программы. Мягкая зависимость — это то, что обеспечивает дополнительный функционал для программы. Такой тип зависимостей есть, по большому счету, только в deb-пакетах.
Следующее непонятное определение — репозиторий пакетов. Это место, откуда пользователи берут ПО для своего дистрибутива. Обычно это некое сетевое (но может быть и локальным) хранилище пакета, в котором помимо собственно пакетов для дистрибутива находится набор метаданных, которые используются пакетным менеджером для управления ПО на машине пользователя. Именно благодаря этим метаданным пользователям достаточно легко найти нужные пакеты в репозитории, а пакетному менеджеру выяснить, какое ПО требует обновлений.
По способу поддержки репозитория можно выделить три типа дистрибутивов:

  1. Дистрибутивы со скользящим релизом (или безрелизные). На английском они обычно называются rolling release. Типичный (и достаточно популярный) тут — Archlinux. В таких дистрибутивах после обычно малого периода тестирования пакеты попадают к пользователям практически сразу после релиза конкретного пакета его разработчиком. Главное преимущество таких дистрибутивов — то, что в репозитории находится очень свежее ПО. Это имеет и обратную сторону (за все в жизни приходится платить) — в этом ПО зачастую имеются ошибки, которые с переменным успехом отлавливаются пользователями такого дистрибутива. По причине того, что большая часть проектов развивается без оглядки друг на друга, иногда встречается какая-либо несовместимость между какими-то пакетами, вызывающая неработоспособность определенной программы. Иногда (при серьезных изменениях) меняется формат конфигурационного файла программы или демона, что требует работы руками. Но те, кто используют такие дистрибутивы, обычно знают, на что идут, и достаточно квалифицированы для того, чтобы решить все возникающие проблемы. Тут из всех дистрибутивов, на мой взгляд, самый выдержанный подход у Gentoo, который представляет собой дистрибутив с rolling release-моделью, но тем не менее все пакеты попадают в его стабильную ветвь после значительного периода тестирования, что обеспечивает достаточно высокую надежность его работы.
  2. Дистрибутивы с релизной моделью. Проблема получения стабильного дистрибутива давно уже решена и используется большинством разработчиков разных дистрибутивов Linux, таких как Debian, Ubuntu, Red Hat, SUSE и проч. У таких дистрибутивов есть обычно тестовая ветвь с rolling release-моделью, на которой обкатываются (и решаются) разные проблемы несовместимости и нестабильной работы конкретного ПО. Периодически эту ветвь замораживают, блокируя попадание туда новых пакетов. Затем в таком репозитории вычищают по максимуму все имеющиеся в нем проблемы и ошибки. Когда ошибок, по мнению разработчиков, уже достаточно малое количество, выпускается очередной релиз, на протяжении жизни которого в нем не будут уже меняться версии имеющегося ПО. Обновления такого дистрибутива включают в себя исправление оставшихся ошибок и устранение возникающих время от времени уязвимостей. Иногда ошибки устраняют и разработчики апстрима. Тогда задача майнтейнера пакета проанализировать исходный код разработчиков ПО (он же открыт) и выделить из него только те изменения, которые отвечают за исправление ошибок. Затем эти изменения накладываются на те программы и библиотеки, которые находятся в стабильном релизе. Благодаря этому получается, что версия ПО в стабильном дистрибутиве старая, но тем не менее в ней исправлено большинство уязвимостей, найденных к этому моменту. Другое дело, что длительная поддержка ПО по такой схеме — вещь трудная. Ведь чем больше проходит времени с момента релиза, тем более высокая квалификация требуется от разработчика, чтобы выделить только то, что исправляет ошибки и ни в коем случае не ломает совместимость с другими программами и библиотеками. Именно по этой причине длительную поддержку релиза могут позволить себе немногие. По сути лишь те, кто
    имеет большое количество квалифицированных программистов, то есть коммерческие компании Red Hat и Novell. Такие дистрибутивы прекрасно подходят для консервативной корпоративной среды, где редко происходят сильные изменения и поэтому нужна высокая стабильность работы.
  3. Дистрибутивы со смешанным циклом. В таких дистрибутивах стабилизируется (замораживается) только одна часть репозитория. Как правило, это все, что относится к сборочной среде, — компилятор, библиотека C, разные важные библиотеки, ядро Linux. А ПО, относящееся к десктопам (типа Firefox, OpenOffice, разные игры), обновляется регулярно (но обязательно после продолжительного тестирования).

Для таких популярных дистрибутивов как openSUSE и Ubuntu есть выбор — либо использовать стабильную базу конкретного релиза их дистрибутива, или подключить дополнительные репозитории (репозитории OBS для SUSE и ppa для Ubuntu), получая таким образом более свежее ПО для своей системы.
Вроде как все, что хотелось бы сказать по данному поводу. Если что осталось неясно, постараюсь ответить в комментариях на вопросы, касающиеся данной статьи. В меру сил и наличия свободного времени постараюсь внести все необходимые изменения, если потребуется в приведенный текст статьи.

Автор: stranger

Поскреби Ubuntu, получишь Debian…

Относительно недавно кто-то (не помню кто) из сообщества Debian высказывался, что Ubuntu использует 75% пакетов из Debian без изменений. Вот я и решил поставить один эксперимент, результаты которого приведены ниже.

Итак, берем Ubuntu Alternate CD, вставляем в диск и перезагружаемся. На всякий случай, я все свои эксперименты проводил в виртуалке в Virtualbox. В установщике выбираем режим экспертной установки и ставим только базовую систему. Можно еще в диалоге создания учетных записей разрешить учетную запись root. Меня в Ubuntu больше всего раздражает заблокированная учетка root и неправильно настроенная sudo. После перезагрузки входим в систему и ставим пакет gnome-desktop-environment. Те, кто использует Debian, наверняка знает, что этим метапакетом ставится GNOME.

Читать

KVM и/или Xen? Выбор платформы виртуализации

Читая новости, я обнаружил статью с кратким обзором имеющихся решений виртуализации от небезызвестного Joe Brockmeier. Статья показалась мне интересной, привожу свой перевод. Ссылка на оригинал традиционно приводится в конце статьи.

Понедельник, 12 Июля 2010 00:00 Joe 'Zonker' Brockmeier

Когда Xen появился в 2002 году, он, выпущенный под лицензией GPL, выглядел основным претендентом на «корону» основной платформы виртуализации для Linux. Если же мы быстро перенесемся в настоящее время, то увидим что новичок в этой области полностью вытеснил Xen, как основу виртуализации по умолчанию в дистрибутивах Red Hat и, более того, вполне себе комфортно обосновался в основном ядре Linux. Что же выбрать из них? Xen или KVM?
Область виртуализации развивается довольно быстро. Поэтому если у вас нет времени следить за разработкой KVM или Xen, то у вас неизбежно появятся затруднения в выборе лучшего для вас варианта. Ниже приведен беглый обзор состояния текущего рынка решений виртуализации на основе Xen и KVM.
KVM и Xen
Xen это гипервизор, поддерживающий следующие архитектуры: x86, x86_64, Itanium, и ARM. Он может запускать Linux, Windows, Solaris, и некоторые из BSD-систем в качестве гостевых ОС (на поддерживаемых гостевой системой процессорных архитектурах). Он поддерживается рядом компаний, в первую очередь Citrix , также используется Oracle для Oracle VM, и других. Xen может реализовать режим полной виртуализации на тех системах, которые имеют поддержку технологии аппаратной виртуализации (такие как Intel-VT и AMD-V), а может работать как обычный гипервизор на машинах, которые не имеют таких расширений.
KVM это гипервизор, который находится в основном ядре Linux. Вашей родительской системой в случае его использования, естественно, обязана быть Linux, но в качестве гостевых систем поддерживаются Linux, Windows, Solaris и BSD-системы. Он работает на архитектурах x86 и x86-64 с аппаратной поддержкой виртуализации. Это означает, что KVM не может использоваться на старых процессорах не имеющих такой поддержки, а также на некоторых новых CPU (например, процессоры Intel Atom). По большей части, это не проблема для дата-центров, которые, так или иначе, все равно меняют оборудование раз в
несколько лет. Но это также означает, что KVM не вариант для ряда узкоспециализированных систем, таких например, как SM10000, которые пытаются использовать процессоры Atom в центрах обработки данных.
Если вы хотите использовать виртуализацию на основе Xen, то вам нужно ядро, собранное с его поддержкой. Хоть Linux и может запускаться в качестве гостевой системы под Xen с ядра версии 2.6.23, использовать ее «из коробки» в качестве родительской системы не получится. Это означает, что не каждый дистрибутив Linux можно использовать для запуска виртуальных машин под Xen. Поэтому вам нужно выбрать дистрибутив Linux, который поставляется с поддержкой Xen или собрать собственное ядро (Последний совет не самый легкий путь, поскольку патчей для поддержки Xen очень много, накладываются они не на каждое ядро и даже если они все наложатся успешно, не факт, что ядро корректно соберется. Проще найти дистрибутив, ядро которого уже пропатчено для поддержки Xen. Поскольку Novell поддерживает решения на Xen, то, например, все ядра openSUSE собираются с его поддержкой. Найти их можно здесь. Прим. перев.). Еще один путь — использовать одно < span style="font-family: Times New Roman,serif;">из коммерческих решений на базе Xen, такое как Citrix XenServer. Единственная проблема в том, что эти решения зачастую не являются решениями с полностью открытым исходным кодом.
Поэтому многие собирают собственные ядра или ищут того, кто может это сделать. Xen используется на довольно большом количестве серверов: от недорогих провайдеров Virtual Private Server (VPS) (как Linode ) до таких «больших мальчиков», как Amazon EC2.Статья на TechTarget показывает, что провайдеры, которые вложили значительные средства в решения на Xen совсем не собираются переключаться на что-либо еще. Даже если KVM и превосходит Xen технически, они вряд ли будут ломать и перестраивать существующие решения только для того, чтобы получить незначительный выигрыш.
Но у KVM в любом случае пока еще нет таких технических преимуществ. Поскольку Xen используется < span style="font-family: Times New Roman,serif;">немногим дольше, у него было больше времени для достижения зрелости, чем у KVM. Вы можете найти некоторые возможности в Xen, которые еще не появились в KVM, хотя этот проект имеет длинный список TODO (то, что приведено в этом списке — просто набор идей над которыми планируют работать разработчики KVM, а не идеи по достижению паритета с Xen). У KVM на самом деле есть пока только одно небольшое преимущество, которое может позволить ему стать основным гипервизором в Linux. Если вы используете последние ядра Linux, у вас уже есть KVM. В Red Hat Enterprise Linux с версии 5.4 включена поддержка KVM и эта компания предполагает отказаться от Xen в пользу решений на KVM в RHEL 6.
Это, в частности, может служить указанием того, чего достиг KVM в техническом плане. Мало того, что Red Hat имеет преимущество в наличии значительного количества талантливых программистов для разработки KVM, у них есть еще одно преимущество, выражающееся в появлении дополнительных препятствий для компаний, которые клонировали Red Hat Enterprise Linux и инвестируют значительные средства в Xen. Исключая Xen из планов своего развития, они заставляют эти компаний также отказаться от Xen или брать поддержку Xen-решений на себя и отказаться от клонирования RHEL. Это означает дополнительные расходы на инженеров, больше усилий для ISV-сертификаций и т.д.
KVM в настоящее время не может тягаться с Xen, хоть и быстро его догоняет. Он достиг достаточной степени зрелости для того, чтобы многие организации комфортно использовали его в своей работе. Значит ли это, что Xen'у пора на выход? Не так быстро.

Останется только один?

Выбор «KVM или Xen» скорее всего будет диктоваться вашим вендором. Если вы используете RHEL в течение длительного времени, ставьте на KVM. Если вы используете Amazon EC2, вы уже используете Xen, и т. д. Основные Linux-вендоры, по-видимому, будут предлагать решения на основе KVM, но есть и достаточное количество коммерческой поддержки для Xen. Весьма вероятно, что Citrix не собирается в ближайшее время уходить с этого рынка.
Бывает очень соблазнительно рассматривать технологию в ИТ-индустрии как игру с нулевой суммой (игра, в которой выигрыш одного означает аналогичный проигрыш другого — прим. перев.), где одно решение выигрывает, а другое — проигрывает. Н
о истина заключается в том, что Xen и KVM в ближайшее время будут сосуществовать. Рынок виртуализации достаточно велик, чтобы на нем хватило места нескольким решениям, у каждого из них имеется серьезный тыл, что также гарантирует их совместное сосуществование.

Автор: stranger

Неожиданное обновление :)

Обновляя вчера свою домашнюю систему (openSUSE 11.2), испытал приятный шок. На своем домашнем компьютере как основная среда у меня стоит KDE4 (он жене больше нравится 🙂 ). До вчерашнего дня в основном репозитории openSUSE 11.2 был KDE версии 4.3.5. А с последним обновлением приехала версия 4.4.4 и Qt версии 4.6. Достаточно неожиданное решение разработчиков openSUSE.

Все мы привыкли к тому, что, в так называемых, стабильных дистрибутивах версии ПО остаются теми же, что и на момент релиза, зато на них накладываются исправления, связанные с безопасностью и ошибками (чтоб не мешать стабильности). Но, что интересно, разработчики openSUSE обновляют версии ПО прямо на протяжении жизни релиза. Насколько я помню, версия 11.2 вышла с KDE версии 4.3.1, который затем обновился до 4.3.5, а теперь до 4.4.4 (вместе с Qt). Решение в общем-то правильное с учетом того, что сил на поддержку более старых версий приходится тратить больше, в то время как есть уже более свежая и поддерживаемая основным разработчиком версия (и что немаловажно, гораздо более стабильная). Обновление прошло достаточно гладко и безпроблемно (спасибо zypper'у).

Ну и следует отметить, что такие обновления происходят не со всем ПО, входящим в текущий релиз openSUSE. На моей памяти это касалось только KDE, Qt, zypper и yast.

Автор: stranger