Установка приложений в Ubuntu
9.1. Об установке программ в Linux
В Windows все это достаточно просто — запустил установочный файл, который, как правило, называется setup.exe или install.exe, пару раз нажал кнопку Далее, и программа установлена. В Linux все немного иначе. Программа может распространяться двумя способами:
□ в виде пакета;
□ в архиве.
9.1.1. Пакеты и зависимости
Пакет, как правило, содержит программу и вспомогательные файлы. Но не всегда в пакете находится все необходимое для запуска программы. Пакет может не содержать библиотеку, которую использует программа, а также другие программы, которые нужны для работы устанавливаемой программы. Почему так происходит? Представим, что у нас есть графическая библиотека размером 10 Мбайт. Размер устанавливаемой программы — 500 Кбайт. Да, можно было бы включить библиотеку в состав пакета, но тогда размер пакета был бы не 500 Кбайт, а 10,5 Мбайт. При этом есть и другие программы, которые также используют данную библиотеку. Выходит, что каждый пакет с такой программой «весил» бы на 10 Мбайт больше только потому, что библиотека содержится в пакете. Это нерационально — логичнее вынести библиотеку в отдельный пакет.
Ясно, что пакет с библиотекой должен быть установлен до установки первой программы, которая использует эту библиотеку, иначе программа просто не будет работать. Чтобы пользователь случайно не установил пакет с программой раньше пакета с библиотекой (ведь пользователь может и не подозревать, что программа требует какую-то библиотеку, которая не установлена на его компьютере), в пакет помещается специальная инструкция, в которой системе говорится, что для правильной работы данной программы нужен определенный пакет. Это называется зависимостью пакетов. При установке пакета проверяются его зависимости — если они не удовлетворены (пакет с библиотекой не установлен), пакет установлен не будет.
Зависимости могут быть и обратного характера, т. е. требовать не установить, а удалить определенный пакет. Это случается, когда одна программа конфликтует с другой, и пользователю нужно выбрать, какую программу использовать. Например, в системе может быть установлен только один почтовый сервер. Но в Интернете можно найти несколько почтовых серверов, а вот установить только один — поскольку если установить оба, то они будут мешать друг другу работать.
Но пакет пакету рознь. Сейчас в мире Linux существуют два основных формата пакетов: RPM и DEB. RPM-пакеты устанавливаются в системах, совместимых с дистрибутивами типа Red Hat. Ubuntu к числу таких систем не относится. Поэтому нас интересует только второй формат пакетов. Впрочем, если вы не можете найти DEB-пакет с нужной вам программой, имеется возможность преобразовать RPM-пакет в DEB-пакет и попытаться его установить (см. разд. 9.6).
9.1.2. Архивы
В архиве программы распространяются редко, но иногда такое случается. Может быть, разработчикам программы было лень собирать пакет, может, была и какая-нибудь другая причина. Но в большинстве случаев в архивах распространяется исходный код программы, следовательно, после распаковки архива программу требуется откомпилировать. У вас, как у начинающего пользователя Ubuntu, такой необходимости не будет — практически все программное обеспечение для Ubuntu распространяется в виде DEB-пакетов, т. е. не нуждается в компиляции.
9.2. Программа dpkg: управление DEB-пакетами
Программа dpkg используется для установки, удаления и управления пакетами Debian/Ubuntu. Программа dpkg вызывается из командной строки. Формат вызова ее следующий:
dpkg [ключи] действие
Для запуска dpkg нужно обладать полномочиями root, получить которые можно с помощью команды sudo.
Предположим, у нас есть пакет package.deb. Для его установки откройте терминал (Приложения | Стандартные | Терминал) и введите команду:
sudo dpkg — i /путь/package.deb
Как видите, ничего сложного тут нет. Интересующимся поясню, что процесс установки пакета состоит из следующих шагов:
1. Извлечение управляющих файлов из пакета.
2. Если уже была установлена старая версия этого пакета, тогда из старого пакета запускается сценарий prerm, который подготавливает систему к удалению старой версии пакета. Другими словами, если нужно, то обновление пакета выполняется автоматически.
3. Выполняется сценарий preinst, если он есть в данном пакете.
4. Распаковываются остальные файлы из пакета. При этом если был установлен старый пакет, то его файлы не удаляются, а сохраняются в другом месте, чтобы их можно было восстановить, если что-то пойдет не так.
5. Если была установлена старая версия пакета, то выполняется сценарий postrm (действия после удаления) из старого пакета. Данный сценарий запускается сразу после выполнения сценария preinst нового пакета, поскольку старые файлы удаляются во время записи новых файлов.
6. Выполняется настройка пакета:
• распаковываются новые конфигурационные файлы, а старые сохраняются, если нужно будет их восстановить в случае ошибки во время установки нового пакета;
• запускается сценарий postinst, если он есть в данном пакете.
Удалить пакет тоже просто:
sudo dpkg — r package
Обратите внимание — при удалении пакета не нужно указывать путь к пакету и расширение имени файла.
Установка и удаление пакетов — это далеко не все действия, которые можно выполнить с помощью программы dpkg. Другие действия программы dpkg, которые могут быть интересны каждому пользователю Ubuntu, представлены в табл. 9.1.
Если вы хотите получить более подробную информацию о программе dpkg, причем на русском языке, введите команду:
man dpkg
9.3. Программа apt-get
Предположим, у вас есть пакет package.deb. При его установке обнаружилось, что он требует наличия пакета lib.deb, который у вас не установлен. Что ж, вы находите в Интернете отсутствующий пакет, устанавливаете его способом, описанным в разд. 9.2 (то есть применяя команду dpkg), а затем тем же способом устанавливаете пакет package.deb. Не очень удобно, правда?
Намного проще выполнить команду:
sudo apt-get install package
Эта программа сначала просматривает файл /etc/apt/sources.list — в нем перечислены источники (репозитории) DEB-пакетов (в качестве источника обычно выступает сервер в Интернете). Программа находит там указанный пакет, читает служебную информацию о нем, затем разрешает зависимости (т. е. устанавливает все необходимые для работы программы пакеты) и, наконец, устанавливает нужный нам пакет.
9.3.1. Файл /etc/apt/sources.list и репозитории пакетов
Откройте файл /etc/apt/sources.list (рис. 9.2):
gksudo gedit /etc/apt/sources.list
Найдите и раскомментируйте следующую строку:
deb http://ru.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
Эта строка подключает репозиторий backports, содержащий много полезных программ.
Не все программы, содержащиеся в репозитории backports, бесплатны, и не все поддерживаются командой Ubuntu.
Также можно раскомментировать строку, подключающую репозиторий партнеров Canonical (компании-разработчика Ubuntu):
deb http://archive.canonical.com/ubuntu lucid partner
Разберемся теперь, какие программы содержатся в том или ином репозитории:
□ в репозитории main содержатся основные программы, они распространяются свободно и регулярно поддерживаются (обновляются);
□ в репозитории restricted содержатся программы, которые распространяются по несвободным лицензиям, а также имеют ограниченную поддержку;
□ репозиторий universe содержит программы с открытыми лицензиями, поддержка программ из этого репозитория не гарантируется, но вполне возможна — все зависит от разработчика программы;
□ в репозитории multiverse содержатся программы, которые распространяются несвободно и без всякой поддержки и гарантий;
□ репозиторий security содержит исправления пакетов из репозиториев main и restricted;
□ наконец, в репозитории backports содержатся неофициальные пакеты свежих версий программ, собранные из исходных текстов энтузиастами Ubuntu (а не разработчиками программ).
9.3.2. Графическая оболочка для редактирования файла /etc/apt/sources.list
Лично мне удобнее редактировать файл /etc/apt/sources.list вручную, но вам, возможно, будет удобнее пользоваться для этого графической оболочкой, так что было бы несправедливо, если бы я не рассказал вам о ней. Для запуска программы-оболочки выполните команду меню Параметры | Администрирование | Источники приложений (рис. 9.3).
Программа отобразит уже установленные источники пакетов. Для добавления нового источника нажмите кнопку Добавить и в открывшемся окне (рис. 9.4) введите строку, которую нужно внести в файл /etc/apt/sources.list. Где взять эту строку? Обычно на сайте источника пакетов имеется уже готовая строка, которую надо скопировать и вставить в поле Строка APT указанного окна.
Некоторые репозитории подключаются путем ввода команд. Пример такого подключения репозитория будет приведен в главе 11, когда мы будем подключать источник пакетов, содержащий все необходимое для воспроизведения звука и видео.
В большинстве случаев загрузка пакетов осуществляется с удаленного сервера — именно поэтому данная глава в книге следует после глав, посвященных настройке сети и Интернета. Теоретически, конечно, можно использовать дистрибутивный диск Ubuntu для установки программ, но программ там мало — только те, которые устанавливаются по умолчанию. Так что пакеты будут загружаться только из Интернета. И это хорошо, поскольку у вас всегда будут последние версии программ — репозитории, в отличие от прилагаемых к книге компакт-дисков, обновляются регулярно.
Перед выходом из программы рекомендую заглянуть на вкладку Обновления (рис. 9.5) и отключить режим Проверять обновления. Ежедневная проверка обновлений надоедает.
К тому же автоматическое обновление — это, конечно, дело хорошее, но если у вас Интернет ограничен (например, оплата по трафику или низкая скорость), лучше выключить этот параметр и обновлять систему вручную с использованием Менеджера обновлений (рис. 9.6), запустить который можно командой меню Система | Администрирование | Менеджер обновлений. Вот только будьте осторожны — прежде, чем нажимать кнопку Установить обновления, проверьте их размер. На рис. 9.6 показано, что размер доступных обновлений составляет 509,2 Мбайт. Лично мне не улыбается перспектива «тянуть» из Сети 509 Мбайт обновлений при размере самого дистрибутива Ubuntu в 695 Мбайт. С другой стороны, поскольку каждые полгода выходят новые версии Ubuntu, можно вообще не обновлять систему, а просто раз в полгода ее переустанавливать.
9.4. Центр приложений Ubuntu
Если работать с командной строкой вам не нравится, для установки и удаления программ, а также для просмотра информации о пакетах, можно использовать графическую оболочку. Для запуска графической программы управления пакетами выполните команду меню Приложения | Центр приложений Ubuntu (рис. 9.7). Выберите группу приложений и в открывшемся окне (рис. 9.8) щелкните на интересующем вас приложении.
Для просмотра сведений о программе нажмите кнопку Подробнее, а для ее установки — кнопку Установить. Если приложение уже установлено, то вместо кнопки Установить вы увидите кнопку Удалить, позволяющую удалить данное приложение.
Справа от названия приложения группами звездочек обозначена его популярность — чем больше звездочек, тем более популярна программа. Почему на рис. 9.8 программа Acrobat Reader 9 вовсе не популярна? Тому есть две возможные причины: либо она устанавливается из непопулярного и никому не известного источника пакетов, либо же все пользователи Linux используют программу evince, которая позволяет просматривать не только PDF-файлы, но и документы других типов, причем менее «тормозит», чем Acrobat Reader для Linux.
Не кажется ли вам, что в списке установленного по умолчанию программного обеспечения не хватает некоторых программ? Каких? Например, FTP-клиента, менеджера закачек файлов, HTML-редактора, «звонилки»? Все эти программы необходимы для работы в Интернете. Так что сразу после установки системы я рекомендую установить программы, перечисленные в табл. 9.2, — с ними вы сможете использовать Ubuntu более эффективно.
9.5. Synaptic — удобная замена apt-get
Описанный в передыдущем разделе Центр приложений Ubuntu подойдет лишь самым начинающим пользователям, а продвинутым захочется более гибкого инструмента для установки программ. Чтобы было так — выбрал пакет и нажал кнопку Установить. Самые подготовленные пользователи могут использовать в терминале программу aptitude (команда sudo aptitude), но она (рис. 9.9) не столь удобная по сравнению с другим инструментом — графическим менеджером пакетов Synaptic.
Установите соединение с Интернетом и выполните команду Система | Администрирование | Менеджер пакетов Synaptic (рис. 9.10).
Пусть мы хотим установить некий пакет. При этом мы даже точно не знаем, как он называется, — нам известна лишь часть его названия или то, что он связан с другим пакетом, например, с xine. В поле Быстрый поиск вводим то, что знаем о пакете, и нажимаем кнопку поиска рядом с этим полем. Программа отобразит список найденных пакетов (рис. 9.11).
Предположим, что мы нашли в полученном списке пакет gxine и хотим его установить. Щелкните по строке пакета правой кнопкой мыши и выберите команду Отметить для установки (рис. 9.12). Соответственно, если вы хотите удалить какой-то пакет, нужно выбрать команду Отметить для удаления.
Если для установки выбран пакет, который требует установки других неустановленных пакетов (так Synaptic разрешает зависимости), то программа выведет соответствующее предупреждение, а также отобразит список пакетов, которые нужно установить (рис. 9.13).
Если вы согласны установить все эти пакеты, нажмите кнопку Применить. В списке пакетов эти пакеты будут выделены зеленым цветом (рис. 9.14).
Для применения изменений, то есть для установки пакетов, отмеченных для установки, и для удаления пакетов, отмеченных для удаления, нажмите кнопку Применить на панели инструментов Synaptic (см. рис. 9.14). В открывшемся окне (рис. 9.15) будет показано, какой объем займут пакеты после установки (в нашем случае чуть больше 9 Мбайт) и какой объем понадобится скачать из Интернета (в нашем случае чуть больше 3 Мбайт). Согласны загрузить и установить пакеты? Тогда нажмите кнопку Применить.
Вы увидите окно, в котором отобразится процесс загрузки пакетов (мне его запечатлеть не удалось, поскольку 3 Мбайт загрузились так быстро, что окно закрылось до того, как я успел сделать снимок экрана). Следующим откроется окно установки и настройки пакетов (рис. 9.16).
Немного подождите, пока не увидите сообщение, что все изменения применены (рис. 9.17).
Как мы уже знаем, установка любой программы состоит из трех основных этапов: загрузки пакетов, их установки и настройки. Скачанные из Интернета пакеты помещаются в каталог /var/cache/apt/archives. Регулярно очищайте этот каталог — этим вы сэкономите немало места на диске. Если же у вас соединение с учетом трафика, тогда записывайте скачанные пакеты на CD/DVD. Когда понадобится переустановить Ubuntu, вы сможете установить все необходимые вам программы, не загружая их повторно из Интернета.
Удалить все DEB-пакеты из каталога /var/cache/apt/archives можно командой:
sudo rm /var/cache/apt/archives/*.deb.
9.6. Установка в Ubuntu RPM-пакетов
В начале этой главы я обещал рассказать, как установить в Ubuntu программы из не предназначенных для этой системы RPM-пакетов. Для этого можно попробовать преобразовать RPM-файл в формат DEB с помощью команды alien, а потом установить обычным порядком.
Сразу хочу заметить, что установка таких преобразованных пакетов крайне нежелательна, поскольку нет никакой гарантии, что установленная программа будет работать, но если другого выхода нет, попробовать можно.
Итак, выполните следующую команду:
sudo alien package_file.rpm
RPM-файл package_file.rpm будет в результате преобразован в DEB-файл package_file. deb.
Если система сообщит вам, что команда alien не найдена, тогда подключитесь к Интернету и установите ее с помощью команды:
sudo apt-get install alien
Удалить программу alien можно с помощью команды:
sudo apt-get remove alien