Debian свой репозиторий windows

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

Устанавливайте репозитории в Debian легко и быстро. В статье мы расскажем, что такое репозитории, какие они бывают, а также, как происходит настройка репозиториев в Debian.

Что такое репозитории в Linux

Все программы в Linux распространяются в виде пакетов ― набора программ, упакованных в специальный формат. Пакеты можно скачать из репозиториев. Репозитории ― это хранилища в Интернете, в которых находятся файлы пакетов приложений Linux. Практически у каждого дистрибутива Linux есть свой репозиторий, который содержит проверенные и стабильные версии программ.

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

Для работы с программным обеспечением на Debian надо знать псевдонимы версий Debian, официальные репозитории, а также виды веток программных пакетов. Сначала рассмотрим основные репозитории и разделы в Debian.

Типы официальных репозиториев в Debian

Существует официальный список репозиториев Дебиан. Расскажем про каждый из них подробнее.

Stable

В этом репозитории находятся самые актуальные и стабильные версии программ, именно их рекомендуется использовать. Программы, которые оказались в этом репозитории, прошли много проверок и доработок, чтобы стать надежным ПО. Часто в этом репозитории публикуют не самые свежие версии, зато самые надежные. Он формируется из ветки Testing после тщательной доработки.

Testing

В репозитории Testing находятся разработанные программы, которые ещё не прошли много тестов, чтобы перейти в ветку Stable. Пакеты в Testing попадают из репозитория Unstable. Использовать программы из репозитория Testing следует, только чтобы ознакомиться с возможностями нового релиза программы, так как они могут иметь ошибки при использовании.

Unstable (sid)

Sid ― это репозиторий с самым свежим программным обеспечением. Если в репозитории Testing ошибок может совсем не быть, так как до этого программа уже прошла большой путь проверок, то здесь ПО только начало свой путь. Использовать программы из этого репозитория не рекомендуется. Также Unstable может нарушить зависимости пакетов, так что потом вернуться на Stable будет трудно.

Oldstable

Oldstable — кодовое имя предыдущего Stable репозитория. При публикации новой версии Stable, предыдущая переходит в ветку Oldstable. Для этого репозитория ещё продолжают выпускаться обновления безопасности.

Experimental

Experimental репозиторий содержит пакеты и утилиты, которые только разрабатываются и находятся в состоянии начальной версии. Он предназначен для разработчиков и тестировщиков.

Backports

Backports ― компромисс между Stable-веткой и набором программ Testing. Он содержит преимущественно пакеты из Testing и немного из Unstable. Пакеты из Backports, где это возможно, устанавливаются без новых библиотек. Это сделано для того, чтобы при необходимости можно было вернуться на Stable. Если вам нужно ПО из веток Testing и Unstable, то лучше использовать этот репозиторий.

В Debian каждый репозиторий состоит из нескольких веток (разделов):

  • main ― эта ветка включается в каждый дистрибутив. Она подчиняется принципам свободного программного обеспечения. Ветка не зависит от других пакетов, которые не входят в раздел «main»;
  • contrib ― эта ветка подчиняется принципам свободного программного обеспечения и зависит только от пакетов, которые не входят в раздел «main». Может понадобиться прошивка ROM или ПО, которое имеет собственника, например Java от Oracle;
  • non-free ― содержит пакеты, которые противоречат принципам свободного программного обеспечения или имеют патенты и другие юридические ограничения.

Пакеты в каждой из веток (main, contrib и non-free) полностью готовы к работе с дистрибутивом Debian. Также для добавления репозитория вам понадобятся названия псевдонимов версий Debian.

Псевдонимы версий Debian

Все версии (релизы) Debian имеют псевдонимы. Каждая версия названа в честь одного из героев мультфильма «История игрушек»:

  • Debian 7 ― Wheezy,
  • Debian 8 ― Jessie,
  • Debian 9 ― Stretch,
  • Debian 10 ― Buster,
  • Debian 11 ― Bullseye.

Знание релизов понадобится при добавлении репозитория.

Ещё один блог сисадмина

воскресенье, 11 августа 2019 г.

Создание своего репозитория Debian при помощи aptly

Несмотря на то, что в официальных репозиториях Debian можно найти почти всё, что может понадобиться, иногда всё-таки приходится самостоятельно собирать пакеты. Я стараюсь не замусоривать систему программами, установленными из исходных текстов и модулями различных языков программирования, установленными через их стандартные инструменты, вроде cpan, pip или gem.

Читайте также:  Adblock для яндекс браузера для windows

Собирать пакеты приходится по нескольким причинам:

  • В репозитории нет нужного пакета. Иногда бывает можно найти неофициальные репозитории для нужного релиза операционной системы.
  • Через репозитории дистрибутива доступна только старая версия пакета, в которой не хватает нужных функций. В этом случае иногда помогают официальные репозитории backport с более свежими версиями пакетов, собранными для предыдущих релизов операционной системы.
  • В пакете из репозитория есть ошибка. Даже в стабильном дистрибутиве встречаются ошибки, которые не исправляются ментейнерами. Тут придётся либо обновлять пакет, либо исправлять в нём ошибку.
  • В репозитории есть нужная версия пакета, но собранная без поддержки определённой функции. Тут без вариантов — нужно дорабатывать и пересобирать пакет.

Например, в 2013 году я начал настраивать на работе серверы под Debian Wheezy. С тех пор у меня накопилось некоторое количество самосборных пакетов:

  • python-grab — не было в репозитории
  • python-flask-httpauth — не было в репозитории
  • python-pycurl — не было в репозитории
  • libdancer-plugin-database-core-perl — не было в репозитории
  • libnet-ssh-expect-perl — не было в репозитории
  • wordpress-plugin-simple-ldap-login — не было в репозитории
  • python-mysqldb — модуль версии 1.2.3 заменён на более свежую версию 1.2.5 из-за некорректной работы с collation utf8_bin: python-mysqldb: utf8_bin collation will not convert to Unicode strings
  • libsnmp и компания — пакеты были пересобраны из-за того, что не все производители оборудования с поддержкой SNMPv3 обеспечивают монотонный рост счётчика количества перезагрузок и времени с момента перезагрузки: Стандарт SNMPv3 и суровая действительность USM_TIME_WINDOW
  • python-netsnmp — модуль пересобран из-за ошибки в формировании SET-запросов со значениями типа IPv4: Исправление Python-прослойки библиотеки Net-SNMP
  • php5 и компания — среди этих пакетов был пакет php5-snmp, зависящий от пакета libsnmp
  • openntpd — в пакете была иcправлена ошибка в обработке таймаута ответов от серверов DNS: Таймаут DNS в OpenNTPd
  • uwsgi — включена поддержка Linux capabilities: Пересборка uwsgi с поддержкой Linux Capabilities
  • zabbix — собрана более свежая версия пакета, наложена серия нестандартных патчей. Например, добавлены отдельные настройки таймаута и количества повторов для опроса по протоколу SNMP: Установка и настройка Zabbix 2.2.0 в Debian Wheezy
  • python-paramiko и python-ecdsa — модуль paramiko 1.7.7.1-3.1 обновлён до версии 1.16.0-1, т.к. версия paramiko из репозитория имела ошибки в поддержке протокола SFTP: python-paramiko: sftp connections hangs. Модуль python-ecdsa был тоже обновлён, т.к. более новая версия модуля paramiko требовала и более свежую версию модуля ecdsa.

Если у вас есть только один компьютер и вам нужна лишь пара нестандартных программ, то заморачиваться сборкой пакетов, возможно, не стоит. Когда же нестандартных программ набирается с десяток, их приходится периодически обновлять, а потом ещё и устанавливать на десяток компьютеров, то может оказаться проще потратить время на изучение различных способов сборки пакетов и организацию собственного репозитория.

Есть масса способов собрать пакет для Debian:

  • Можно доработать пакет с исходными текстами и собрать как новый пакет с исходными текстами, так и собрать из него новые двоичные пакеты.
  • Для сборки пакетов с модулями python существует утилита python-stdeb: Создание deb-пакетов для модулей Python
  • Для сборки пакетов с модулями perl существует утилита dh-make-perl.
  • Можно попробовать сконвертировать готовый пакет из другого формата при помощи утилиты alien.
  • Можно попробовать собрать пакет при помощи утилиты checkinstall.
  • Наконец, можно просто создать пакет вручную при помощи утилиты dpkg-deb: 5.13 Как мне сделать собственный .deb пакет?

Собственный репозиторий позволяет экономить время, т.к. становится возможным не думать о том, установлены ли в системе пакеты нужных версий со всеми доработками: нужно всего-лишь прописывать в список подключенных репозиториев на каждой системе строчку со своим репозиторием.

Когда утилита aptly ещё не попалась мне на глаза, я делал репозитории при помощи утилиты apt-ftparchive. Не помню подробностей, но точно помню, что была она не очень удобной в использовании.

Потом мне попалась утилита aptly, которая обладала более богатыми возможностями и была более удобна в использовании. Стоит, правда, сказать, что утилита настолько богата возможностями, что удобство использования остаётся довольно относительным. Обновлять репозитории мне приходилось нечасто, поэтому каждый раз я с трудом вспоминал, какими командами я пользовался в прошлый раз. Я стал записывать команды в wiki-страницу и пользоваться своими заметками. Правда, структурированы они были довольно плохо, поэтому в блог я ничего не публиковал. Теперь же решил упорядочить эти заметки и выложить их в блог.

Установка пакета

Создание локальных репозиториев

Добавление пакетов в локальный репозиторий

Публикация локальных репозиториев

/.aptly/public, откуда их можно скопировать и разместить на веб-сервере. В примере выше локальный репозиторий stretch был опубликован в каталоге ncc, поэтому найти его можно будет в каталоге

Читайте также:  Transmission для windows server

Поиск и удаление пакетов из локального репозитория

Для поиска пакетов, в имени которых присутствует слово zabbix и версия которых выше 1:3.4, а также пакетов, в имени которых присутствует подстрока -perl, можно воспользоваться следующей командой:
Как видно, скобки используются для группировки выражений, запятая соответствует логическому И, вертикальная черта соответствует логическому ИЛИ. Тильда обозначает совпадение с регулярным выражением, знак больше используется в своём обычном смысле. Более подробно правила фильтрации описаны в документации на странице: Package queries.

Для удаления пакетов из репозиториев используются те же самые выражения, которые используются при поиске пакетов. Например, удалим все пакеты, в имени которых присутствует подстрока zabbix:
Для удаления пакетов, в имени которых есть подстрока -perl, можно воспользоваться следующей командой:

Перемещение пакетов между локальными репозиториями

Если пакеты были по ошибке добавлены не в тот репозиторий, то может пригодиться функция перемещения пакетов между репозиториями.

Например, вот так можно выполнить перемещение всех пакетов, у которых в версии фигурирует подстрока stretch, из репозитория wheezy в репозиторий stretch:

Обновление опубликованного репозитория

Удаление устаревших пакетов

Удаление опубликованных репозиториев

Удаление локального репозитория

Посмотрим на список локальных репозиториев:
Как видно, в репозитории нет пакетов, поэтому его можно удалить.

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

Есть у собственного репозитория и отрицательные стороны. Если у вас нет времени на то, чтобы обновить операционную систему до нового релиза, то собственный репозиторий с нестандартными пакетами будет ещё одним доводом в пользу того, чтобы как можно дольше оттягивать момент обновления операционной системы до нового релиза. С одной стороны, в новом релизе часть проблемых пакетов обновится и их больше не нужно будет пересобирать, а с другой стороны — всё равно нужно будет пересобрать доработанные пакеты и собрать пакеты, которых нет в стандартном репозитории обновлённой системы. И ещё при обновлении существует вероятность, что в новых пакетах будут не только исправлены старые ошибки, но и внесены новые.

Так, на работе всё тот же Debian Wheezy, который вышел в 2013 году, использовался мной аж до 2019 года. За это время успело выйти три новых релиза: Squeezy, Jessie, Stretch. Некоторые коллеги удивлялись, почему я продолжаю использовать этот устаревший релиз. Друге даже не догадывались об этом, т.к. им достаточно, чтобы обновлялся фасад здания, а с ржавыми трубами им дела иметь не приходилось. В 2018 году завершился срок продлённой поддержки Debian Wheezy. В 2019 году репозиторий пропал с зеркал и стало очевидно, что оттягивать обновление больше нельзя. Пришлось отложить всю текущую работу и заняться обновлениями, несмотря молчаливое и явное недовольство окружающих. Нельзя бесконечно копить технический долг — иногда нужно его возвращать.

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

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

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

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

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

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

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

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

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

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

Читайте также:  Coconut battery plus mac os

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. Теперь вы понимаете как обращаться с программным обеспечением, зачем нужны те или иные ветки, а также какие пакеты откуда ставить. Также здесь есть несколько сторонних репозиториев, из которых вы сможете взять нужные вам программы.

Видео по теме, настройка репозиториев Debian:

Оцените статью