Ничто так не отличает дистрибутив Debian от других дистрибутивов, как его система пакетов и репозиториев. Изначально репозитории были разделены на три ветки: testing, stable и unstable. Но на протяжении многих лет были добавлены дополнительные ответвления. На данный момент требуется намного больше знаний, чтобы использовать систему эффективно и безопасно.

В этой небольшой статье мы рассмотрим какие бывают репозитории Debian 9, зачем они нужны, а также как их правильно использовать. Рассмотрим также несколько сторонних репозиториев, которые вы можете добавить к своей системе.

Репозитории Debian

Официальные репозитории Debian

Официальные репозитории Debian разделены на несколько веток. Основная ветка, которая включается в каждый дистрибутив – это main. Здесь содержится только свободное программное обеспечение. Но вы можете отредактировать /etc/apt.sources.list и добавить ветку contrib, которая содержит программы, зависящие от несвободных программ. Также можно добавить ветку non-free, в которой содержаться сами несвободные программы.

Три основных репозитория были названы в честь персонажей фильма “История игрушек”. Нестабильный репозиторий принято называть “Sid”, а имена репозиториев Testing и Stable постоянно меняются. После выхода новой версии Debian, репозиторий Testing становится Stable и создается новый репозиторий Testing для следующей версии. Имена используются при настройке зеркал репозиториев, а также они помогут вам запомнить что есть что. Рассмотрим подробнее особенности каждого из них. Но сначала наглядная схема:

Репозитории Debian

1. Стабильный

Репозиторий Stable содержит самую последнюю стабильную версию Debian. Эта самая проверенная, самая стабильная версия Linux из всех доступных. По этой причине Debian используется на серверах и для систем, где важна высокая безопасность.

Цена, которую пользователи платят за надежность заключается в том, что сюда попадают программы через несколько лет после релиза. Пользователи, которые хотят более свежих версий используют Testing или Sid. Несмотря на то что такая тактика может вызвать проблемы, она используется довольно часто.

Актуальность Stable зависит от цикла выпуска Debian. Например, в течение первых 6-12 месяцев после релиза пакеты в нем все еще актуальны, но до финальной заморозки следующего выпуска они безнадежно устаревают. Но если вы ограничитесь программным обеспечением из Stable, то, скорее всего, избежите многих проблем.

2. Testing

Testing – это среда для тестирования пакетов, которые будут включены в следующий выпуск. Когда пакет переходит из Unstable в Testing, он уже прошел тщательную проверку и подготовку. Многие отмечают, что пакеты из Testing надежнее чем из официальных репозиториев некоторых дистрибутивов. Дистрибутив Ubuntu берет многие пакеты из Testing. Для подключения этого репозитория нужно добавить несколько строк в конец файла. Репозиторий testing тоже имеет ветки main, non-free и contrib:

deb http://ftp.ru.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ testing main non-free contrib

3. Unstable или Sid

Новые пакеты обычно попадают в репозиторий Sid, этот репозиторий позволяет вам использовать самые новые версии пакетов в Debian. Большинство программ можно уже использовать, но пакеты могут содержать еще много ошибок. Здесь могут быть конфликтующие или сломанные пакеты, которые не дадут вам удалять или устанавливать программы.

Для этого репозитория лучше использовать параметр simulate во время обновления. Репозиторий sid можно использовать для получения новых версий пакетов, которые не относятся к системным. Программы могут быть по-прежнему нестабильны, но они не причинят вреда вашей системе. Особенно небезопасно использовать Unstable в первые месяцы после обновления, разработчики ждали релиза чтобы добавить новые пакеты, и в этот период можно поймать больше всего ошибок.

Для добавления этой ветки используется ключевое слово sid. Нужно добавить в конец файла такие строки:

deb http://ftp.ru.debian.org/debian/ unstable main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ unstable main non-free contrib

4. Experimental

Если репозиторий Unstable может вызвать иногда проблемы, то этот репозиторий будет вызывать их всегда. Здесь находятся новые и настолько нестабильные пакеты, что они не подходят даже для Unstable. Разработчики предупреждают, что пользователям не нужно использовать пакеты отсюда, они могут быть небезопасными даже для опытных пользователей.

5. Старый stable

Когда выпущена новая версия Debian, ее репозиторий Testing становиться stable. А предыдущий стабильный репозиторий получает статус old-stable. Его нужно поддерживать, потому что многим пользователям нужно время для обновления, а другие и вовсе не спешат обновлять систему.

6. Security

Репозиторий Security содержит обновления безопасности для пакетов из репозитория stable и old-stable. Он добавляется во время установки и должен оставаться активным.

7. StableUpdates

Также как и security, этот репозиторий добавляется автоматически. В его адресе используется текущее кодовое имя дистрибутива, например, stretch-updates. Он помогает компенсировать медленный цикл развития Debian, добавляет новые пакеты для важных программ, например, антивирусов.

8. Backports

Репозиторий Debian backports содержит пакеты из Testing, иногда из Unstable, которые перекомпилируются для запуска в stable с зависимостью от минимума библиотек. С точки зрения надежности, он находится где-то посредине между Testing и Stable. Вы можете использовать Backports только для некоторых пакетов и не обновлять из него всю систему. Однако использование этого репозитория более безопасно чем смешивание Testing, Stable и Unstable.

deb http://ftp.ru.debian.org/debian/ stretch-backports main contrib non-free

Сторонние репозитории

Многие проекты имеют собственные репозитории Deb пакетов. Это драйвера с закрытым кодом, репозитории окружений рабочего стола, и так далее. Многие из таких проектов выгружают последние версии в собственные репозитории. Теоретически, такие репозитории Debian 9 могут быть даже более сырые, чем unstable или experimental. Многие из них предназначены только для разработчиков.

1. Deb-multimedia

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

deb http://mirror.yandex.ru/debian-multimedia/ stable main
deb-src http://mirror.yandex.ru/debian-multimedia/ stable main

Для работы сторонних репозиториев нужно добавить набор их ключей в систему:

sudo apt update
$ sudo apt install deb-multimedia-keyring

2. Dotdeb

Этот репозиторий Debian 9 содержит новые версии стека LAMP, MySQL и PHP. Для добавления используйте:

deb http://packages.dotdeb.org stretch all
deb-src http://packages.dotdeb.org stretch all

3. Репозитории Google

Компания Google размещает новые версии своих проектов, таких как Google Chrome, Google Earth в собственных репозиториях. Вот основные из них:

deb http://dl.google.com/linux/chrome/deb/ stable main
deb http://dl.google.com/linux/earth/deb/ stable main

Для работы репозитория нужно добавить ключ:

wget -q -O – https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add –

4. Репозитории Oracle

Компания Oracle имеет собственные репозитории Debian 9 для своих продуктов. Для добавления репозитория используйте такую строку:

deb http://oss.oracle.com/debian unstable main non-free

Также можно отдельно добавить репозиторий для VirtualBox:

deb http://download.virtualbox.org/virtualbox/debian yakkety contrib

Не забудьте загрузить ключи:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add –
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add –

Выводы

В этой статье мы рассмотрели основные репозитории Debian 9 stretch. Теперь вы понимаете как обращаться с программным обеспечением, зачем нужны те или иные ветки, а также какие пакеты откуда ставить. Также здесь есть несколько сторонних репозиториев, из которых вы сможете взять нужные вам программы.

Вы пропустили

AEGIS Algorithms Android Angular Apache Airflow Apache Druid Apache Flink Apache Spark API API Canvas AppSec Architecture Artificial Intelligence Astro Authentication Authorization AutoGPT AWS AWS Aurora AWS Boto3 AWS EC2 AWS Lambda Azure Babylon.js Backend bash Beautiful Soup Bento UI Big Data Binary Tree Browser API Bun Career Cassandra Charts ChatGPT Chrome Extension Clean Code CLI ClickHouse Coding Codux Combine Compose Computer Context Fusion Copilot Cosmo Route CProgramming cron Cryptography CSS CTF Cypress DALL-E Data Analysis Data science Database dbt dbt Cloud deno Design Design Patterns Detekt Development Distributed Systems Django Docker Docker Hub Drizzle DRY DuckDB Express FastAPI Flask Flutter For Beginners Front End Development Game Development GCN GCP Geospatial Git GitHub Actions GitHub Pages Gitlab GMS GoFr Golang Google Google Sheets Google Wire GPT-3 GPT3 Gradio Gradle Grafana Graphic Design GraphQL gRPC Guidance HMS Hotwire HTML Huawei HuggingFace IndexedDB InfoSec Interview iOS Jackknife Java JavaScript Jetpack Compose JSON Kafka Kotlin Kubernetes LangChain Laravel Linux LlaMA LLM localStorage Logging Machine Learning Magento Math Mermaid Micro Frontends Mobile Mobile App Development mondayDB MongoDB Mongoose MySQL Naming NestJS NET NetMock Networks NextJS NLP Node.js Nodejs NoSQL NPM OOP OpenAI OTP Pandas PDF PHP Playwright Plotly Polars PostgreSQL Prefect Productivity Programming Prometheus Puppeteer Pushover Python Pytorch Quarkus Rabbitmq RAG Ramda Raspberry Pi React React Native Reactor Redis REST API Revolut Riverpod RProgramming Ruby Ruby on Rails Rust Scalene SCDB ScyllaDB Selenium Servers Sklearn SLO SnowFlake Snowkase Software Architecture Software Development Solara Solid Spring Boot SQL SQLite Streamlit SudoLang Supabase Swift SwiftUI Tailwind CSS Taipy Terraform Testing Transformers TURN TypeScript Ubuntu UI Design Unix UX UX Design Vim Vite VSCode Vue Web Architecture Web Components Web Development Web Frameworks Web Scraping Web-разработка Webassembly Websocket Whisper Widgets WordPress YAML YouTube Zed Наука о данных Разное Тренды

Как исследовать и визуализировать данные МО для обнаружения объектов на изображениях