Я надеюсь, вы разобрались с основными особенностями Ubuntu и более-менее осознали главные концепции этой операционной системы. Теперь пора перейти к описанию практических способов работы с некоторыми основными пользовательскими функциями. Из теории использования Ubuntu осталась только одна тема - репозитории и установка приложений. Её-то я и постараюсь объяснить в этой и последующих статьях.

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

Что такое deb-пакеты, или куда девались exe

Ubuntu имеет принципиально отличное от Windows отношение к устанавливаемым программам. Во-первых, в Windows каждое приложение при установке ставит в свою папку свою собственную копию всех необходимых ему для работы библиотек, а в Ubuntu установочные файлы содержат только само ПО, оставляя вопрос предоставления необходимых библиотек на совесть системы1). Во-вторых, Ubuntu, как и любой Linux, поощряет использование для каждой программы отдельных текстовых файлов для сохранения конфигурации, а Windows только сейчас начал переходить на подобную политику, до этого использовалось весьма странное образование с названием реестр. В-третьих, для того, чтобы найти нужную программу для Windows нужно либо перерыть весь интернет, либо достать откуда-то установочный диск, а потом ещё пройти через длительную процедуру установки, в Ubuntu же всё необходимое ПО скачивается и устанавливается автоматически по запросу пользователя. Вы просто говорите: мне нужна такая-то программа, Ubuntu сама её скачает и поставит, в подавляющем большинстве случаев вам вообще ничего не придётся делать. В-четвёртых, Ubuntu гораздо лучше чем Windows относится к вопросам интеграции ПО в систему, в частности, вам никогда не придётся перезагружать компьютер после установки нового ПО2). Есть ещё много аспектов системы управления приложениями Ubuntu, есть так же некоторые недостатки, надеюсь, вы всё поймёте после того, как я объясню основы работы пакетной системы Ubuntu.

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

Дальше вам надо будет нажать на кнопку «Установить», ввести свой пароль и дождаться окончания процесса установки. Ничего сложного3).

Для установки новых приложений в Ubuntu вы должны обладать правами администратора.

Однако это только самый простейший случай, который используется крайне редко по причине того, что гораздо удобней и правильней устанавливать программы через репозитории.

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

Надо сразу сказать, что основное отличие deb-пакетов от программ-установщиков приложений из Windows заключается в так называемых зависимостях. Я писал выше, что deb-пакеты оставляют вопрос предоставления необходимых библиотек на совесть системы. Так вот, делают это они с помощью указания зависимостей. Зависимость это то, что должно стоять в системе для обеспечения работы устанавливаемого приложения. Если система не может разрешить зависимости, то новый пакет не будет установлен. Правда, на практике такое случается довольно редко, потому как Ubuntu всегда автоматически разрешает все зависимости и скачивает недостающие пакеты из интернета без участия пользователя4). Однако если у вас нет интернета, то зависимости придётся разрешать вручную5).

Попробую пояснить на примере. Допустим у вас есть пакет xxxx, зависящий от пакета yyyy. При попытке поставить xxxx система проверит, стоит ли в ней уже yyyy. Если да, то пакет будет поставлен без всяких вопросов. Если же нет, то Ubuntu обратится к репозиторию, скачает с него пакет yyyy, затем поставит сначала его и только потом xxxx. Всё это происходит в автоматическом режиме и не требует участия пользователя.

На всякий случай скажу, что абсолютно все компоненты системы входят в состав какого-нибудь пакета. Т.е. вся система как бы собрана из кирпичиков - deb-пакетов. Любой системный файл относится к какому-нибудь пакету и вообще весь учёт файлов программ происходит в автоматическом режиме в рамках программы управления пакетами. Поэтому пользователю даже не надо указывать место для установки новой программы, всё это записано внутри пакета и не подлежит изменению6). Удаление так же происходит в автоматическом режиме.

Пользователю в Ubuntu вообще не надо задумываться о вопросах установки или удаления приложений. Хотите что-то поставить? Пожалуйста! Удалить? Тоже без проблем. Система всё сделает и настроит за вас. Единственное неудобство - это необходимость наличия интернета, хотя и это можно обойти.

Если вы запутались во всём этом - ничего страшного, надеюсь, после прочтения следующих статей всё разложится по полочкам. С первого взгляда вся эта система может показаться сложной и запутанной, но на самом деле она крайне проста и очень элегантна.

Репозитории и с чем их едят

Что же такое репозиторий? Пока что я буду рассматривать только интернет-репозитории7). Так вот, репозиторий в интернете - это специальный сайт с архивом пакетов и вспомогательной информацией. Каждый репозиторий имеет так называемый индекс - список всех доступных в нём пакетов с указанием их версий, зависимостей и прочей полезной информации. Ubuntu периодически или же по запросу скачивает со всех прописанных в системе репозиториев их индексы. И когда нужно выполнять какие-либо операции с пакетами Ubuntu ориентируется именно на эти сохранённые в ней описания репозиториев.

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

Кроме того, весь поиск пакетов и любая информация о доступных приложениях так же основываются на сохранённых индексах. То есть механизм очень простой: система сначала скачивает всю доступную информацию обо всех доступных приложениях, а потом по запросу показывает нужные данные пользователю или же сама использует их для некоторых операций.

Подробней о репозиториях я расскажу в одной из следующих статей, после описания инструментов управления пакетами. А пока что нужно разобраться, как использовать всю описанную информацию на практике.

Программы управления пакетами

В Ubuntu существуют две основные графические утилиты управления программами: «Центр приложений Ubuntu» и «Менеджер пакетов Synaptic». Кроме того, все действия можно легко совершать и через консоль. Каждому из этих инструментов посвящена одна из следующих статей. Так же после их описания я расскажу про программу управления обновлениями системы.

На всякий случай хочу сказать, что по достаточно очевидным причинам невозможно совершать какие-либо действия одновременно из двух программ управления пакетами8). Поэтому изредка случается такое, что при попытке что-то установить или удалить выскакивает подобное сообщение о невозможности получить исключительную блокировку. Оно всего лишь означает, что у вас где-то запущено другое приложение управления пакетами9), и вам нужно сначала закончить работу с ним.

Знакомство с доступными инструментами установки и удаления программ начнём, пожалуй, с Центра приложений:

Навигация
Введение
Получение дистрибутива Ubuntu
Загрузка с LiveCD
Особенности установки на платы с UEFI
Разметка диска
Файловая система Ubuntu
Настройка подключения к интернету
Установка
Первая загрузка
Локализация
Обзор системы
Основы использования системы
> Файловый менеджер Nautilus
> Администратор и суперпользователь
> Терминал
> Пользователи, группы и права доступа
> Типы файлов
Управление программами и обновлениями
> Центр приложений Ubuntu
> Менеджер пакетов Synaptic
> Консольные инструменты
> Репозитории и обновления
Установка дополнительных программ
> Мультимедиа и кодеки
> Драйверы
Настройка рабочей среды UNITY
> Стандартные средства настройки
> Дополнительные средства настройки
Визуальные эффекты Compiz
> Куб рабочего стола
Более глубокое знакомство
> Автозапуск приложений
> Монтирование и fstab
Программное обеспечение
> Стандартное ПО
> Игры
Виртуализация и эмуляция
> Virtual Box
> Wine
> Установка World of Tanks в PlayOnLinux
Эпилог
1)
Из-за этого установочные файлы для Windows могут быть на порядок больше по размеру, чем те же файлы для Ubuntu.
2)
Почти никогда. После установки некоторых обновлений и драйверов всё же требуется перезагрузка.
3)
Если не учитывать огромный список возможных проблем, про которые я не упомянул, начиная с неудовлетворённых зависимостей и кончая несовпадением архитектур. Но поскольку прямая установка программ из deb-пакетов практически не используется, то и описывать подробно я её не буду.
4)
Правда, при подключении некоторых сторонних репозиториев, создатели которых не особо щепетильно относятся к подпору версий пакетов, которые они там помещают, можно получить серьезные проблемы в виде «битых» пакетов.
5)
Хотя существуют и другие варианты, например, использование зеркал репозиториев на компакт-дисках.
6)
Если вы считаете это недостатком, возможно, вы и правы. Однако это значительно упрощает процесс установки, а если вы хотите изменить путь установки, то можете перепаковать deb-пакет, изменив все необходимые параметры, сделать это в конце концов очень просто.
7)
Хотя бывают и другие, но о них в специальной статье.
8)
Если вам это не очевидно, представьте, что будет, если вы попытаетесь из двух разных утилит одновременно поставить одну и ту же программу. Размножение почкованием - это явно не про этот случай.
9)
Чаще всего забывают про работающие «в фоне» консольные программы управления пакетами.