Я хотел бы сделать зеркало только марионеточного клиента и его зависимостей для Ubuntu Precise, но размещенного на моем хосте CentOS 6.
Если я сделаю
cd /var/ftp
wget -A deb -r -np -nH --cut-dirs=1 http://apt.puppetlabs.com/pool/precise/dependencies/
wget -A deb -r -np -nH --cut-dirs=1 http://apt.puppetlabs.com/pool/precise/main/
а затем на Ubuntu Precise добавьте следующее в /etc/yum.repos.d/mypuppet.repo
deb ftp://puppet.example.com precise main
deb ftp://puppet.example.com precise dependencies
тогда я получаю
W: Failed to fetch ftp://puppet.example.com/dists/precise/dependencies/binary-amd64/Packages Unable to fetch file, server said 'Failed to open file. '
Вопрос
Есть ли инструмент или инструкции по размещению репозитория deb / apt на CentOS?
Я бы сказал, что подходящий инструмент для этой задачи - debmirror(1)
, который доступен в репозиториях CentOS.
Убедитесь, что вы импортируете ключи GPG репозитория puppetlabs с сервера ключей:
# gpg --recv-keys 1054B7A24BD6EC30
gpg: requesting key 4BD6EC30 from hkp server pool.sks-keyservers.net
gpg: key 4BD6EC30: public key "Puppet Labs Release Key (Puppet Labs Release Key) <info@puppetlabs.com>" imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0 valid: 3 signed: 4 trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1 valid: 4 signed: 6 trust: 3-, 0q, 0n, 0m, 1f, 0u
gpg: depth: 2 valid: 1 signed: 1 trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2014-05-11
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Затем возьмите пакеты из их репозитория:
# debmirror --check-gpg --keyring=/path/to/keyring.gpg --method=http \
--root=/ --arch amd64 --dist precise --section main,dependencies \
--nosource --host apt.puppetlabs.com --progress /path/to/local/repo
Таким образом вы обеспечите правильную структуру каталогов и наличие всех ожидаемых файлов.
Вы синхронизировали только файлы deb, вы забыли получить определение списка пакетов, вы можете получить его по адресу http://apt.puppetlabs.com/dists/precise/ .
Я действительно предлагаю вам синхронизировать весь репозиторий с:
rsync -av --copy-links --del rsync://apt.puppetlabs.com/packages/apt/ /var/ftp/
С Rsync будет проще поддерживать файлы в актуальном состоянии. Я почти уверен, что если у вас есть файлы deb И определение пакета, это сработает.
http://apt.puppetlabs.com/README.txt
хорошего дня.