При установке пакетов в линукс на основе дистрибутива Debian (Ubuntu, Linux Mint и др.) пакеты загружаются из одного или нескольких репозиториев программного обеспечения apt. Репозиторий – это сетевой сервер или локальный каталог, содержащий пакеты deb и файлы метаданных.
Хотя в репозиториях по умолчанию доступны тысячи приложений, иногда Вам может потребоваться установить программное обеспечение из стороннего репозитория.
В этой заметке мы покажем Вам два способа добавления репозитория apt в системах на основе дистрибутива Debian. Первый способ заключается в использовании команды add-apt-repository, а второй – в ручном добавлении репозитория с помощью текстового редактора.
В Ubuntu (и всех других дистрибутивах Debian) репозитории программного обеспечения определены в файле /etc/apt/sources.list или в отдельных файлах в директории /etc/apt /sources.list.d/
Имена файлов репозитория внутри каталога /etc/apt/sources.list.d/ должны заканчиваться на .list
Общий синтаксис принимает следующий вид:
deb http://repo.tld/ubuntu distro component
Первая запись в строке определяет тип архива. Тип архива может быть либо deb, либо deb-src. Deb подразумевает, что репозиторий содержит deb-пакеты, в то время как deb-src подразумевает исходные пакеты.
Вторая запись – это URL репозитория.
Третья запись указывает кодовое имя дистрибутива, например beaver, xenial и так далее.
Последние записи – это компоненты или категории репозитория. Репозитории Ubuntu по-умолчанию разделены на четыре компонента – main, restricted, universe и multiverse. Как правило, сторонние репозитории имеют только одну категорию.
Большинство репозиториев предоставляют открытый ключ для аутентификации загруженных пакетов, который необходимо загрузить и импортировать.
Чтобы иметь возможность добавлять или удалять репозиторий, Вы должны войти в систему либо как пользователь с доступом sudo, либо как root.
1. Добавление через add-apt-repository
Сначала необходимо убедиться, что у Вас есть команда add-apt-repository. Если при ее выполнении видите: add-apt-repository command not found, значит ее нет, необходимо установить пакет software-properties-common.
$ sudo apt update && sudo apt install software-properties-common
Синтаксис добавления репозитория через add-apt-repository таков:
add-apt-repository [options] repository
Где repository – это репозиторий, который необходимо добавить в sources.list (например deb http://repo.tld/ubuntu distro component или PPA репозиторий в формате ppa:/).
Чтобы увидеть все возможности команды add-apt-repository выполните man add-apt-repository в терминале.
Добавление обычных репозиториев
Допустим, мы хотим установить MongoDB из оффициального репозитория.
Первое, что необходимо сделать – установить public key (публичный ключ):
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Добавим теперь репозиторий MongoDB:
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
А сейчас уже можно установить MongoDB:
$ sudo apt update && sudo apt install mongodb-org
Чтобы удалить репозиторий, используйте опцию –remove:
sudo add-apt-repository --remove 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Добавление PPA репозиториев
Personal Package Archives (PPA) это сервис, который позволяет пользователям загружать исходные пакеты Ubuntu, построенные и опубликованные с помощью Launchpad в качестве репозитория apt.
Когда Вы добавляете новый PPA репозиторий, команда add-apt-repository создает новый файл в директории /etc/apt/sources.list.d/
Для примера установим FFmpeg версии 4.x
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-4
Нажмем Enter когда нас попросят об этом.
Press [ENTER] to continue or Ctrl-c to cancel adding it.
Публичный ключ PPA автоматически скачается и зарегистрируется. Теперь можно установить необходимый пакет:
$ sudo apt update && sudo apt install ffmpeg
2. Ручное добавление репозитория
Если Вы хотите, то можете добавить необходимый репозиторий в файл /etc/apt/sources.list вручную.
Для примера включим репозиторий CouchDB и установим из него пакеты. CouchDB – это бесплатное, отказоустойчивое NoSQL решение с открытым исходным кодом, поддерживаемое Apache Software Foundation.
Откройте файл sources.list любимым редактором:
sudo vim /etc/apt/sources.list
И добавьте в конце файла новой строкой запись:
deb https://apache.bintray.com/couchdb-deb bionic main
Вместо редактирования файла, можно выполнить лишь одну такую команду:
echo "deb https://apache.bintray.com/couchdb-deb $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list
$(lsb_release -cs) выведет кодовое имя Ubuntu. Например, если у Вас Ubuntu 18.04, тогда кодовое имя – bionic.
Более правильным, конечно, будет не добавление строки в файл sources.list, а вынесение репозитория в отдельный файл, который помещается в каталог /etc/apt/sources.list.d/ (как это описывали выше).
Далее нам необходимо загрузить публичный ключ. Это можно сделать командами wget или curl:
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -
Вывод должен быть просто OK, что значит GPG ключ успешно импортирован.
Перед установкой нового пакета, обновим список доступных репозиториев:
$ sudo apt update
А теперь установим:
$ sudo apt install couchdb
Заключение
Мы показали Вам, как добавить репозитории в Linux на базе Debian. Эти же инструкции применимы к любому дистрибутивам Ubuntu, Kubuntu, Linux Mint, Kali Linux, Elementary OS и др.
Не стесняйтесь оставлять комментарии, если у Вас есть какие-либо вопросы.