О починке неработающего календаря архивных постов и Blogger



28 коммент.
Это короткий пост о починке календаря архивных постов, который вдруг перестал работать в некоторых блогах на Blogger и о том, что через некоторое время сам Blogger ждут перемены. То есть они уже начались, судя по отвалившемуся календарику, но в остальном перемены, будем надеяться, к лучшему.
Читать далее

Дистрибутивы Linux



53 коммент.
Вопрос, будоражащий пытливые умы сомневающихся пользователей Windows: что такое дистрибутив линукс? Чем один дистрибутив отличается от другого? Вон их сколько! Зачем же так много дистрибутивов Linux?


Windows одна, и всем хватает - а зачем Линуксов так много?

Короткий ответ: потому, что линуксы разные: один лучше для серверов, другой - для десктопов.

Долгий ответ: вообще Linux - только ядро операционной системы, а для полной системы нужно много чего: загрузчик, системные утилиты и куча прикладных программ, вроде музыкальных плееров и редакторов текста. Каждый Линукс - комбинация всех этих программ и способов их установки, версий ядра, лицензионной политики и нескучных обоев от определённого поставщика (Debian, RedHat, Gentoo...). Именно эта комбинация и отличает Debian от Slackware, Gentoo от Ubuntu, и openSuSe от RedHat.
Вот эти-то комбинации разных программ, соединённые в одно единое взаимосвязанное целое, как раз и называют дистрибутивами Linux.
Что такое дистрибутив - выяснили, теперь ответ на вопрос:


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


Десктопное окружение и внешний вид "из коробки"
Собственно, это самое главное для пользователя - как это чудо будет выглядеть сразу после установки. Более того, один и тот же дистрибутив можно заставить выглядеть по-разному:
Ничто не мешает снести одно десктопное окружение и поставить другое. В каждом десктопном окружении есть свои особенные программы: например, в KDE текстовый редактор - Kate, в GNOME - gedit, в XFce - Mousepad. Использовать программы одной среды в другой не возбраняется, потому, что девиз Linux - настраивается ВСЁ!

Заблудились в обилии настроек KDE? Попробуйте лаконичный GNOME. Хочется быстрой, отзывчивой среды с минимумом свистулек - поставьте XFce. Даже в консоли можно найти аналоги привычных программ и прекрасно работать.

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


Пакетный менеджер для управления программами
В дистрибутивах Linux, в отличие от Windows, вы никогда не увидите файлов типа setup.exe, которые устанавливают какие-то непонятные файлы DLL чёрт знает куда и которые потом нужно очищать всякими костылями. В линуксах программы устанавливаются, удаляются и обновляются централизованно, и отвечает за это специальная программа, которая называется пакетный менеджер.
Говоря просто, пакетный менеджер это такая программа, которая ведёт базу данных установленных приложений и их версий, и всегда знает, какие файлы куда установлены, чтобы можно было поставить новые программы, удалить старые или обновить всю систему целиком без переустановки и вычищения мусора оставшися файлов.
Почему же это тогда называется пакетный менеджер, а не программный, спросите вы?

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

Системы управления пакетами и программы-пакетные менеджеры бывают разные:
RPM [Redhat Package Manager] создана для RedHat-основанных дистрибутивов Linux. Пакетный менеджер, например yum или zypper, используется в RedHat Linux, а так же в Fedora, SuSe и других.

APT [Advanced Package Tool] создана для дистрибутивов Linux, основанных на Debian GNU/Linux. Пакетный менеджер, например aptitude или dpkg, используется собственно Debian, а так же Ubuntu, Knoppix, Mepis и другими.

Portage package management system
имеет много разновидностей, примером может служить дистрибутив Gentoo. Как вариант пакетного менеджера можно привести emerge.
Пакетные менеджеры не просто ищут желаемые вами программы по описаниям. Вот вы ткнули мышкой в программу и нажали кнопку установить, а она спрашивает вас про какие-то зависимости. Что это такое?


Зависимости в пакетах

В пакете содержится не только исполнимая программа, библиотека или обоина на рабочий стол, но также и требования того, какие программы или библиотеки (в Windows это называют DLL-файлы) нужны для её работы. Например, если вы работаете в десктопной среде GNOME и вам приглянулся текстовый редактор Kate из KDE, при попытке его установить пакетный менеджер попросит поставить кучу зависимостей - библиотек KDE. Это будет сделано за вас, автоматически, и никакого мусора в системе не будет - всё под контролем пакетного менеджера.
А почему в линуксах всё так сложно, а в Windows этого нет и все живы? Потому, что в Windows каждая крупная программа ставит вместе с собой свои версии библиотек. Это спорное решение. Так как в Windows менеджера пакетов нет, обновить программу получится только сносом старой и установкой новой версии. Обновить такую систему целиком без переустановки программ не получается. Для пользователя оно вроде как проще - ткнул setup.exe и готово. Программистам из Микрософта тоже напрягаться не надо. Сложно будет потом, когда захочется обновиться до следующей версии Windows...
У пакетной системы есть своя оборотная сторона. Пока вы ставите программы, которые соответствуют вашей версии дистрибутива - всё весело и просто: версии библиотек и других программ подогнаны друг к другу и все зависимости соблюдены.
Если вам захочется, не трогая дистрибутив, поставить распоследнюю версию программы, могут возникнуть сложности. Например, в Debian версии 5.0 просмотрщик PDF это kpdf, и мне захотелось его обновить из следующей версии, Debian 6.0. Пакетный менеджер, просмотрев зависимости, радостно доложил: в новой версии kpdf нет, но есть okular, и он зависит от новых библиотек, и текущие нужно обновлять. Кроме того, старые программы с новыми библиотеками работать не будут, так что нужно обновлять и их. А вместе и другие программы. И графическую оболочку. Ну и загрузчик заодно. И всё из-за одного мелкого бубенчика...
Конечно, в 99% случаев всё кончится хорошо и программа (часто вместе с куском системы) обновится без осложнений. Просто обновлять много всего из-за мелкой программы не всегда есть время, желание и возможности.

Вся эта огромная куча пакетов с их ворохом зависимостей друг от друга, управляемая пакетным менеджером, как раз и составляет ваш дистрибутив Linux. Но это не просто куча мусора, а упорядоченная система, которая называется


Репозитории пакетов программ
Все программы в дистрибутивах Linux - отдельные проекты, развивающиеся сами по себе. Как вы уже поняли, прочитав про зависимости в пакетах, собрать все эти программы, с их зависящими друг от друга библиотеками вместе и чтобы всё работало - дело очень сложное.

Этим сложным делом занимаются за вас разработчики дистрибутива (майнтейнеры). Они со знанием дела берут программы из открытых исходных кодов и начинают подгонять их друг к другу, упаковывая программы в пакеты и соблюдая все зависимости, тестируя и удаляя ошибки из программ.
Собрать программу в пакет можно и самому, и это, при некотором понимании процесса, не очень сложное дело - если вы не пытаетесь собрать что-то большое, вроде KDE, GNOME или LibreOffice. Тем не менее, для этого потребуется использовать компилятор и иметь хотя бы отдалённое понятие о программировании.
Все подогнанные друг к другу программы, библиотеки и нескучные обои, упакованные в пакеты со всеми зависимостями - это и есть репозиторий вашего дистрибутива, откуда программы и устанавливаются в ваш компьютер.
Репозиторий это все файлы пакетов, принадлежащие одному дистрибутиву (например, Debian) одной его версии (например 5.0).
ISO-файлы образов для пропаливания на болванку содержат как раз репозитории пакетов со всеми зависимостями и менеджером пакетов плюс установочную программу, которая разметит жёсткий диск, всё поставит и приготовит вам десктоп (или сервер, или что попросите).
ВАЖНО! Пожалуйста, не поддавайтесь искушению ставить программы в Linux в обход менеджера пакетов, простой компиляцией. Работать они будут, но пакетный менеджер ничего о них не будет знать. При обновлении системы или программ вы рискуете получить больше проблем на свою голову, чем представляете. Устанавливайте программы ТОЛЬКО в виде пакетов.
Дистрибутивы Linux разнятся не только пакетными менеджерами: репозитории одних дистрибутивов содержат огромное количество программ для установки, репозитории других очень небольшие. Некоторые дистрибутивы в комплекте имеют программы, которых в других нет. Почему? Тому причиной


Лицензионная политика
Всякие нехорошие корпорации вроде Microsoft или Adobe пишут программы и продают их за безумные деньги, при этом не гарантируя ничего. Исходный код тоже не дают - говорят, что такой код закрытый. Хуже того:
  • вы не можете исправить ошибки в программах, даже если знаете как;
  • вы не можете распространять программы (у них это называется пиратство);
  • вы не можете устанавливать программы на все компьютеры (только на один);
  • как правило, вы не можете открыть результат своей работы в другой программе (закрытые форматы).
Пользуясь к примеру Windows, вы фактически не имеете никаких прав и гарантий - лицензия проприетарных (закрытых, собственнических) программ похожа на договор аренды без гарантий и с кучей ограничений.
Сравнение с автомобилем: проприетарное программное обеспечение
Чтобы представить себе проприетарщину в полный рост, вообразите, что некая корпорация МикроАвто, выдавив нечестной конкуретной борьбой всех соперников, является монополистом на рынке автомобилей. Купить машину можно только марки МикроАвто, и заправки в городе только МикроАвто - рецепт топлива держится в секрете.
При этом, когда вы покупаете автомобиль, вас просят подписать лицензионное соглашение, в котором на автомобиль
не даётся никаких гарантий вообще. То есть они не гарантируют, что тормоза работают, двигатель не взорвётся, а руль не отвалится. При этом вам запрещено открывать капот, давать покататься на машине другому человеку и перевозить более 1 пассажира (хотя мест 5).
Долгое время альтернатив не было - попробуйте построить заправку для автомобиля, если состав топлива неизвестен, а за попытку это выяснить можно оказаться в суде!

Именно из-за подобной зверской лицензионной политики и появилось движение за Свободное Программное обеспечение. Были созданы другие лицензии, например, GNU GPL, которые позволяют копировать, распространять и изменять открытые программы. В свободном программном обеспечении:
  • вы можете устанавливать программное обеспечение на столько машин, сколько хотите;
  • вы можете давать пользоваться программой другим людям (одновременно запускать несколько копий с доступом по сети);
  • вы можете вносить изменения в программы и исправлять там ошибки (если сохраните в неизменном виде некоторые замечания);
  • вы можете перепродавать или оказывать платную поддержку для свободных программ;
  • как правило, вы можете открыть результат работы, сохранённой свободной программой, в аналогичной (открытые форматы могут быть реализованы во многих программах).
Некоторые дистрибутивы, например Debian GNU/Linux, очень тщательно следят за тем, какие программы включаются в состав дистрибутива - они не хотят иметь дело с несвободными программами во избежание лицензионных проблем. Поэтому в Debian, например, будет Iceweasel а не Mozilla Firefox, LibreOffice а не OpenOffice.

Когда все лицензионные вопросы утрясутся, репозитории будет более или менее готовы - разработчики соберут дистрибутив, присвоят номер версии, обзовут как-нибудь по-хитрому (типа Ubuntu "Свободомыслящий Сурикат"), и выложат для скачивания и обновлений. И это долгожданное событие называется


Релиз!

Ещё одно отличие дистрибутивов - способ релизов. Релизы бывают фиксированные ("раз в полгода - и хоть потоп!", как в Ubuntu, или "когда будет готово", как в Debian) и скользящие (rolling-release, обновляется постепенно - когда обновите систему, тогда для вас релиз и произойдёт). Каждый вид релизов имеет свои сильные стороны:
  • Дистрибутивы со скользящим релизом (rolling release), например Arch и Gentoo. В таких дистрибутивах программы попадают в репозиторий обычно после короткого периода тестирования, поэтому главное преимущество здесь - свежесть программ. Это важно, так как изменения в программах под Linux могут происходить очень быстро, и буквально за полгода программа может обрасти нужными вам функциями. Недостаток - как правило, меньшая подогнанность программ друг к другу и наличие ошибок из-за малого тестирования.
  • Дистрибутивы с фиксированным релизом, например Debian и Ubuntu. Программы, предназначающиеся для релиза, проходят долгий путь тестирования, обкатки и вылавливания ошибок. Главное преимущество поэтому - высокая стабильность, надёжность и подогнанность программ друг к другу. Естественно, что программы в таких дистрибутивах не могут быть самыми свежими, поэтому и недостаток - программы довольно старые, особенно по меркам скользящих релизов.
Здесь каждому своё: если вы программист, компьютерный энтузиаст или просто хотите использовать последние версии программ - используйте дистрибутивы со скользящим релизом. Наоборот, если вы больше цените стабильность и надёжность, то лучше использовать проверенное, хотя и несколько устаревшее, программное обеспечение из дистрибутивов с фиксированным релизом.


Дистрибутивов Linux так много, а какой дистрибутив самый лучший и как выбрать Linux?
Выбор дистрибутива - дело вкуса, а о вкусах не спорят. Важно помнить, что в дистрибутивах Linux, какой бы вы ни выбрали:
  • программы везде одни и те же;
  • дистрибутивное ядро Linux отличается версией и наложенными на него заплатками - в принципе, можно поставить любое;
  • каждый пакетный менеджер имеет свои преимущества и недостатки;
  • репозитории - у одних больше, у других - меньше, но всегда можно поставить программу, упаковав её в пакет самому (или найдя уже упакованную);
  • лицензионная политика - не религия, и всегда можно поставить нужную закрытую (проприетарную) программу даже в самый открытый дистрибутив;
  • фиксированные или скользящие (rolling release) релизы удобны или неудобны в зависимости от рода деятельности и решаемых задач.
Выбор дистрибутива - дело непростое. Как в случае с музыкой, едой или книгами, так и с дистрибутивами Linux - лучше установить несколько популярных и решить, какой нравится и подходит больше.

Главное: дистрибутив - не татуировка, можно всегда снести и поставить другой. В помощь начинающим в выборе Linux есть: этот сайт поможет выбрать ваш первый дистрибутив Linux.

Удачи!


P.S. Пост, конечно, loqueteux accordéon chromatique, но автор решил стряхнуть с него пыль и рубануть на ём брэйкданс. Мелодия творчески переосмыслена отсюда, однако звучание той гармошки мне не по нраву. Ибо музыка, как и пост, должна брать за сердце и тревожить душу, чего указанному по ссылке гармонисту, на мой скромный взгляд, не вполне удалось. В комментариях автор грозился запилить что-нибудь умопомрачительно эпичное с блэкджэком и азартными барышнями. И что характерно, диджей Virens отмочил-таки свою уникальную©, не имеющую аналогов в мире™ баянную композицию, с хип-хопом и минорными аккордами. Наслаждайтесь, дополняйте и критикуйте.

На фото справа: автор в процессе написания данного поста. Слагает... Автопортрет, да.
Читать далее