Void Linux. Управление пакетами. Система XBPS: работа с репозиториями

Алексей Федорчук

Как говорилось в предыдущем очерке, утилиты системы XBPS будут рассмотрены здесь не последовательно (это можно увидеть в их официальных man-страницах), а применительно к конкретным задачам. Из которых первейшая — это знакомство с доступными репозиториями и, при необходимости, их подключение. Для чего потребуются команды xbps-query и xbps-install.

Первое действие, которое следует выполнить — это синхронизация локальных сведений о репозитории с таковыми на сервере. Для чего используется опция -S команды xbps-install. Запомним эту опцию и доведём её использование до уровня рефлексов собаки Павлова. Дистрибутив Void разрабатывается по модели «скользящих релизов» (rolling release), обновления того или иного масштаба в нём происходят буквально каждый день (и это не преувеличение), и потому синхронизация необходима при любых реальных манипуляциях с пакетами. По той же причине её резонно совместить с обновлением системы, для чего предназначена опция -u. И в итоге команда приобретает такой вид:

# xbps-install -Su

Разумеется, для этого необходимы права администратора, полученные одной из двух предназначенных для этого команд — su или sudo, что и символизируется в примере видом приглашения командной строки — #. В дальнейшем это не будет оговариваться каждый раз, а примерах команд, для которых достаточно прав обычного пользователя, будет использоваться приглашение вида $.

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

Так или иначе, но теперь можно смотреть, откуда же у нас всё обновлялось. Для чего делается запрос с использованием опции -L:

$ xbps-query -L
 5816 http://repo.voidlinux.eu/current (RSA signed)

Описание главной ветки официального репозитория содержится в файле /usr/share/xbps.d/00-repository-main.conf и представлено одной строкой:

repository=http://repo.voidlinux.eu/current

Точно в таком формате будут описываться и любые дополнительные репозитории. Или — зеркала репозитория главного, о которых говорилось в прошлом очерке. Для выявления самого быстрого из которых можно пропинговать их все последовательно, начиная с умолчального:

$ ping -c 4 repo.voidlinux.eu 
PING repo.voidlinux.eu (148.251.136.24) 56(84) bytes of data.
64 bytes from voidlinux.eu (148.251.136.24): icmp_seq=1 ttl=53 time=51.2 ms
...
--- repo.voidlinux.eu ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 50.992/51.097/51.264/0.248 ms

Затем — его германский двойник:

$ ping -c 4 repo2.voidlinux.eu
PING repo2.voidlinux.eu (5.9.137.243) 56(84) bytes of data.
64 bytes from nerdclub.org (5.9.137.243): icmp_seq=1 ttl=53 time=47.7 ms
...
--- repo2.voidlinux.eu ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 47.597/47.669/47.735/0.059 ms

Калифорнийский собрат:

$ ping -c 4 repo3.voidlinux.eu
PING repo.voidlinux.us (69.197.177.66) 56(84) bytes of data.
64 bytes from 69.197.177.66: icmp_seq=1 ttl=46 time=155 ms
...
--- repo.voidlinux.us ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 153.966/154.513/155.072/0.726 ms

И, наконец, «парижанин»:

$ ping -c 4 repo4.voidlinux.eu 
PING paris.voidlinux.net (188.165.249.179) 56(84) bytes of data.
64 bytes from ns348059.ip-188-165-249.eu (188.165.249.179): icmp_seq=1 ttl=55 time=51.7 ms
...
--- paris.voidlinux.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 51.750/59.910/65.396/5.147 ms

Можно видеть, что в моих условиях (подчёркиваю — в моих, в другом месте результаты могут быть иными) лучше всего показывается себя repo3.voidlinux.eu, правда, выигрывая у умолчального репозитория лишь по результату фотофиниша, парижское зеркало немного, но заметно отстаёт от них обоих, а скорость доступа на «заокранный запад» медленней примерно в три раза (что и не удивительно: чай, до Америки путь не близкий).

Отредактировав файл /usr/share/xbps.d/00-repository-main.conf, можно проверить результат:

$ xbps-query
 5816 http://repo2.voidlinux.eu/current (RSA signed)

А затем нужно обязательно повторить процедуру синхронизации:

# xbps-install -Su

После чего можно (если нужно) заняться подключением дополнителных репозиториев. Это делается точно так же, как установка обычных пакетов, имена которых выявляются такой командой:

$ xbps-query -Rs void-repo
[-] void-repo-debug-7_1            Void Linux drop-in file for the debug repository
[-] void-repo-multilib-5_1         Void Linux drop-in file for the multilib repository
[-] void-repo-multilib-nonfree-5_1 Void Linux drop-in file for the multilib/nonfree repository
[-] void-repo-nonfree-7_1          Void Linux drop-in file for the nonfree repository

Здесь опция -R определяет, что запрос делается к удалённым репозиториям (а не к локальной машине), а опция указывает, что аргументом команды является шаблон имени пакета, а не точное его имя.

Далее следует команда установки, например, такая:

# xbps-install -S void-repo-nonfree-7_1

Результатом её будет появление в каталоге /usr/share/xbps.d/ файла 10-repository-nonfree.conf, содержимое которого также сводится к одной строке:

repository=http://repo.voidlinux.eu/current/nonfree

Аналогично можно поступить и с субрепозиторием void-repo-multilib-nonfree-5_1 — он жизненно необходим всем любителям Skype, о чём говорится в соответствующей интермедии.

Оглавление

Добавить комментарий