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

$ zypper lr
# | Псевдоним                 | Имя                                | Включён | Обновление
--+---------------------------+------------------------------------+---------+-----------
1 | openSUSE-12.3-1.14        | openSUSE-12.3-1.14                 | Да      | Да
2 | repo-debug                | openSUSE-12.3-Debug                | Нет     | Да
3 | repo-debug-update         | openSUSE-12.3-Update-Debug         | Нет     | Да
4 | repo-debug-update-non-oss | openSUSE-12.3-Update-Debug-Non-Oss | Нет     | Да
5 | repo-non-oss              | openSUSE-12.3-Non-Oss              | Да      | Да
6 | repo-oss                  | openSUSE-12.3-Oss                  | Да      | Да
7 | repo-source               | openSUSE-12.3-Source               | Нет     | Да
8 | repo-update               | openSUSE-12.3-Update               | Да      | Да
9 | repo-update-non-oss       | openSUSE-12.3-Update-Non-Oss       | Да      | Да

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

Так что подключение репозиториев — не роскошь, а жизненная необходимость. Она осуществляется с помощью субкоманды ar, обычно используемой в составе следующей директивы:

# zypper ar -n имя URI псевдоним

Здесь в качестве URI (Uniform Resource Identifier — унифицированный идентификатор ресурса) для удалённого репозитория будет выступать его URL, прочие же варианты (оптический диск, файл его образа, раздел на данной машине или в локальной сети, и так далее) предлагаю изучить самостоятельно тем, кому нужно.

Имя и тем более псевдоним более-менее произвольны. В качестве имени обычно используется данное майнтайнером, псевдоним конструируется из него некоторым обрезанием. Если в приведённой выше директиве псевдоним опустить — он будет повторять имя. Да, внутренняя опция -n как раз и предписывает добавить имя репозитория. И, между нами говоря, без неё можно и обойтись, но это считается не кошерно.

Из прочих внутренних опций команды ar важна опция -c. Она проверяет указанный в директиве URL на вшивость — то есть на доступность и, главное, отсутствие в нём банальных ошибок. Поскольку последние исключить нельзя — лучше её указать, хотя проверку адреса можно выполнить и позднее.

Внутренняя опция -d добавляет репозиторий в систему в отключённом состоянии. Это имеет смысл, например, когда требуемый пакет имеется более чем в одном репозитории (а такие случаи не редки — один из них описан здесь). И тогда она будет полезна — на предмет последующего сравнения и выбора наиболее подходящей сборки.

Наконец, особо жадным придётся по вкусу опция -k — благодаря ей все скачанные при установке rpm-пакеты будут кэшироваться на локальной машине в каталоге /var/cache/zypp/packages/. Ввиду интенсивности обновления пакетов, поддерживаемых сообществом, большого смысла это не имеет, и потому по умолчанию не применяется. Но в условиях плохого коннекта может быть полезным.

Да, чуть не забыл: в некоторых случаях может потребоваться опция -G, которая отключает проверку GPG — по умолчанию она включена (и это, товарищи, правильно), но иногда может помешать установке позарез нужного пакета.

Всё это очень благородно — скажет читатель, — но откуда берутся URL’ы репозиториев? Эта задача решается не средствами zypper‘а и потому будет рассмотрена в другой раз и в другом месте. Пока скажу только, что до недавнего времени задача эта была не вполне тривиальной. Ныне же существует очень эффективная система поиска, вкратце описанная здесь. По секрету добавлю, что она делает почти не востребованной директиву zypper ar вообще. Однако знакомство с ней необходимо для общего образования.


К содержанию | Шпаргалки по zypper’у