1 (17.07.2011 09:53:43 отредактировано faithman)

Тема: Создание локальных репозиториев Debian GNU/Linux

http://www.debian.org/logos/openlogo-nd-50.pnghttp://www.debian.org/Pics/debian.png

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

2

Re: Создание локальных репозиториев Debian GNU/Linux

Пример быстрого поднятия репозитория с использованием reprepro:

$ mkdir repository
$ mkdir repository/conf
$ touch repository/conf/distributions

В файлик repository/conf/distributions прописываем:

Codename:  squeeze
Suite:  testing
Version: testing
Origin:
Label: Debian Repository
Description: Debian repository
Architectures: i386
Components: main contrib non-free
SignWith: default
DebIndices: Packages Release . .gz .bz2
DscIndices: Sources Release . .gz .bz2
Contents: . .gz .bz2

параметры "говорящие", что не понятно, то рассказано в "man reprepro"
Все. Репозиторий готов. Что бы добавить пакет:

reprepro -b ./repository/  --ask-passphrase includedeb squeeze /var/cache/apt/archives/*.deb

Параметр --ask-passphrase подпишет ваш реп с помощью вашего ключа GnuPG.
На не подписанные репы, aptitude будет ругаться, что мол "ненадежный". Для использования подписанного, надо сделать выгрузку вашего ключа, а на машине использующей реп:

sudo apt-key add /tmp/key.asc

3

Re: Создание локальных репозиториев Debian GNU/Linux

Если я создаю список пакетов с помощью команды dpkg-scanpackages. Как будет выглядеть ссылка на этот список в /etc/apt/source.list

4

Re: Создание локальных репозиториев Debian GNU/Linux

CryptSpirit пишет

Если я создаю список пакетов с помощью команды dpkg-scanpackages. Как будет выглядеть ссылка на этот список в /etc/apt/source.list

Затрудняюсь ответить. Эта команда создает список пакето-описаний. я думаю, что одной её для создания репозитария мало.

Re: Создание локальных репозиториев Debian GNU/Linux

dpkg-scanpackages сохдает индексный файл, который является частью репозитория дебиан.
сам по себе, без репозитория этот файл бесполезен.
в варианте, предложенным alukard404 эту команду отдельно вызывать не нужно.

6 (23.02.2010 14:10:45 отредактировано CryptSpirit)

Re: Создание локальных репозиториев Debian GNU/Linux

В его варианте все понятно. Да вот я в руководстве напал на такую строку где только с помощью этой команды и прописывании адреса в файле /etc/apt/source.list говорилось о создании репозитория (локального). Год издания 2004 если не ошибаюсь вот ток название книженции сходу не напишу. Поищу если что то ссылку на книгу и страницу обеспечу. Вот специально полез в гугл и нашел кучу ссылок на подобный метод. Как вы это прокомментируете? Либо вы имели введу Репозиторий, а я какой то там репозиторий??!? alukard404 а что по вашему репозиторий? Разви мы не говорим об одном и том же. distributions это информационный файл необходимый мне кажется больше для создания (добавления пакетов) репозитория. У меня давно уже стоит репозиторий созданый по "вашему" методу. И до сих пор у меня сложилось мнение что distributions отвечает только за перераспределение пакетов в каталогах репозитория.

7

Re: Создание локальных репозиториев Debian GNU/Linux

Кто-нибудь разместите скрипт для рекурсивного поиска и добавления пакетов иерархии /pool для утилиты reprepro.

Обрисую ситуацию -- люди скачивают dvd-образы (6 штук) Debian GNU/Linux и пытаются создать локальный репозиторий на HDD с помощью reprepro. Команда includedeb не поддерживает рекурсивный поиск файлов по вложенным каталогам.

На старом форуме где-то видел, но конкретно не помню.

8

Re: Создание локальных репозиториев Debian GNU/Linux

2faithman:
На дисках все пакеты лежат на одной и той же глубина ./pool/main/r/reprepro/reprepre.deb
Используйте маску: ./pool/*/*/*/* и все будет работать.

2CryptSpirit:
В своем посте, я показал способ создания репозитария с алфовитным иерархированием.
Файл distributions это конфиг репозитория. Если прочтете в мануале программы reprepro, там описываются возможности этого файла. Он отвечает за то, какие релизы могут быть в репозитарии, обновляться ему или нет... Я не совсем понимаю, что Вы имеете под "перераспредилением" пакетов.

И я ничего не имею против Вашего способа. Но на сколько я знаю, этой команды мало для создании репозитария и репозиторий предоставляют 4 файла,  а dpkg-scanpackages только один. Из этого следует, что чего-то не хватает.

Не смотря на то, что я не модератор/администратор, хотел бы Вас попросить проявлять больше уважения к собеседнику.

9

Re: Создание локальных репозиториев Debian GNU/Linux

alukard404, прошу прощения но я так всю жизнь на форумах пишу. Черт его знает почему :rolleyes:  Без обид. Я просто спросил ваше мнение  о моем способе и спрашивал про строку в файле /etc/apt/source.list. Вы видете в моем тексте обиду и наезд на кого то но в плотную не видите вопроса. Может опять это высказывание может показаться вам жерстким но это моя манера. Забанят мне все равно. А "перераспредилением" это и есть алфавитная иерархия ag . Мое мнение про reprepro: класный метод для создания репозиторий в сети, а для личного пользования + возможности быстрого создания диска репами я считаю хватит и dpkg-scanpackages. Вот потому и поднял вопрос an

10

Re: Создание локальных репозиториев Debian GNU/Linux

Но на сколько я знаю, этой команды мало для создании репозитария и репозиторий предоставляют 4 файла,  а dpkg-scanpackages только один. Из этого следует, что чего-то не хватает.

Вроде ответ или задайте, пжл, ответ ещё раз.

Тоже без обид, просто как начнем новый форум, так и закончим.  ab
Есть ещё способы через deb-mirror и несколько др пограм. Я пользую тока reprepro, а stable у меня лежит скопипасченый deb-mirror'ом.

11

Re: Создание локальных репозиториев Debian GNU/Linux

CryptSpirit пишет

спрашивал про строку в файле /etc/apt/source.list

:/

12

Re: Создание локальных репозиториев Debian GNU/Linux

CryptSpirit пишет
CryptSpirit пишет

спрашивал про строку в файле /etc/apt/source.list

:/

Гм. Как я понимаю, Ваш репозитарий (deb-пакеты) лежит вместе с файлом, который создает dpkg-scanpackages. Попробуйте указать путь к этой папке. Если репозитарий заработает, то отпишитесь, пжл.
Точную строку я вам дать не могу, т.к. не знаю какому релизу репозитарий соответствует и какие секции.

13

Re: Создание локальных репозиториев Debian GNU/Linux

Копался не то что бы долго но и без этого у меня последнее время проблем хватает (потому просил помощи здесь). Реп мой лежит в каталоге /usr/rep/deb а файл Packages.gz в /usr/rep и тогда строка в /etc/apt/source.list имеет вид deb file:///usr/rep / просто и странно. Помог скрипт APTonCD. Точнее диск созданный им. Я добавил его и прочел /etc/apt/source.list. Мне кажется среди комбинации команд которые использует APTonCD есть и dpkg-scanpackages. Одним словом вот так простенько можно сделать мини реп с нужными вами пакетами (у меня он на всякий случай находиться на отдельном разделе)

14

Re: Создание локальных репозиториев Debian GNU/Linux

здрасте, народ. вот хочу просить совета, направить на путь  истинный, так сказать ab

я просмотрела тему и посчитала, что создавать новую не стоит..

ситуация такова, начальство поставило задачу, автоматизировать установку Debian 5.0 по сети с локального репозитария. доступа к инету нет. реп создавался из 5 DVD. файлы Release были подписаны моим ключом.
процесс таков: при загрузке с сети комп, на который устанавливается система, подхватывает по dhcp ipшник и файл pxelinux.0, далее через tftp грузится initrd и начинается установка системы. происходит настройка сети, разметка дисков и далее просит адрес зеркала для базовой установки операционной системы. репозитарий мой лежит на ftp-сервере, на той же машине, где dhcp-сервер и tftp запущены. я ввожу адрес репа, а далее он ругается:

Signature made .. UTC using DSA key ID CB4E54C7
Can't check signature: public key not found

мое виденье всего этого дела таково (правда какое-то оно мутное, это виденье :/ )
установщик, а конкретнее debootstrap (я так понимаю это отделный процесс??) ищет файл Release, потом к нему подпись Release.gpg, проверяет подпись своим каким-то (стандартным?) ключом. он не подходит, т.к. подпись то создана моим ключом. вот он и ругается.

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

После этого будет нужно добавить ключ в базу Apt
apt-key add ~/.gnupg/secring.gpg

и у меня родился вопрос (уф.. и долго же я до него добиралась  ab  ) может стоит поковыряться в initrd и поставить его в известность о моем ключе?

а т.к. в такое я вляпалась :rolleyes:   впервые, то  другой вопрос родился тут же: может я все неправильно понимаю? и есть другой путь?

".. и надеждою маюсь,
полный тайных тревог,
что хоть малую малость.." (Евтушенко)
меня кто-нибудь поймет ag

15 (18.04.2010 19:39:50 отредактировано aivee)

Re: Создание локальных репозиториев Debian GNU/Linux

А можно создать репозиторий на флешке? Или как еще можно решить такую задачу:
Загруженные из интернета пакеты перенести на машину, не подключенную к интернету, и установить их там.
Будет ли рабоать такой вариант: перенести загруженные пакеты в папку /var/cache/apt/archives/ на второй компьютер?

16 (19.04.2010 18:14:22 отредактировано faithman)

Re: Создание локальных репозиториев Debian GNU/Linux

aivee пишет

А можно создать репозиторий на флешке? Или как еще можно решить такую задачу:
Загруженные из интернета пакеты перенести на машину, не подключенную к интернету, и установить их там.
Будет ли рабоать такой вариант: перенести загруженные пакеты в папку /var/cache/apt/archives/ на второй компьютер?

1.Можно.

2. Тема как раз про это. Читайте. Я использую reprepro.

17 (11.05.2010 16:00:43 отредактировано zenon)

Re: Создание локальных репозиториев Debian GNU/Linux

Стал играться с apt-build - в итоге можно создать локальный репозиторий следующим образом:
dpkg-reconfigure apt-build # попросит задать пути для build и repository
создаст /etc/apt/sources.list.d/apt-build.list

в нем deb file:/где_наш_репо/ apt-build main
не забыть про приоритеты в /etc/apt/preferences
# Package: *
# Pin: release o=apt-build
# Pin-Priority: 990

далее можно не делать apt-build install, а просто скопировать deb пакеты (например из /var/cache/apt/archives) в /где_наш_репо/ и выполнить apt-build build-repository => apt-get update => всё ab
Packeges.gz при этом генерируется....

ы. Насколько я понимаю если поставить Pin-Priority: 1001 = наш репо пригвоздится намертво?

18

Re: Создание локальных репозиториев Debian GNU/Linux

Вообщем, наверное в эту тему вопрос, понадобилось создать локальный репозиторий для squeeze. Все начиналось хорошо, но провайдер немного вырубил инет и все поломалось ac
Запускаем зеркалирование:

debmirror  -v -d testing --nosource --i18n --method=http -h ftp.de.debian.org --ignore-missing-release /home/yazichnik/repo/

И получаем следующее:

Mirroring to /home/yazichnik/repo/ from http://ftp.de.debian.org/debian/
Arches: i386
Dists: testing
Sections: main,contrib,non-free,main/debian-installer
Pdiff mode: use
Will clean up AFTER mirroring.
Attempting to get lock, this might take 2 minutes before it fails.
Get Release files.
[0%] Getting: dists/testing/Release... ok
[0%] Getting: dists/testing/Release.gpg... ok
gpgv: keyblock resource `/home/yazichnik/.gnupg/trustedkeys.gpg': ошибка открытия файла
gpgv: Подпись создана Вск 29 Авг 2010 12:14:15 MSD ключом RSA с ID 55BE302B
[GNUPG:] ERRSIG 9AA38DCD55BE302B 1 2 00 1283069655 9
[GNUPG:] NO_PUBKEY 9AA38DCD55BE302B
gpgv: Не могу проверить подпись: открытый ключ не найден
gpgv: keyblock resource `/home/yazichnik/.gnupg/trustedkeys.gpg': ошибка открытия файла
gpgv: Подпись создана Вск 29 Авг 2010 12:14:15 MSD ключом RSA с ID 55BE302B
gpgv: Не могу проверить подпись: открытый ключ не найден
Release signature does not verify.
The directory for a dist should be its codename, not a suite.
Starting conversion - renaming 'dists/testing' to 'dists/squeeze':
Directory 'dists/squeeze' already exists; aborting conversion.
WARNING: releasing 1 pending lock...

Собственно вопрос, откуда взялся этот самый ключ и почему он стал его требовать? Как это исправить?

19

Re: Создание локальных репозиториев Debian GNU/Linux

Может надо было сначала выполнить

Консоль
gpg --keyserver keyring.debian.org --recv-keys 4F368D5D

20

Re: Создание локальных репозиториев Debian GNU/Linux

Все-равно ругается ac

21

Re: Создание локальных репозиториев Debian GNU/Linux

Может эта ссылка чем поможет.

22

Re: Создание локальных репозиториев Debian GNU/Linux

Вообщем нужно сделать так:
1 - удаляем ./temp
2 - удаляем /main
3 - запускаем

debmirror -v -d testing --nosource --i18n --method=http -h ftp.de.debian.org --ignore-missing-release --ignore-release-gpg --allow-dist-rename /home/yazichnik/repo/

4 - ждем пока все переиндексируется и продолжит дальше качаться
фух, уже думал заново придется делать

23

Re: Создание локальных репозиториев Debian GNU/Linux

Коллеги, пара вопросов по созданию репозитория.
Создал репозиторий под Ubuntu посредством debmirror.
При обновлении ругается на ключ.

Импортировал ключ посредством "gpg --keyserver keyring.debian.org --recv-keys 4F368D5D"

gpg: запрашиваю ключ 4F368D5D с hkp сервера keyring.debian.org
gpg: /home/alex/.gnupg/trustdb.gpg: создана таблица доверий
gpg: ключ 4F368D5D: открытый ключ "Debian Archive Automatic Signing Key (2005) <ftpmaster@debian.org>" импортирован
gpg: не найдено абсолютно доверяемых ключей
gpg: Всего обработано: 1
gpg:               импортировано: 1

но на ключ все-таки ругается:

gpgv: ресурс блока `/home/alex/.gnupg/trustedkeys.gpg': ошибка открытия файла
gpgv: Подпись создана Чтв 29 Апр 2010 21:25:07 MSD ключом DSA с ID 437D05B5
[GNUPG:] ERRSIG 40976EAF437D05B5 17 2 00 1272561907 9
[GNUPG:] NO_PUBKEY 40976EAF437D05B5
gpgv: Не могу проверить подпись: открытый ключ не найден
Release signature does not verify.

Это праблем номер раз ab.

Праблем номер два.
Отредактировал "/etc/apt/source.list", все строки поменял на локальный адрес. Но при запуске "менеджера обновлений" либо посредством apt-get update он смотрит не только на мой новый репозиторий, но еще и на другие - на репозиторий Оперы, например.

Вопрос - где это настраивается?

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

А, ну и третий вопрос - хотелось бы поставить к репозиторию интерфейс, чтобы ставить галочки, "что закачивать" (или, скорее, "что раздавать" юзерам), поскольку не все обновления имеет смысл ставить.

24

Re: Создание локальных репозиториев Debian GNU/Linux

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

25

Re: Создание локальных репозиториев Debian GNU/Linux

первый вопрос: то есть надо просто удалить ./temp и сделать переиндексацию созданного хранилища?
второй вопрос: да, убунта. а как это через конфиги сделать?

26

Re: Создание локальных репозиториев Debian GNU/Linux

Мне помогло просто удалить ./temp
Можно ручками отредактировать /etc/apt/source.list там # комментриует строки, просто ставить перед неиспользуемыми. Есть еще там source.list.d можно еще там поковыряться на тему ненужностей
На счет расписание, сделайте от рута задание в cron и будет то что вы хотите )

27

Re: Создание локальных репозиториев Debian GNU/Linux

./temp удалил.
sources.list модифицировал руками, но все равно при обновлении с другой машины опрашивает и другие сервера тоже, никак не пойму по каким еще конфигам он их собирает.
про cron все понятно ab

28

Re: Создание локальных репозиториев Debian GNU/Linux

Частично разобрался.
Есть директория /etc/apt/sources.list.d, а в ней конфиги всех third-party репозиториев (лаунчпадов).
Думаю теперь, как это "пристыковать" к моему зеркалу.

С crontab разобрался, все качается по часам ab.

29

Re: Создание локальных репозиториев Debian GNU/Linux

перечитал ветку и возникли вопросы
1. У меня в локалке две архитектуры 386 и 64, значит мне надо делать два локальных репо?
2. можно ли монтировать раздел для локального репо на лвм?
3. какой рекомендуется объем раздела для локального репо (386 и 64)?

30

Re: Создание локальных репозиториев Debian GNU/Linux

есть еще пакет approx для создания репы только из используемых пакетов. Работает по принципу кеширующего прокси. Т.е первый скачивает на скорости интернета, а все остальные кому нужен пакет уже на скорости локалки=)