Для корректной и бесперебойной работы серверов очень важно использовать свежее программное обеспечение. Если для Windows его нужно искать на многочисленных сайтах и самостоятельно проверять безопасность, то в Linux всё проще. Для этих задач предусмотрено всего несколько репозиториев.
В этой статье мы рассмотрим, как добавить, удалить и настроить репозитории Debian 11. Остаётся только следовать инструкциям.
Репозиторием называют файловый сервер, на котором хранятся программы, утилиты и другие обновления. По сути, это структурированное хранилище файлов, поскольку оно разделено на несколько веток для каждой версии Linux.
Файлы для ubuntu и debian представлены в виде архивов, которые называют пакетами. Обычно у них формат deb или rpm. Это уже проверенные и готовые у инсталляции программы или их исходные коды.
Доступ к репозиториям обеспечивается благодаря разным протоколам. Самый популярный из них http, поэтому скачать пакеты можно с помощью обычного браузера.
Существует несколько репозиториев. Лучше всего пользоваться официальными – они надёжно защищены, а пакеты в них прошли проверку и тестирование. Сторонние ресурсы нужно использовать с осторожностью. В них могут располагаться программы с багами, а иногда даже файлы с вирусами.
У каждого репозитория есть собственный адрес, по которому ориентируются пакетные менеджеры. Они отражены в /etc/apt/sources.list.
Существуют и другие конфиги с расширением .list в /etc/apt/sources.list.d/.
Мы можем увидеть, какие репозитории нам доступны. Для удобства введём две команды.
egrep -v '^#|^$' (скрываем комментарии).
cat -n (делаем нумерацию строк).
Рассмотрим, что обозначают эти длинные строки.
Мы видим 2 типа пакетов.
http://deb.debian.org/debian/ – это репозиторий linux debian.
http://security.debian.org/debian-security - тоже для Debian, но здесь находятся обновления безопасности.
Ветками называют историю изменений для конкретного репозитория. Мы рассмотрим варианты для Debian.
bullseye – приложения для нашей версии дистрибутива.
bullseye-updates – лучшие варианты обновлений.
bullseye-security –обновления безопасности для повышения уровня защиты.
Они перечислены последними через пробел.
main – так обозначены пакеты, отвечающие критериям DFSG. Они обходятся без ПО из других источников.
Contrib – у них тоже строгое соответствие, однако они зависят от архивов, которые нужным критериям не отвечают.
non-free – здесь находятся остальные программы, обновления, утилиты.
В списке официальных репозиториев всего 6 пунктов, поэтому найти проверенное, безопасное программное обеспечение для установки очень просто.
Здесь находятся свежие и надёжные версии, которые рекомендуется использовать в production. То есть соблюдается оптимальное соотношение качества и надёжности. Это актуальные пакеты, которые уже успели пройти тестирование, хорошо себя зарекомендовали. Отличный вариант для стабильной работы, так как регулярно загружают обновления текущего релиза.
В это хранилище загружают обновления безопасности. Ветка формируется, когда в Stable появляется новый релиз.
Пакеты этого класса лучше использовать исключительно для ознакомления с их возможностями. Они пока ещё только тестируются, могут дополняться. Когда они станут стабильными и пройдут все проверки, перейдут в stable.
Здесь можно скачать самое свежее ПО. Но проблема в том, что оно ещё не успело пройти полноценное тестирование, поэтому его использование довольно рискованно. Есть смысл скачивать программы, если вам нужен конкретный софт и вы точно знаете, что он не навредит.
Это хранилище предназначено для разработчиков и тестировщиков. Расположенные здесь программы ещё дорабатываются, поэтому устанавливать их на рабочее оборудование нельзя.
Это отличный вариант для тех, кто ищет компромисс между надёжными решениями Stable и новинками из testing. Особенность пактов в том, что у них отсутствуют новые библиотеки, поэтому пользователь легко может вернуться на stable.
Отдельно стоит рассмотреть дополнительные репозитории.
В Security updates хранятся исключительно обновления безопасности, других программ здесь быть не может. Есть смысл настроить автоматическое скачивание отсюда – здесь довольно свежие и качественные версии.
В Stable-updates находятся обновления, которые появятся при следующем обновлении релиза. То есть их можно получить раньше.
Кстати, для astra linux репозиторий debian тоже подходит. Но нужно всё правильно настроить.
Представим, что нам нужен доступ к хранилищу веб сервера Nginx. Это неофициальный репозиторий, но вполне надёжный, безопасный.
Добавить репозитории допустимо как в основной, так и в отдельные конфиги, причём в дополнительные даже лучше. Чтобы создать новый конфиг Nginx в дебиан, вводим команду
~$ sudo nano /etc/apt/sources.list.d/nginx.list
deb http://nginx.org/packages/debian bullseye nginx
Важно правильно выставить приоритет, чтобы система понимала, откуда скачивать обновления. Для этого создаём файл /etc/apt/preferences.d/XX<имя_репозитория>. Вместо XX пишем номер файла. Число пропорционально приоритету, чем оно больше, тем позже обрабатывается. Выглядит это так.
В нашем случае Package – это название пакета. Звёздочка означает, что приоритет есть у каждого пакета данного хранилища. Чтобы выбрать конкретные паркеты, их нужно перечислить через пробел.
Pin – это опции прикрепления. Они могут быть разными, поэтому рассмотрим варианты из примера.
origin название поставщика продукта, в примере это nginx.org
release o=nginx. Эта строка говорит о том, что в файле Release присутствует поставщик (Origin = o) с именем nginx.
Pin-Priority обозначает приоритет. В примере это 900. Но могут быть и другие значения.
P равен 0 – не используется.
При отрицательных значениях пакет не может быть установлен.
От 0 до 100 – установка возможна, если процедура не была выполнена ранее и нет альтернативы из других репозиториев.
От 100 до 500 – установка произойдёт, если нет более свежих версий в других хранилищах.
От 500 до 990 – установка произойдёт, если нет пакета из целевого выпуска или уже не стоит более свежая версия.
От 990 до 1000 – установится, если уже не стоит более свежая версия.
Более 1000 – установка произойдёт в любом случае.
И тут нам встретилось понятие «целевой выпуск». Это название версии дистрибутива. Для дебиан это bullseye, и его нужно задавать дополнительно.
~$ sudo nano /etc/apt/apt.conf.d/default
APT::Default-Release "bullseye";
alex@ubu:~$ sudo nano /etc/apt/apt.conf.d/default
APT::Default-Release "jammy";
После настройки приоритета нужно применить изменения. Но тут может возникнуть ошибка, что не хватает открытого ключа.
Такое сообщение возникает, так как репозитории хорошо защищены используется закрытый ключ. Но для его использования нужно ввести открытый. Вводим соответствующую команду, чтобы получить возможность пользоваться необходимыми инструментами.
~$ sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
Дальше скачиваем открытый ключ.
$ wget https://nginx.org/keys/nginx_signing.key
Следующий этап – конвейер команд.
$ cat nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Теперь у нас есть ключ, который хранится в /usr/share/keyrings/nginx-archive-keyring.gpg. скачаем его.
$ wget -O- https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
И указываем его перед адресом репозитория. [signed-by=/путь/к/ключу].
Готово. Теперь можно проверить, правильно ли мы всё настроили для установки nginx.
$ apt-cache policy nginx
Например, система выдаёт следующее.
Ответ означает, что установка не была произведена, поскольку приоритет у другого пакета с версией 1.20.2.
Всё работает так, как мы и планировали.