Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: GPG Ключ для Локального Репозитария  (Прочитано 28408 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nornad

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #15 : 09 Января 2008, 18:03:26 »
Спасибо за решение.
И сразу вопрос:
У меня в кроне прописан скрипт, который каждый день копирует пакеты из кеша и пересобирает Packages. Надо ли мне после этой процедуры делать что-то из описанного, кроме apt-get update ?

Оффлайн nornad

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #16 : 09 Января 2008, 18:11:10 »
Да, и ещё. Можно ли переносить папку с пакетами в другое место (на винте или вообще записать на болванку) и не придётся ли после этого перегенерить Packages и/или Release ?

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #17 : 18 Мая 2008, 22:50:38 »
Небольшая поправка к скрипту:
Цитировать
#!/bin/bash

# Create the Packages file

dpkg-scanpackages . /dev/null > Packages
cat Packages | gzip -9c > Packages.gz #создаем зипованный вариант списка пакетов

# Create the Release file

cat > Release <<END
Archive: hardy
Version: 8.04  # на всякий случай версию
Origin: Ubuntu
Label: My local Ubuntu Hardy repository
Architecture: i386
MD5Sum:

# d41d8cd98f00b204e9800998ecf8427e                0 Release #нельзя вычислить md5sum самого себя. эта строка здесь лишняя.
END

md5sum=$(md5sum Packages | cut -d ' ' -f1)
sizeinbytes=$(ls -l Packages | cut -d ' ' -f5)

printf " "$md5sum" %16d Packages" $sizeinbytes >> Release

#хэшируем также и .gz файл
md5sum=$(md5sum Packages.gz | cut -d ' ' -f1)
sizeinbytes=$(ls -l Packages.gz | cut -d ' ' -f5)

printf " "$md5sum" %16d Packages.gz" $sizeinbytes >> Release

# Create the Release.gpg file

gpg -bao Release.gpg Release

# Give instructions for adding the repository information to the sources.list file

echo
echo "To use this repository, you should have in your /etc/apt/sources.list file"
echo "(preferably at the top) the following line:"
echo
repodir="file://"$(pwd)
echo "deb "$repodir" /"
echo

Из репозитория, созданного таким образом, успешно обновил Ubuntu 7.10 в Ubuntu 8.04.
Единственное, когда утилита обновления сообщила, что репозитории третьих сторон отключены, в этот момент я их (т.е. этот репозиторий) внаглую включил. :)
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн hardir

  • Участник
  • *
  • Сообщений: 124
  • open source рулит
    • Просмотр профиля
    • маленький блог бедного программера
Re: GPG Ключ для Локального Репозитария
« Ответ #18 : 16 Июня 2008, 17:38:37 »
А не подскажите как организовать удаление старых версий пакетов, которые появляются в локальном зеркале при создании его из кэша apt?
Т.е. имеется папка, в ней подпапки (a,b,c...) надо прошарить все подпапки и при обнаружении идентичных пакетов удалить старую версию.

Оффлайн Yurok

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #19 : 16 Июля 2008, 16:54:26 »
Вроде всё сделал как здесь написано, создался файл Packages, Packages.gz. Создал еще Packages.bz2 (в одной из очередных попыток синаптик запросил такой файл). Создал ключ, подписал Release. Импортировал в apt публичный ключ. Всё разложил вроде куда надо на своём веб-сервере. Но при обновлении списков репозиториев выскакивает сообщение:
W: Ошибка: http://www.internal hardy Release: Следующие подписи неверные: NODATA 1 NODATA 2
Соответственно репозиторий считается чужим и из него ничего берётся.
И ключ новый создавал, и делал тоже самое на другой машине, результат тот-же.
Не подскажите, в чём могут быть грабли?

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #20 : 16 Июля 2008, 21:12:07 »
Не подскажите, в чём могут быть грабли?
Не подскажем пока не покажешь файл Release.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн Yurok

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #21 : 17 Июля 2008, 15:13:04 »
Да на вид Release вроде нормальный
Archive: hardy
Version: 8.04
Origin: Ubuntu
Label: Local Ubuntu Hardy repository
Architecture: i386
MD5Sum:

 c87f2cbaba376ec68af52185e2a1ff9a          1933149 hardy/main/binary-i386/Packages
 c2cc28bc73d9cf12320776d84b58903b           451730 hardy/main/binary-i386/Packages.gz
 3243286c6e98b360ec8ae2debeda42b4           334011 hardy/main/binary-i386/Packages.bz2
и файл с подписью рядышком положил

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #22 : 17 Июля 2008, 17:51:49 »
1. Возможно проблема в пустой строке между MD5Sum и первой суммой? У меня её нет.

2. Пути к файлам верно указаны?
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн Yurok

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #23 : 21 Июля 2008, 11:45:42 »
в общем разобрался.
1. Пустая строка после MD5 роли не играет
2. Проблема была действительно с путями. Пытался сделать по аналогии с официальным репозитарием. Т.е. в списке источников писал deb http://www.internal/deb hardy main. Ну и начиналось скакание по подкаталогам. В логах веб-сервера посмотрел на свистопляску, плюнул и поставил в списке источников вместо hardy main  слэш (/). Соответственно переправил Packages и Release. Всё сразу и заработало. Позже разберусь досконально с их структурой каталогов, может и сделаю по другому. Но скорее всего начну потихоньку закачивать копию их репозитария.

P.S. В скрипте в printf " "$md5sum" %16d Packages.gz" $sizeinbytes >> Release не мешало-бы добавить \n, т.е. printf " "$md5sum" %16d Packages.gz\n" $sizeinbytes >> Release . Скорее всего у всех и без него работает (иначе давно-бы кто-то да поправил), но  Release с ним смотрится красивее, если в нём указывается более одного файла.

Оффлайн ubuntu lamer

  • Активист
  • *
  • Сообщений: 612
  • BY
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #24 : 13 Августа 2008, 03:38:32 »
Странное дело, но команды

printf " "$md5sum" %16d Packages.gz" $sizeinbytes >> Release
и

printf " "$md5sum" %16d Packages" $sizeinbytes >> Release
пишут в начало файла Release, перезаписывая первые строки и получается что-то наподобие этого (для первого варианта скрипта):

945fed42daf59d33dfba2b1046a59b57          2192235 Packagessitory
Architecture: i386
MD5Sum:
 d41d8cd98f00b204e9800998ecf8427e                0 Release

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

gpg -bao Release.gpg Release
« Последнее редактирование: 13 Августа 2008, 03:40:27 от ubuntu lamer »
It began in Afrika

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: GPG Ключ для Локального Репозитария
« Ответ #25 : 07 Октября 2008, 20:39:04 »
Народ. Ведь при работе скрипта каждый раз создается  ключ. Его опять вручную надо добавлять и заменять существующий?
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн ping_Win

  • Любитель
  • *
  • Сообщений: 86
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #26 : 15 Октября 2008, 19:07:21 »
Скрипт основан на использовании dpkg-scanpackages, а можно его как-нибудь приспособить для apt-maove update?

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: GPG Ключ для Локального Репозитария
« Ответ #27 : 15 Октября 2008, 20:43:49 »
У меня при обновлении ругался на отсутствие Pacages по пути dists/hardy/partner/binary-i386
хотя репозиторий лежал в папке  /home/apt/
Пришлось создать репозиторий в папке  /home/apt/dists/hardy/partner/binary-i386
слегка переделать скрипт
И добавить в /etc/apt/sources.list строчку типа
deb file:///home/apt/ hardy partner

Цитировать
#!/bin/bash

# Create the Packages file

dpkg-scanpackages . /dev/null > Packages
cat Packages | gzip -9c > Packages.gz #создаем зипованный вариант списка пакетов
cp Packages.gz /home/apt/dists/hardy/partner/binary-i386 # скопировать куда надо

# Create the Release file

cat > Release <<END
Archive: hardy
Version: 8.04  # на всякий случай версию
Origin: Ubuntu
Label: My local Ubuntu Hardy repository
Architecture: i386
MD5Sum:
# d41d8cd98f00b204e9800998ecf8427e                0 Release
END

md5sum=$(md5sum Packages | cut -d ' ' -f1)
sizeinbytes=$(ls -l Packages | cut -d ' ' -f5)

printf " "$md5sum" %16d Packages" $sizeinbytes >> Release

#хэшируем также и .gz файл
md5sum=$(md5sum Packages.gz | cut -d ' ' -f1)
sizeinbytes=$(ls -l Packages.gz | cut -d ' ' -f5)

printf " "$md5sum" %16d Packages.gz" $sizeinbytes >> Release

# Create the Release.gpg file

gpg -bao Release.gpg Release

# Give instructions for adding the repository information to the sources.list file

echo
echo "To use this repository, you should have in your /etc/apt/sources.list file"
echo "(preferably at the top) the following line:"
echo
repodir="file://"$(pwd)
echo "deb "$repodir"/ hardy partner"
echo
Так вроде работает и не ругается.
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн Lonely_@ss

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: GPG Ключ для Локального Репозитария
« Ответ #28 : 01 Ноября 2008, 12:01:30 »
Ни один из вариантов не дал результата :( default pgp key вроде установился, только подписать его не могу.
вывод sudo apt-get update:
W: A error occurred during the signature verification.
The repository is not updated and the previous index files will be used.GPG error: file:  Release:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <мой ключик>

W: Failed to fetch file:///home/apt/dists/intrepid/partner/binary-i386/Release

Edite: ха-ха, удалось разрулить всё совсем по-нубски: тупо скопировал старый кеш пакетов в /var/cache/apt/archives
и теперь у меня все тянется оттуда, если в инете нет новых версий!)))
« Последнее редактирование: 01 Ноября 2008, 12:14:43 от Lonely_@ss »

Оффлайн marxhome

  • Любитель
  • *
  • Сообщений: 99
  • MegaMusicMan
    • Просмотр профиля
    • MarX Home
Re: GPG Ключ для Локального Репозитария
« Ответ #29 : 17 Февраля 2009, 04:36:15 »
Делал все по инструкции. Нигде не возникает проблем и ошибок. Но как только хочу обновить информацию о пакетах так вот:

Файл `Release.gpg' существует. Перезаписать (y/N)? y

Для использования этого репозитория Вы должны добавить в файл /etc/apt/sources.list
(желательно в начале) следующую строку:

deb file:///home/avr/repo /

avr@runtu:~/repo$ sudo apt-get update
Получено:1 file:  Release.gpg [189B]
Ign file:  Translation-ru
Получено:2 file:  Release [284B]
W: Не удалось загрузить file:///home/avr/repo/Release  Unable to find expected entry  Packages in Meta-index file (malformed Release file?)

E: Некоторые индексные файлы не загрузились, они были проигнорированы или вместо них были использованы старые версии

Что делать??? Куда бежать???  :'(
Acer Extensa 5220/CM560 2.2Ghz/2Gb RAM/160Gb/15.4"
Acer Aspire One D250/Atom 1.6Ghz/1Gb RAM/160Gb

 

Страница сгенерирована за 0.06 секунд. Запросов: 25.