Wie kann ich ein Deb / Apt-Repo unter CentOS hosten?


7

Ich möchte nur den Puppet-Client und seine Abhängigkeiten für Ubuntu Precise spiegeln, aber auf meinem CentOS 6-Host gehostet.

Wenn ich mache

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/

und dann auf einem Ubuntu Precise Folgendes hinzufügen /etc/yum.repos.d/mypuppet.repo

deb ftp://puppet.example.com precise main
deb ftp://puppet.example.com precise dependencies

dann bekomme ich

W: Failed to fetch ftp://puppet.example.com/dists/precise/dependencies/binary-amd64/Packages  Unable to fetch file, server said 'Failed to open file.  '

Frage

Gibt es ein Tool oder eine Anleitung zum Hosten eines Deb / Apt-Repos unter CentOS?


1
Aus Neugier ... existiert diese Datei tatsächlich? Können Sie es manuell abrufen? Wenn es tut vorhanden ist , wird der FTP - Server alle Fehler Protokollierung?
Larsks

Antworten:


7

Ich würde sagen, das geeignete Tool für diese Aufgabe ist das debmirror(1), das in den CentOS-Repositorys verfügbar ist.

Stellen Sie sicher, dass Sie die GPG-Schlüssel des Puppetlabs-Repositorys von einem Schlüsselserver importieren:

# 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)

Nehmen Sie dann die Pakete aus ihrem Repository:

# 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

Auf diese Weise stellen Sie sicher, dass die Verzeichnisstruktur korrekt ist und alle erwarteten Dateien vorhanden sind.


4

Sie haben nur die Deb-Dateien synchronisiert und vergessen, die Paketlistendefinition abzurufen. Sie finden sie unter http://apt.puppetlabs.com/dists/precise/ .

Ich empfehle Ihnen wirklich, das gesamte Repository zu synchronisieren mit:

rsync -av --copy-links --del rsync://apt.puppetlabs.com/packages/apt/ /var/ftp/

Mit Rsync ist es einfacher, Ihre Dateien auf dem neuesten Stand zu halten. Ich bin mir ziemlich sicher, wenn Sie Deb-Dateien und die Paketdefinition haben, wird es funktionieren.

http://apt.puppetlabs.com/README.txt

Einen schönen Tag noch.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.