LinuxForum.Fans
Тема

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

Автор: faithman 45 сообщений 58660 просмотров
#56

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

text

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

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

text
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"
Все. Репозиторий готов. Что бы добавить пакет:

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

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

text
sudo apt-key add /tmp/key.asc
#314

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

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

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

#524

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

#1165

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

#1387

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

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

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

#1785

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

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

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

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

#2143

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

#2152

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

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

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

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

:/

#2266
CryptSpirit написал:
[quote=CryptSpirit]спрашивал про строку в файле /etc/apt/source.list

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

#2289

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

#8438

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

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

ситуация такова, начальство поставило задачу, автоматизировать установку 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

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

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

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

#29553

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

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

1.Можно.

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

#39809

Стал играться с 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 => всё :)
Packeges.gz при этом генерируется....

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

#73381

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

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

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

text

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...

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

#73384

Может надо было сначала выполнить
[console]gpg --keyserver keyring.debian.org --recv-keys 4F368D5D[/console]

#73385

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

Войдите или зарегистрируйтесь, чтобы ответить.