0
aptly: система
управления
репозиториями пакетов
Андрей Смирнов
Содержание
• Проблема повторяемости
• aptly: основные идеи
• Примеры использования
• Немного о внутренностях
• Планы
Содержание
• Проблема повторяемости
• aptly: основные идеи
• Примеры использования
• Немного о внутренностях
• Планы
Повторяемость
окружения
Повторяемость
изменений окружения
Окружение -
набор пакетов
Версии пакетов разные
Потребность
Official repoOfficial repo
BackportsBackports
3rd party
repo
3rd party
repo
PPAPPA
HomebrewHomebrew
Управление окружением
BackportsBackports
3rd party
repo
3rd party
repo
apt-getapt-get
apt-sourcesapt-sources
apt-
preferen...
Не та версия…
apt pinning поможет!
No…
Невоспроизводимость
• Поставить пакет A
• Добавить в apt-sources
• Изменить pinning
• Поставить пакет A - ?
Версии окружения
testing
development
staging
production
Цель
Зафиксированный репозиторий пакетов
(повторяемость)
Контролируемые изменения версий
(изменения)
aptlyaptly
* не является заменой apt, dpkg!
Сущности
– зеркало удаленного репозитория
– неизменяемый срез набора пакетов
– опубликованный репозиторий пакетов
mirrormi...
mirrormirror
local repolocal repo
snapshotsnapshot
published
repo
published
repo
snapshotsnapshot
published
repo
published...
mirror
$ aptly mirror create wheezy-main http://mirror.yandex.ru/debian/ wheezy main
…
$ aptly mirror update wheezy-main
…...
mirrormirror
snapshotsnapshot
published
repo
published
repo
update
take snapshot
publish
local repo
$ aptly repo create –distribution=wheezy mysoftware
…
$ aptly repo add –remove-files mysoftware incoming/*.deb
...
local repolocal repo published
repo
published
repo
snapshotsnapshot
published
repo
published
repo
take snapshot
publish
pu...
aptly snapshot pull
$ aptly snapshot pull wheezy-7.4 percona-20140414 wheezy-w-percona
'percona-server-server (>=5.5)’
…
[...
aptly snapshot pull
$ aptly snapshot pull wheezy-7.4 backports-20140414 wheezy-w-rsyslog rsyslog
…
[-] rsyslog-5.8.11-3_am...
mirrormirror
snapshotsnapshot
snapshotsnapshot
published
repo
published
repo
snapshotsnapshot
take snapshot
publish
pull
m...
aptly snapshot verify
$ aptly snapshot verify wheezy-w-percona
Missing dependencies (13):
fenix [amd64]
fenix-plugins-syst...
mirrormirror
local repolocal repo
snapshotsnapshot
published
repo
published
repo
snapshotsnapshot
published
repo
published...
aptly graph
Повторяемость!
Повторяемость!
Повторяемость!
Повторяемость!
Внутренности
• Пакеты «держат ссылки» на
свои файлы
• mirror, local repo, snapshot –
список пакетов
• Публикация – генерац...
Ссылки
http://www.aptly.info/
https://github.com/smira/aptly/
@smira
me@smira.ru
Skype: smirnov.andrey
Upcoming SlideShare
Loading in...5
×

aptly: система управления репозиториями пакетов, Андрей Смирнов

1,137

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,137
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "aptly: система управления репозиториями пакетов, Андрей Смирнов"

  1. 1. aptly: система управления репозиториями пакетов Андрей Смирнов
  2. 2. Содержание • Проблема повторяемости • aptly: основные идеи • Примеры использования • Немного о внутренностях • Планы
  3. 3. Содержание • Проблема повторяемости • aptly: основные идеи • Примеры использования • Немного о внутренностях • Планы
  4. 4. Повторяемость окружения
  5. 5. Повторяемость изменений окружения
  6. 6. Окружение - набор пакетов
  7. 7. Версии пакетов разные
  8. 8. Потребность Official repoOfficial repo BackportsBackports 3rd party repo 3rd party repo PPAPPA HomebrewHomebrew
  9. 9. Управление окружением BackportsBackports 3rd party repo 3rd party repo apt-getapt-get apt-sourcesapt-sources apt- preferences apt- preferences Official repoOfficial repo HomebrewHomebrew
  10. 10. Не та версия…
  11. 11. apt pinning поможет!
  12. 12. No…
  13. 13. Невоспроизводимость • Поставить пакет A • Добавить в apt-sources • Изменить pinning • Поставить пакет A - ?
  14. 14. Версии окружения testing development staging production
  15. 15. Цель Зафиксированный репозиторий пакетов (повторяемость) Контролируемые изменения версий (изменения)
  16. 16. aptlyaptly * не является заменой apt, dpkg!
  17. 17. Сущности – зеркало удаленного репозитория – неизменяемый срез набора пакетов – опубликованный репозиторий пакетов mirrormirror local repolocal repo snapshotsnapshot published repo published repo – локальный репозиторий пакетов
  18. 18. mirrormirror local repolocal repo snapshotsnapshot published repo published repo snapshotsnapshot published repo published repo snapshotsnapshot snapshotsnapshot published repo published repo update take snapshot take snapshot publish publish publish verify pull merge diff add
  19. 19. mirror $ aptly mirror create wheezy-main http://mirror.yandex.ru/debian/ wheezy main … $ aptly mirror update wheezy-main … $ aptly snapshot create wheezy-7.4 from mirror wheezy-main … $ aptly publish snapshot wheezy-7.4 debian …
  20. 20. mirrormirror snapshotsnapshot published repo published repo update take snapshot publish
  21. 21. local repo $ aptly repo create –distribution=wheezy mysoftware … $ aptly repo add –remove-files mysoftware incoming/*.deb … $ aptly snapshot create my-20140414 from repo mysoftware … $ aptly publish snapshot my-20140414 local …
  22. 22. local repolocal repo published repo published repo snapshotsnapshot published repo published repo take snapshot publish publishadd
  23. 23. aptly snapshot pull $ aptly snapshot pull wheezy-7.4 percona-20140414 wheezy-w-percona 'percona-server-server (>=5.5)’ … [+] percona-server-server-5.5.35-rel33.0-611.wheezy_amd64 added [+] percona-server-server-5.5-5.5.35-rel33.0-611.wheezy_amd64 added [+] percona-server-client-5.5-5.5.35-rel33.0-611.wheezy_amd64 added [+] percona-server-common-5.5-5.5.35-rel33.0-611.wheezy_amd64 added [-] libmysqlclient18-5.5.31+dfsg-0+wheezy1_amd64 removed [+] libmysqlclient18-5.5.35-rel33.0-611.wheezy_amd64 added [+] percona-server-server-5.5.35-rel33.0-611.wheezy_i386 added [+] percona-server-server-5.5-5.5.35-rel33.0-611.wheezy_i386 added [+] percona-server-client-5.5-5.5.35-rel33.0-611.wheezy_i386 added [+] percona-server-common-5.5-5.5.35-rel33.0-611.wheezy_i386 added [-] libmysqlclient18-5.5.31+dfsg-0+wheezy1_i386 removed [+] libmysqlclient18-5.5.35-rel33.0-611.wheezy_i386 added
  24. 24. aptly snapshot pull $ aptly snapshot pull wheezy-7.4 backports-20140414 wheezy-w-rsyslog rsyslog … [-] rsyslog-5.8.11-3_amd64 removed [+] rsyslog-7.4.4-1~bpo70+1_amd64 added [-] libestr0-0.1.1-2_amd64 removed [+] libestr0-0.1.9-1~bpo70+1_amd64 added [+] init-system-helpers-1.11~bpo70.1_all added [-] rsyslog-5.8.11-3_i386 removed [+] rsyslog-7.4.4-1~bpo70+1_i386 added [-] libestr0-0.1.1-2_i386 removed [+] libestr0-0.1.9-1~bpo70+1_i386 added
  25. 25. mirrormirror snapshotsnapshot snapshotsnapshot published repo published repo snapshotsnapshot take snapshot publish pull mirrormirror take snapshot
  26. 26. aptly snapshot verify $ aptly snapshot verify wheezy-w-percona Missing dependencies (13): fenix [amd64] fenix-plugins-system [amd64] ia32-libs-i386 [amd64] ia32-libs-gtk-i386 [amd64] vidcontrol [amd64] kbdcontrol [amd64] libmysqlclient18 (= 5.5.31+dfsg-0+wheezy1) [amd64] scsh-0.6 (>= 0.6.6) [amd64] scsh-0.6 [amd64] mozart (>= 1.4.0) [amd64] libmysqlclient18 (= 5.5.31+dfsg-0+wheezy1) [i386] vidcontrol [i386] kbdcontrol [i386]
  27. 27. mirrormirror local repolocal repo snapshotsnapshot published repo published repo snapshotsnapshot published repo published repo snapshotsnapshot snapshotsnapshot published repo published repo update take snapshot take snapshot publish publish publish verify pull merge diff add
  28. 28. aptly graph
  29. 29. Повторяемость!
  30. 30. Повторяемость!
  31. 31. Повторяемость!
  32. 32. Повторяемость!
  33. 33. Внутренности • Пакеты «держат ссылки» на свои файлы • mirror, local repo, snapshot – список пакетов • Публикация – генерация мета- данных + создание симлинков
  34. 34. Ссылки http://www.aptly.info/ https://github.com/smira/aptly/ @smira me@smira.ru Skype: smirnov.andrey
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×