Как устанавливать deb-пакеты на iPhone, iPad или iPod Touch (джейлбрейк). Установка программ Установка deb через терминал

Обычно пакеты содержат болванки конфигурационных файлов, например, размещаемых в /etc. Очевидно, что если конфиг в пакете обновляется, пользователь потеряет свой отредактированный конфиг. Эта проблема легко решается использованием папок типа «config.d», содержимое которых включается в основной конфиг, заменяя собой повторяющиеся опции.
Файл «DEBIAN/conffiles» позволяет решить проблему иначе: он содержит список файлов конфигурации (по одному на строке). Если в текущей версии пакета один из этих файлов обновляется, то пользователь получает предупреждение о конфликте версий конфигов, и может выбрать: удалить, заменить, или сделать merge.
С этой ситуацией наверняка сталкивался каждый линуксоид, копавшийся в конфигах:) А ноги растут отсюда.
На каждой строке должен быть полный абсолютный путь до каждого конфига. Например:
/etc/supersh/init.conf
/etc/supersh/actions.conf
DEBIAN/dirs: список папок для создания
«Список абсолютных путей к папкам, которые требуются программе, но по каким-либо причинам не создаются.» - гласит официальная документация. На практике – здесь перечисляются все папки, так или иначе используемые программой: и где лежат бинарники, и которые используются программой.
По одной на строке. Например:
/var/log/supersh
/var/lib/supersh
Удобно использовать для создания нескольких пустых папок.
DEBIAN/menu: создание пунктов меню
Хитрый файл для создания пунктов меню. У меня он так и не заработал:) Складывается ощущение, что его содержимое используется либо в необычных оконных менеджерах, либо в каком-то консольном меню… или же использовалось ранее и было забыто:)
Пример:
?package(supersh):needs="text" section="Applications/Programming" title="Super Shell Script" command="/usr/bin/super.sh"
TODO: узнать зачем нужно. Об этом написано в man5 menufile , честно говоря я не вникал:)
UPD: Правильный способ добавления пункта меню
Файл /DEBIAN/menu создаёт неизвестно что и непонятно где: элементы графического меню всё равно не создаются. Поэтому будем делать правильно:)
В /usr/share/applications видим кучку *.desktop файлов: это и есть пункты меню. Они представляют собой текстовые файлы с синтаксисом наподобие ini-файла. Открываем, учимся, делаем так же и кладём получившийся *.desktop файл в usr/share/applications/ . Иконка для него должна лежать в usr/share/pixmaps .
После этого в postinst скрипт нужно добавить выполнение команды обновления меню update-menus:
if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ] ; then
update-menus
fi

Работа со скриптами установки пакета будет рассмотрена далее.
Спасибо Condorious за наводку:)

DEBIAN/md5sums: контрольные суммы файлов
Используется для проверки целостности пакета. Важный файл.
Заполняется так (cwd=корень пакета):
$ md5deep -r usr > DEBIAN/md5sums
DEBIAN/watch: мониторинг сайта, откуда была скачана прога
Функция полезна, если Вы мэйнтейните от нескольких десятков пакетов, и уследить за всеми обновлениями сложно.
Файл содержит инструкции для программ uscan и uupdate. Используя эту возможность, можно следить за сайтом, откуда были получены исходники пакета, и обеспечивать контроль качества дистрибутива в целом.
Пример:
# Site Directory Pattern Version Script
ftp.obsession.se /gentoo gentoo-(.*)\.tar\.gz debian uupdate

И ещё пример для uscan(1):
version=3
madwimax.googlecode.com/files/madwimax-(.*)\.tar\.gz

DEBIAN/(preinst|postinst|prerm|postrm): скрипты установки
Всего можно создать до четырёх скриптов в одном пакете:

Обратите внимание, что ошибки, возникающие в этих скриптах никак не логируются : ничего интереснее кода возврата скрипта нигде не сохраняется, и логирование необходимо делать вручную! Пользователи одного моего пакета терпели неудачу при установке на Linux Mint, и не было даже возможности попросить у них лог ошибок (которого нету) чтобы выдебагать причину:)
Рекомендую использовать в начале каждого скрипта следующую болванку: она будет сохранять в syslog все возникающие ошибки.
#!/bin/bash
set -e # fail on any error
set -u # treat unset variables as errors

# ======[ Trap Errors ]======#
set -E # let shell functions inherit ERR trap

# Trap non-normal exit signals:
# 1/HUP, 2/INT, 3/QUIT, 15/TERM, ERR
trap err_handler 1 2 3 15 ERR
function err_handler {
local exit_status=${1:-$?}
logger -s -p "syslog.err" -t "ootync.deb" "supersh.deb script "$0" error code $exit_status (line $BASH_LINENO: "$BASH_COMMAND")"
exit $exit_status
}

Ваш код установочного скрипта...

WARNING: болванка пока не тестировалась широко, проверьте лишний раз! На невозможность отладки наткнулся совсем недавно:)

DEBIAN/templates: шаблоны для диалогов
Как уже было сказано, в скрипте DEBIAN/config можно задавать пользователю вопросы: ввести строку, выбрать один из вариантов, поставить галочку,… Этим занимается «библиотека» bash функций debhelper пакета debconf, умеющая кроме этого ещё массу полезных вещей. Здесь их не рассматриваю:)
Файл DEBIAN/templates содержит данные, используемые при выводе диалоговых окон (GUI или ncurses). Файл содержит блоки, разделённые пустой строкой. Каждый блок определяет ресурсы, используемые в одном конкретном диалоговом окне.
Шапка для всех типов диалогов стандартная:
Template: supersh/template-name
Type: string
Default: Default-value
Description: Dialog-title
␣Dialog-text

Template - уникальный (в пределах одного пакета) идентификатор шаблона. Если в скрипте нужно вызвать определённый диалог - используется именно это имя.
Type - тип шаблона. Определены такие типы: string, password, boolean, select, multiselect, text, note, error.
Default-value - значение по умолчанию: пользователь может просто согласиться с ним.
Description - как и в контрольном файле, состоит из двух полей: короткое описание, и длинный текст. Первое - это заголовок «окна», второе - более развёрнутое описание того, что требуется от пользователя. Рекомендуется не использовать слов вроде «введите», а сразу суть: «Приветствие скрипта», «Точка монтирования»,…

Тип Описание шаблона
string Приглашение на ввод текстовой строки
password Приглашение на ввод пароля.
Для этого типа шаблона нет значения Default по понятным причинам:)
boolean Галочка:) Имеет строковое значение «true» или «false»
select Возможность выбора одного из нескольких вариантов.

Choices: yes, no, maybe
multiselect Возможность выбора нескольких вариантов галочками.
Варианты предлагаются в дополнительном атрибуте шаблона:
Choices: sex, drugs, rock-n-roll
text Выводит на экран текст: некоторая не очень важная информация
note Выводит на экран текст: важная информация
error Выводит на экран текст: очень важная информация, критическая.

Для шаблонов text, note, error также нет значения Default, так как они лишь отображают информацию:)
Поиграемся с следующим шаблоном:
Template: supersh/greeting
Type: string
Description: Welcome message
␣The message you wish the script to welcome you with.
Default: Greetings, my master!
Основы использования debconf и debhelper
Это лишь работоспособные наброски. В оригинале почитать о шаблонах и работе с ними можно здесь: man 7 debconf-devel:)
Чтобы использовать шаблоны в своём скрипте настройки DEBIAN/config, необходимо сначала подключить функции debhelper:
. /usr/share/debconf/confmodule . Также этот файл нужно подключить в скрипте postinst: иначе скрипт DEBIAN/config вообще не выполнится!
Эти функции доступны в пакете debconf, не забудьте включить его в зависимости!
Примитивный пример использования. Файл DEBIAN/config
#!/bin/bash -e

# Подключение команд debconf

Case "$1" in
configure|reconfigure)
# Запрос


# Обработка ответа

greeting="$RET"
echo "$greeting" > /etc/supersh/greeting.txt
;;
*)
echo "config called with unknown argument \`$1"" >&2
exit 1
;;
esac
# Запрос
db_input medium "supersh/greeting" || true # инициализация
db_go || true # вывод запроса на экран

# Обработка ответа
db_get "supersh/greeting" # Получение значения в переменную $RET
greeting="$RET"
echo "$greeting" > /etc/supersh/greeting.txt

Здесь уже кроется неприятная засада: обратите внимание, что функции db_input передаётся приоритет диалога medium. Для debconf можно установить минимальный приоритет: диалоги с приоритетом ниже которого не отображаются, а берётся значение по умолчанию (Default шаблона)! Чтобы этого ТОЧНО не случилось - используем приоритет critical:) Кроме того, при установке из GUI порог вывода вопросов выше, и многие из них не отображаются вообще.
Возможные приоритеты: low - всегда используется default, medium - дефаулт обычно вполне подходит, high - дефаулт нежелателен, critical - внимание пользователя жизненно важно.
|| true используется чтобы скрипт не помер из-за ключика "-e" переданного bash.
В этом скрипте тоже рекомендуется использовать ту болванку для отлова ошибок, иначе с распространяемым пакетом могут возникнуть проблемы при отладке:)
Все тонкости использования debconf (функции, способы, параметры, коды ошибок) описаны в достаточно многословном мане: man debconf-devel .

И последнее: при удалении пакета командой purge - debconf должен также вычистить из своей базы сведения о пакете. Например, он сохраняет выбор пользователя при запросах db_input.
Чтобы вычистить эти данные, нужно в postinst-скрипт добавить следующее:
if [ "$1" == "purge" ] && [ -e /usr/share/debconf/confmodule ] ; then
. /usr/share/debconf/confmodule
db_purge
fi

Собираем пакет! :)

Ура! Все нужные файлы созданы, лежат по нужным папочкам. Теперь пора собирать пакет:)
Первое, что нужно сделать - это рекурсивно выставить всем файлам в корне пакета пользователя и группу root:root (или другие, если потребуется). Это нужно затем, что файлы пакета упаковываются в tar.gz архив который сохраняет и права доступа к файлам, и владельца. Потому нужно выполнить:
$ sudo chown -R root:root .
Однако делать это не обязательно. Есть отличная команда fakeroot которая при создании архива подменит владельца файлос root-ом.
В нашем примере, скрипт должен иметь бит выполнимости.
Потом выходим на папку назад, чтоб было видно корневую папку пакета, и пакет создаётся лёгким пинком сам:
$ fakeroot dpkg-deb --build supersh
Созданный пакет необходимо переименовать, чтобы он соответствовал порядку именования *.deb пакетов: <имя пакета>_<версия>_<архитектура>.deb
$ mv supersh.deb supersh_1.0-1_all.deb
Всё, пакет готов!
Автоматическая проверка пакета
Существует утилита lintian, позволяющая проверить пакет и выявить типичные ошибки в его структуре. Делается это так:
$ lintian supersh_1.0-1_all.deb
Установка пакета
$ sudo dpkg -i supersh_1.0-1_all.deb

Создаём собственный репозиторий пакетов

Теперь у нас есть собственный пакет. Когда их будет несколько, и тем более - с зависимостями, окажется, что намного удобнее быстренько поднять собственный локальный микро-репозиторий, и включить его в список источников менеджера пакетов:) Здесь я опишу быстрый HowTo «как создать свой репозиторий». Идею будет легко развить, почитывая соответствующую документацию:)
Сперва установим помощника:
$ sudo apt-get install reprepro
Описание будущего репозитория
Центр репозитория - его описание. Главное в нём - список компонент репозитория. Мы создадим компоненты «soft» и «games».
Выберите папку для будущего репозитория. Все действия производятся из её корня.
Создаём файл conf/distributions следующего содержания:
Description: my local repository
Origin: Ubuntu
Suite: testing
AlsoAcceptFor: unstable experimental
Codename: karmic
Version: 5.0
Architectures: i386 amd64 source
Components: soft games
UDebComponents: soft games

В нашем деле создания простого репозитория все поля не играют принципиальной роли, и используются лишь для визуального определения «что есть что»:)

Создание репозитория
Репозиторий описан! Теперь сгенерируем болванку на основе описания. Команды выполняются в корне репозитория:
$ reprepro export
$ reprepro createsymlinks
И добавим готовый репозиторий в /etc/apt/sources.list:
deb file:///path/to/repo/ karmic soft games
Этот репозиторий можно также расшарить при помощи веб-сервера.
Управление пакетами в репозитории
В корень репозитория кладём *.deb файлы для добавления, и добавляем их в компоненту soft дистрибутива karmic:
reprepro -C soft includedeb karmic *.deb
теперь пакеты доступны из менеджера пакетов:)
Удаление пакетов:
reprepro -C soft remove karmic supersh

Финиш

В статье рассмотрены материалы по созданию deb пакетов. Акцент сделан на моментах, для которых в сети нет достаточно наглядного описания. Надеюсь, что моя попытка изложить просто и понятно не провалилась:)
Домашнее задание:)) - вполне неплохо документированные вещи, которые легко найти в man"ах и статьях:
  • Создание source пакетов, компилирующих исходники: на примере Zabbix об этом отлично рассказал хабраюзер

Все программы в таком дистрибутиве Linux, как Ubuntu, устанавливаются из специальных deb-пакетов. Именно такое расширение принято использовать. В различных ОС они могут отличаться, например, в Windows, всем нам знакомой, используются особые файлы.exe. Как правило, в системе Ubuntu для сборки программы из репозитория автоматически скачивается и начинается установка deb-пакетов. Но иногда приходится устанавливать программу вручную, например, если Интернета нет, или же установщики сильно большого размера (в частности игры).

Пользователи Windows наверняка успели привыкнуть к последнему способу. Т.е. просто скачать файл с нужным расширением, два раза кликнуть и следовать указаниям, нажимая кнопочку «Далее». В системе «Линукс» для такого метода есть свои отличия.

1) Зайти в Центр Приложений и попробовать отыскать там требуемую программу.

2) Если не удалось обнаружить в стандартном источнике, то можно зайти на официальный сайт разработчиков и посмотреть там их репозиторий для установки или ссылку на PPA.

3) В том случае, когда на сайте предлагают лишь установить deb-пакет, то его нужно скачивать и работать именно с ним далее.

4) Бывает и такое, что можно найти только исходные коды, в этом случае придется собирать программу самостоятельно.

Оптимальным решением является установка deb-пакетов из репозитория лишь по той причине, что в дальнейшем будет намного проще осуществлять обновление программы. Служба по организации обновлений в вашей системе будет находить самые последние версии в автоматическом режиме.

Стоит также отметить, что в официальных репозиториях программы надежнее, чем в источниках разработчиков, так как в последнем находятся более новые версии, хотя не такие стабильные.

Установка deb-файлов делится на 2 способа: в графическом режиме и терминале.

Установка в графическом режиме

Для начала необходимо найти в файловом менеджере нужный пакет, а затем дважды щелкнуть по нему. Далее на экран выступит графическая оболочка программы, и если в официальных источниках присутствует более старая программа, то пользователю об этом сообщат. Такое можно закрыть. После этого необходимо нажать «Установить пакет», после чего выступит запрос о вводе пароля администратора, т.к. любое подобное действие должно осуществляться только с его разрешения. Затем начнется процесс установки. По завершении этого можно закрыть все окна и переходить в саму программу из меню Ubuntu.

Установка из терминала

Чтобы установка deb-пакета была правильной, нужно в терминале перейти в соответствующую папку, содержащую нужный файл, и набрать команду: "sudo dpkg -i имя_пакета.deb".

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

Было представлено лишь самое необходимое и краткое описание установки. Существует очень много частных случаев, каждый из которых обладает массой своих тонкостей.

Установка новых программ - один из самых важных моментов при работе с вашей системой. Раньше мы уже рассматривали добавление PPA в систему и установку программ из исходников. Но даже в PPA есть далеко не все пакеты, а установка из исходников слишком сложна для новичков.

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

Ответ прост - на просторах интернета. Если это нужная вам программа, то вы уже знаете где взять для ее пакет. В случае с драйверами ситуация немного сложнее. Все программы и драйвера, которые находятся в официальных репозиториях Ubuntu вы можете найти на сайте launchpad.net, это очень удобно, если на машине, где они должны быть установлены нет интернета. Например, ищем linux-firmware и открываем ее страницу на Launchpad, внизу выбираем версию программы:

И осталось получить deb файл для нашей системы:

Если у вас есть другой компьютер с интернетом или вы планируете устанавливать программы потом, а сейчас нужно только скачать deb пакеты, то это можно сделать с помощью apt:

apt download имя_пакета

apt download имя_пакета $(apt-rdepends имя_пакета|grep -v "^ ")

Теперь у вас есть не только пакет, но и все его зависимости.

Установка deb пакетов Ubuntu

Установить Deb пакет Ubuntu не так уж сложно, для этого даже есть несколько утилит. Можно устанавливать как с помощью графического интерфейса, так и в терминале.

Самый простой способ установки - в графическом интерфейсе, с помощью центра приложений, с него и начнем. Откройте файловый менеджер в папке с пакетом:

Установка программ Ubuntu с помощью центра приложений мне не очень нравится, он обычно очень долго думает и не всегда правильно открывает программу, но можно воспользоваться другой графической утилитой - gdebi. Сначала ее нужно установить:

sudo apt-get install gdebi

Теперь кликаем правой кнопкой мыши по файлу, выбираем открыть с помощью и gdebi :

Установка deb из консоли Ubuntu выполняется не намного сложнее. Для этого используется утилита dpkg. Сначала переходим в папку куда был загружен deb пакет:

cd ~/Загрузки/

Затем устанавливаем:

sudo dpkg -i имя_пакета.deb

Для этой команды доступны символы сокращений, например, можно написать вот так, чтобы установить все deb пакеты из этой директории:

$ sudo dpkg -i *.deb

Программа не умеет разрешать зависимости, даже если есть доступ к сети, она только устанавливает пакет, поэтому для установки зависимостей после установки deb ubuntu выполните:

$ sudo apt-get -f install

Теперь, когда зависимости были загружены, вы можете запускать и использовать программу.

Это не единственный способ установки пакетов ubuntu через терминал, утилиту gdebi тоже можно запустить таким способом:

sudo gdebi имя_пакета.deb

Возможно, вы не знали, но apt тоже умеет устанавливать deb пакеты и даже более чем успешно разрешает зависимости. Только утилите нужно передать полный путь к файлу для установки. Если вы находитесь в папке с deb пакетом выполните:

sudo apt install ./имя_пакета.deb

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

Выводы

Вот и все. Теперь установка deb пакетов в Ubuntu не вызовет у вас проблем. Оказывается, есть несколько способов установки программ в ubuntu и все они имеют свои преимущества. Если у вас остались вопросы, спрашивайте в комментариях!

Сегодня вот задумался над тем что же делать если доступа в интернет не будет, а понадобится установить какую-либо программу. Ведь программы в Linux Ubuntu устанавливаются из интернет-репозиториев. Кстати это работает и в Kubuntu, Lubuntu. Остальные не проверял.
А как взять необходимые для установки deb-пакеты? Если на компьютере ещё нет интернета, хотя бы программу для подключения к интернету, например ту же программу wvdial. Чтобы можно было подключить например мой модем в консоли. Хоть я и разобрался . Но а вдруг понадобится.
Для того чтобы получить список интернет адресов где находятся наши deb-пакеты я использую программу apt-get , в виде команды apt-get --print-uris --yes здесь --print-uris возвращает URL адреса на экран. Для вывода данной команды права суперпользователя ненужны, так что sudo вводить Вам не понадобится.

apt-get --print-uris --yes install wvdial

Но чтобы отсеить результаты и оставить одни URL-адреса. Я использую возможности grep совместно с cut , для того чтобы отсеить результаты вывода программы. Вместо wvdial вы можете ввести ту программу которую хотите установить.

apt-get --print-uris --yes install wvdial | grep ^\" | cut -d\" -f2

Теперь давайте, сделаем вывод в файл который затем сможем успешно скормить программе для загрузки наших deb-пакетов. Мой запрос в терминале стал выглядеть вот так.

apt-get --print-uris --yes install wvdial | grep ^\" | cut -d\" -f2 > Загрузка.txt

Теперь для того чтобы скачать все deb-пакеты мне достаточно будет использовать программу wget , о ней я писал . Достаточно будет выполнить

это файл который создался при выполнении команды заданной выше. Можете написать полный путь к этому файлу если он не находится в той папке где Вы открыли терминал.

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

apt-get --print-uris --yes dist-upgrade | grep ^\" | cut -d\" -f2 > "обновления дистрибутива"

wget -i "обновления дистрибутива"


При скачивании большого количества файлов Вам может понадобится выбрать папку в которую будут закачиваться файлы и команда станет вот такого вида

wget --directory-prefix=/путь/куда/скачиваем/файлы -i Загрузка.txt


wget --directory-prefix=/путь/куда/скачиваем/файлы -i "обновления дистрибутива"


Ну вот теперь остаётся лишь перенести скачанные deb-пакеты на компьютер без интернета и установить их. В моём случае я скачивал программу wvdial , а он в зависимостях вытянул четыре deb-пакета. Берём эти пакеты флешкой переносим на компьютер для которого скачивал файлы, и устанавливаем их при помощи команды.

Переходим в каталог со скачанными и перенесёнными deb-пакетами

cd /путь/к/ нашим/deb-пакетам


И устанавливаем наши пакеты.

sudo dpkg -i *deb


Вот по сути дела и все, программа wvdial установлена. Подобным образом можно выкачать совершенно любую программу в Linux Ubuntu, Kubuntu, Lubuntu для offline-установки. Может и в других дистрибутивах не знаю пробовал только эти.

Вы давно установили операционную систему Ubuntu, настроили ее “под себя”, а самого главного все равно нет. Оно и понятно: для обеспечения должной функциональности не хватает самых необходимых программ, которые в Windows мы усердно искали, скачивали и устанавливали. Что и будем продолжать делать –- но уже в среде Linux.

Один из главных вопросов, который всегда вызывает стойкое непонимание со стороны “переходящих” линуксоидов (и убунтологов) – это установка программного обеспечения (ПО) под Ubuntu. Linux имеет своеобразную структуру системных файлов, отличающуюся от “dll-помойки”, как ее называют, Windows. Такое понятие, как инсталляция любой программы пару кликами, здесь не то чтобы отсутствует, но встречается достаточно редко (об этом читайте чуть ниже).

Deb-пакеты

Сейчас – подробнее о системе Ubuntu. По идее, все программы должны устанавливаться из т.н. исходников (sources) - файлов на языке C++, предназначенных для компиляции. Однако совсем не зря в свое время было разработано несколько так называемых пакетных систем. В некоторых операционных системах Linux распространена RPM (Red Hat Package Manager)-система, в других, таких как Debian и основанных на ней -– DEB (собственно, от слова “Debian”) и т. д…

Примечание. Системы DEB и RPM по своему замыслу частично похожи, но друг с другом все-таки несовместимы. Впрочем, существует специальная программа alien, которая преобразует пакеты из одного формата в формат с различной степенью “везения”

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

Что касается зависимостей, они условно делятся на обязательные и необязательные (исходя из названия, последние просто рекомендованы к скачиванию). Большинство пакетов взаимосвязаны с другими библиотеками, без наличия которых они попросту не устанавливаются. В чем плюс такого “пакетозависимого” подхода? Сами по себе deb-файлы занимают сравнительно не много места (обычно десятки-сотни килобайт) за счет того, что содержат только самые необходимые компоненты. По мере того, как вы устанавливаете все новые и новые пакеты, список зависимостей значительно возрастает. Впоследствии, при удалении какой-либо программы удаляются и все зависимые пакеты (если они уже не зависят от других пакетов). Вот такая своеобразная “альтернатива” dll-библиотекам Windows.

Репозитории

Еще одно понятие, с которым вам придется иметь дело – репозиторий, хранилище программного обеспечения. Мы не будем вдаваться в архитектуру репозитория, отметим только, что обычно он состоит из четырех категорий: Main, Restricted, Universe и Multiverse. Входящие в разделы universe и multiverse пакеты доступны только через Интернет и не могут быть включены в начальный дистрибутив Ubuntu. Именно поэтому, по причине отказа Ubuntu от несвободного ПО, у линуксоидов и возникают проблемы (временные) с кодеками, воспроизведением DVD, шрифтами и прочим.

Есть два источника установки пакетов – локальный и интернет-репозиторий, хотя следовало бы употребить слово ”репозиторий” во множественном числе, так как их - несметное количество.

Локальным источником является жесткий диск или сменный носитель в виде CD или DVD. Диски с репозиториями можно приобрести в интернет-магазинах, в том числе и белорусских. Наиболее полная версии для Ubuntu –- на 4 и более DVD, хотя полный официальный репозиторий занимает куда больше гигабайт, чем все эти диски, вместе взятые. Доступно русское зеркало , а также множество других источников для скачивания пакетов. По адресу http://packages.ubuntu.com/ вы всегда можете найти и скачать необходимый deb в достаточно наглядной форме (с отображением всех строгих/нестрогих зависимостей). Хотя заниматься этим собственноручно вам крайне не рекомендуем, поскольку для того, чтобы удовлетворить зависимости, придется скачать далеко не один пакет. В общем, занятие крайне утомительное. Поспрашивайте на форумах, у знакомых диски с репозиториями -– и вся проблема решится очень быстро.

Сейчас вкратце о принципе наименования пакетных файлов. Пример: имя conky_1.4.5-0ubuntu1_i386.deb. Как нетрудно догадаться, conky – это название программы, 1.4.5 – ее версия, ubuntu – поддерживаемая ОС, i386 – архитектура процессора - описание архитектур). Если в наименовании встретите суффикс.src, знайте, что вы имеете дело с пакетом, включающим исходные файлы. Суффикс am64 означает, что пакет предназначен для установки именно на 64-битном процессоре. Поскольку 32- и 64-битое ПО несовместимы, скачивать “чужие” пакеты бессмысленно. В том случае, если версия или архитектура программы не совместимы с системой, менеджер пакетов прекратит установку. Если у вас 32-битная версия Ubuntu, будьте внимательны, заказывайте диски с репозиториями именно под 32-разрядную систему.

Рассмотрим ситуацию: вы купили несколько DVD-репозиториев. В таком случае, согласно инструкции на этикетке диска, нужно занести репозитории в общую “базу”. Для этого в консоли для каждого диска нужно выполнить команду apt-cdrom add , и тогда диски автоматически будут добавлены в список репозиториев.

Этот список хранится по адресу /etc/apt/sources.list . Обновить его можно вручную: sudo gedit /etc/apt/sources.list или через пакетный менеджер Synaptic.

А еще в меню Gnome есть соответствующий пункт: Система? Администрирование? Источники приложений. Для добавления источника пройдите по этому адресу и выберите “ПО сторонних производителей”. Затем нажмите кнопку “Добавить” и введите строку APT, к примеру: deb http://ftp.debian.org sarge main . Теперь нажмите кнопку “Добавить источник” и закройте все окна. Вы можете устанавливать пакеты разными способами, но созданный вами список репозиториев будет доступен из интерфейса всех программ.

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

Если делать update вручную, то sudo apt-get upgrade –- аналогичная команда в консоли. При установке менеджер выдает предупреждение о занимаемом дисковом пространстве со всеми зависимостями и, по вашему желанию, удовлетворяет их. Скачанные пакеты после установки не удаляются, а бережно хранятся в кэше: /var/cache/apt/archives/ , откуда вы можете их скопировать в другое место. Недокачанные (например, в случае обрыва связи) пакеты хранятся в директории /var/cache/apt/archives/partial/ . После восстановления связи обновление продолжится с того же самого места как ни в чем не бывало.

Установка deb-пакетов

Самый простой способ установки приложений – через меню Приложения? Установка/Удаление . Программы рассортированы по категориям, имеют описание (правда, с переводам дела обстоят не лучшим образом), рейтинг -– все это облегчает выбор среди внушительной подборки программ. Отметьте галочками нужные пакеты (или уберите, если пакет нужно удалить) и нажмите “Ok”. Ничего сложного!

Если работать через консоль, то аналогичными командами будут: apt-get install <название пакета> (установка), apt-get remove <имя пакета> (удаление).

Установленные программы должны появиться в списке Главного меню в назначенном ей разделе.

Примечание. Существует еще один способ установки программ -– по запуску специального скрипта (расширение может варьироваться -– .sh, .py и др.). В таком виде часто распространяются драйвера и пакеты all-in-one (“все в одном”). По ходу инсталляции скрипт задает вопросы, на которые пользователю обязательно нужно ответить. Для запуска исполняемого файла введите ./имя файла.расширение

Если двух упомянутых способов установки вам покажется недостаточно –- ничего страшного. Помимо вышеупомянутых aptitude , есть и другие менеджеры пакетов. Если рассматривать программы с графическим интерфейсом, то, прежде всего, следует отметить следующие три программы.

Synaptic (Synaptic Package Manager)

Synaptic - программа для управления как rpm-, так и и deb-пакетами, графическая оболочка apt. Она интегрирована в Ubuntu, поэтому проблем с поиском и установкой не будет. Данный менеджер установит пакеты, расположенные на жестком диске, через интернет, на сменном носителе. Если брать в сравнение аналогичные программы (YaST2, KPaсkage и другие), удобство использования Synaptic на порядок выше. Под этими словами подразумеваются: продуманные настройки, интерфейс и система меток. А еще -– относительно стабильная и быстрая работа. Это давно проверено на практике: когда количество всевозможных программ, библиотек исчисляется тысячами, подобные программы больше всего в почете.

Automatix

Более дружественная, чем стандартные “Установка/Удаление”, программа. Она предназначена для автоматизированной установки наиболее востребованных приложений, Ubuntu. Как итог - добавление возможностей, с которыми ОС изначально “не в ладу”. Это:

Мультимедиа-кодеки
- монтирование, чтение и запись ФС NTFS (актуально для Ubuntu 7.04 и ниже)
- возможность просмотра DVD
- дополнительные скрипты
- скрипты к Nautilus и другое.

С помощью программы Aptoncd можно создать ISO-образ со всеми установленными пакетами и записать его на CD/DVD диск. Затем этот репозиторий без проблем добавляется в общий список deb-источников. О способах, как это сделать, мы расскажем уже в следующем выпуске, в практической части этой главы.

Врезка. Полезные консольные команды

Распаковка:

архив gz/gz2 –- gunzip / gunzip2 <файл>
архив bz/bz2 –- bunzip / bunzip2 <файл>
архив tar –- tar xvf <файл>

Работа с пакетами:

apt-get install –reinstall <программа> - установка пакета с перезаписью файлов
apt-get install <программа 1> <программа 2> <программа n> - установка сразу нескольких программ
apt-get –d install <программа> - запуск программы без ее распаковки
apt-get update – обновление списков пакетов
sudo alien <пакет.rpm> –- преобразование пакета rpm в deb