Управление пакетами в Ubuntu
22.04.2011
—
Новости Hi-Tech
|
Нечаянная ошибка в моей заметке Первое, с чем сталкивается пользователь, впервые опробовав линуксную ОС после Windows, - необычность понятия "пакет". Однако ничего заумного в нём нет. Пакетная система работы с линуксным софтом порождена философией UNIX "делай только одну вещь". Грубо говоря, пакет - это архив, который содержит версию формата пакета, сжатую заархивированную управляющую информацию и сжатые заархивированные устанавливаемые файлы. Короче, архив в архиве. При этом пакет содержит только оригинальные файлы, а всякого рода часто встречающиеся общеупотребительные файлы включать в пакет не принято. Поэтому управляющая информация может включать в себя ссылки на другие пакеты, необходимые для работы, т.е. оговаривать так называемые "зависимости". Пример пакета: opera_11.01.1190_i386.deb. Здесь opera - наименование пакета, 11.01.1190 - его версия, i386 - признак, что пакет предназначен для компьютера c чипсетом архитектуры Intel не ниже 386, deb указывает, что пакет предназначен для ОС, совместимых с Debian GNU/Linux. Нередко интересуются, будет ли пакет, помеченный как i586 или i686, работать на конкретном интеловском компьютере. Узнайте класс своего процессора командой cat /proc/cpuinfo и обратите внимание на значение параметра cpu family. Это число должно быть больше или равно первой цифре, следующей за символом i в обозначении пакета. С процессорами AMD проще: пакеты помечаются как AMD64 или AMD32, в зависимости от разрядности процессора. И ещё: не устанавливайте 64-разрядные пакеты, если ваша ОС 32-разрядная: могут быть проблемы. Впрочем, при установке пакетов из репозиториев этого не должно случиться. Вот, собственно, и всё, что на первых порах надо знать о понятии "пакет". ОС Ubuntu, потомок ОС Debian, обеспечивает пользователю несколько инструментов для управления пакетами. Основу составляют утилита apt (акроним от "Advanced package tool") и низкоуровневая утилита dpkg (акроним от "Debian package tool"). Кроме того, Ubuntu предлагает и другие интерфейсы к системе пакетов Debian GNU/Linux. К ним относятся в порядке возрастания уровня: псевдографический aptitude, графический Synaptic и, наконец, "Центр Приложений Ubuntu", который, в отличие от остальных, работает только с приложениями. Не буду рассматривать графические интерфейсы, их освоить легко, но возможности "не те". Также оставлю в покое aptitude как производное от apt. Порою встречающиеся утверждения, что aptitude лучше удовлетворяет зависимости, чем apt, считаю просто недоразумениями. Кроме кого, начиная с версии Ubuntu 10.10, aptitude удалён из дистрибутива. По моему убеждению, чтобы быть уверенным пользователем Ubuntu, осваивать следует apt и dpkg. Остальное приходит само собой.
Возможности этого семейства утилит огромны. Как "Вести" уже сообщали (№№ sudo apt-get install virtualbox-4.0 сначала определит, не установлена ли другая версия virtualbox, если да, то с санкции пользователя "снесёт" её и установит именно virtualbox-4.0. А вот команда sudo apt-get install virtualbox просто попытается установить из репозиториев самую свежую версию этой замечательной виртуальной машины. При установке пакеты сначала попадают в кэш /var/cache/apt/archives, затем устанавливаются куда надо. Если очень интересно, куда, то это всегда можно узнать командой whereis, например, whereis virtualbox. По мере взросления вашей сборки Ubuntu в кэше накапливается много нужного и ненужного. Последнее занимает место и может быть удалено, о чём чуть позже. Нередко требуется удалить установленный пакет - ну, погорячились, установили не то, что надо, или же новый пакет в управляющей информации не содержит сценария удаления своего предшественника. Команда sudo apt-get remove virtualbox "снесёт" установленную версию пакета virtualbox, однако сохранит все конфигурационные файлы с тем, чтобы ими могла воспользоваться другая версия пакета. При этом сам пакет останется в кэше, и при необходимости его можно будет установить оттуда повторно. А вот команда sudo apt-get --purge remove virtualbox "снесёт" и конфигурационные файлы, и сам пакет в кэше. Многие пакеты ОС Ubuntu обновляет в порядке штатной процедуры обновления, но только те, которые поддерживает компания Canonical, а также те, для которых обновления предоставляются сообществом Ubuntu. Остальные пакеты в пределах мажора версии можно обновлять самостоятельно. Например, команда sudo apt-get upgrade opera -u обновит ваш ранее установленный браузер Opera, повысив минор версии, если, конечно, таковая существует в репозитории, прописанном в /etc/apt/sources.list. При обновлении приложения строится дерево зависимостей, проверяются обновления для них и нередко обновляется не основной пакет, а только пакеты, от которых он зависит. Необязательная опция -u позволяет видеть, что именно обновляется. Кстати, теперь для добавления репозиториев нет необходимости редактировать файл /etc/apt/sources.list, достаточно воспользоваться командой add-apt-repository _источник_. Например, можно добавить источник deb-пакетов от Google вот такой командой: sudo add-apt-repository "deb http://dl.google.com/linux/deb/ stable main" После добавления нового источника пакетов никогда не забывайте проиндексировать список источников командой sudo apt-get update Если вы не знаете или забыли, какая версия пакета установлена и какие библиотеки он использует, то не стесняйтесь задать системе вопрос, например, командой apt-cache search _имя_пакета_, при этом мажор версии пакета, естественно, не указывается, например, apt-cache search virtualbox В ответ вы получите исчерпывающую информацию о пакетах, непосредственно касающихся вашего приложения, в данном случае виртуальной машины virtualbox. Теперь, зная версию пакета, вы можете определить все зависимости, которые он за собой тянет, командой sudo apt-cache depends virtualbox-4.0 Это очень полезная команда, так как с её помощью можно получить рекомендации, какие пакеты следует доустановить для более полноценной работы приложения. Дело в том, что иногда не все зависимости указываются в основном пакете приложения; такие непрописанные зависимости называются вынесенными. Их можно, конечно, и проигнорировать, приложение будет работать, однако функциональность его останется неполной. Чтобы узнать, какие приложения установлены, необходимо воспользоваться командой sudo apt-cache search all При этом на экран будет выведен только список установленных приложений с краткими комментариями о них; зависимости, библиотеки и прочее выведены не будут. Иногда бывает нужным знать, какие ветви и файлы создала или затронула установка пакета. Для этой цели служит команда apt-file search _строка_, где _строка_ - это набор символов, последовательность которых встречается в полном пути. Правда, apt-file по умолчанию отсутствует, и эту утилиту сначала надо установить командой sudo apt-get install apt-file Имея в распоряжении apt-file, нетрудно найти директории, затронутые установкой конкретного приложения, например, virtualbox-4.0: sudo apt-file search virtualbox-4.0 Для очистки кэша от устаревших пакетов, которые больше не скачиваются и не нужны, имеется очень полезная команда sudo apt-get autoclean Вообще-то можно брутально очистить весь кэш от пакетов, если срочно требуется место на диске, на работоспособности системы это как будто не сказывается, но если вам потребуется переустановить какой-либо ранее установленный пакет, то придётся его заново скачивать. Делается такая чистка следующей командой, хотя я бы подобное не рекомендовал: sudo apt-get clean Если надо убедиться, всё ли в порядке с пакетами, установленными в системе, то это проверяют командой sudo apt-get check Если не получите никаких сообщений о неудовлетворённых зависимостях, то всё отлично. Правда, вынесенных зависимостей это не касается. Чтобы уладить проблемы с обнаруженными невынесенными зависимостями, просто введите sudo apt-get -f install Я перечислил apt-минимум, которым должен владеть пользователь Ubuntu, желающий свободно управлять пакетным хозяйством своей системы, пополняемым из репозиториев. Однако, помимо пакетов из репозиториев, имеется огромное количество и других deb-пакетов, которые разработчики предлагают на своих сайтах. Чтобы воспользоваться этим богатством, нужно спуститься уровнем ниже.
Об этой утилите "Вести" тоже рассказывали (№ sudo dpkg -i /путь/пакет.deb и выявлять зависимости командой: dpkg --info /путь/пакет.deb Неудобно! Проще скачанный пакет переместить из директория загрузок в вышеупомянутый кэш и установить его оттуда утилитой apt-get install, не указывая путь. Тем не менее, dpkg - весьма достойная утилита. Вот как без aptitude проще всего узнать, какие пакеты установлены в системе? Нет проблем: dpkg -l С помощью dpkg можно легко узнать, какая именно версия пакета установлена в системе и установлен ли пакет вообще; например, команда dpkg -l 'virtualbox*' выводит установленную версию виртуальной машины virtualbox, предваряя её суффиксом ii, но также выводит и старую версию пакета, если он не удалялся из кэша, предваряя его имя суффиксом rc. Более подробную информацию о версиях пакетов, по сравнению с предыдущей командой, можно получить, привлекая grep: dpkg -l | grep 'virtualbox*' Чтобы определить ширину колонок при выводе информации о пакетах, укажите её явно, например: COLUMNS-150 dpkg -l 'virtualbox*' Утилита dpkg также при желании позволяет посмотреть содержимое пакета: dpkg -content /путь/пакет.deb
Зачем-то компания Canonical убрала из дистрибутива Ubuntu столь нужную утилиту gdebi, которая позволяла быстро установить скачанный deb-пакет двойным кликом по нему. Сейчас мы это исправим командой sudo apt-get install gdebi после чего свяжем любой deb-пакет с установщиком gdebi. Для этого щелкаем правой кнопкой мыши по любому deb-файлу в кэше, выбираем "Свойства" и в них помечаем, что пакет нужно открывать с помощью gdebi. Далее всё пойдёт, как в более ранних версиях Ubuntu. Разумеется, управлять пакетами можно и мышью, воспользовавшись "Синаптиком" или "Центром Приложений". Но если вы желаете содержать систему в чистоте - не поленитесь, изучите, как можно управлять пакетами через терминал. Это необходимо, если хотите стать Повелителем Системы. Михаил ГУРЧИК, Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
ОС Ubuntu, потомок ОС Debian, обеспечивает пользователю несколько инструментов для управления пакетами...
|
|