Алексей Федорчук
Как говорилось в предыдущем очерке, утилиты системы 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, о чём говорится в соответствующей интермедии.