Je souhaite configurer un référentiel APT sur un serveur qui fournira quelques packages.
Existe-t-il un moyen de le configurer sans installer de logiciel sur le serveur?
Comment les fichiers doivent-ils être organisés?
Edit: Je dois faire quelque chose de mal ... quelqu'un peut-il m'aider s'il vous plaît? J'ai le référentiel sur http://quickmediasolutions.com/apt/dists
Je ne sais pas où ni quoi, mais quelque chose est mal configuré. Je n'ai actuellement qu'un seul paquet et c'est pour toutes les architectures.
Voici ce qui a été ajouté à mon /etc/apt/sources.list
:
deb http://quickmediasolutions.com/apt stable main
apt
package-management
repository
Nathan Osman
la source
la source
Réponses:
La configuration d'un référentiel trivial est très facile avec dpkg-scanpackages. Cette page explique comment configurer un référentiel trivial, et celle-ci explique comment l’utiliser (faites défiler jusqu’à l’exemple 4).
la source
deb http://quickmediasolutions.com/apt binary/
.Il suffit de configurer un référentiel simple mais signé sur un serveur Web. Étant donné que la plupart des autres didacticiels sont un peu obsolètes ou fastidieux, je vais essayer de reproduire la procédure ici. La configuration initiale prend un peu d'effort, mais le script de construction simple facilite la gestion. Et vous pouvez simplement déposer de nouveaux
*.deb
fichiers, puis mettre à jour ou laisser un travail cron le gérer.Générer des clés de signature
Vous devez d’abord créer une
gpg
clé de signature pour les packages et votre référentiel. Faites-en une (4) clé de signature RSA, sans mot de passe, et donnez-lui une clé unique$KEYNAME
lorsque demandé. (D'autres exemples supposent "dpkg1
" comme nom clé.)J'ai dit pas de mot de passe, parce que votre serveur web n'a pas de singe intégré pour le taper à plusieurs reprises. Et les packages et le référentiel signés sont uniquement destinés à satisfaire les plaintes des responsables de la mise à jour à ce sujet. Il suffit de télécharger les deux clés dans le nouveau
/apt/
répertoire du référentiel sur votre serveur Web, mais de supprimer lasecret.gpg
clé après l’ initialisation.Mettre à jour le script CGI
Voici le script shell / CGI de mise à jour simple:
Les trois
gpg
lignes ne doivent être exécutées qu'une seule fois pour initialiser la configuration de GPG dans un répertoire$GNUPGHOME
(au-dessus de la racine du document). Ne supprimez que lessecret.gpg
succès ultérieurs.Une caractéristique unique de ce petit script shell est qu’il accepte tous les
*.deb
fichiers dans lesquels vous déposez des fichiers, mais recherche également de manière récursive (à partir du niveau supérieur) les autres, puis les relie par un lien symboliqueOptions FollowSymLinks
.Vous pouvez exécuter ce script manuellement en tant que CGI ou par tâche cron. Mais cachez-le, ou mieux encore, déplacez-le hors de la racine du document.
Comme il s'agit d'un référentiel apt "trivial", il a besoin de l'
apt-sources.list
entrée suivante :Cela convient aux référentiels à architecture unique, et si vous ne vous attendez pas à des centaines de paquets.
Signature de colis
Signer vos paquets individuels est également trivial, une fois que vous avez configuré vos clés gpg:
(Cette opération doit être effectuée sur le poste de travail sur lequel les packages sont générés, et non sur le serveur Web du référentiel.)
Référentiel non signé
Si vous n'avez pas besoin de packages signés, vous pouvez alors réduire le script de mise à jour à:
Qui peut toujours être utilisé par les utilisateurs moyens, mais nécessite un indicateur personnalisé pour
apt.sources
:Mais s'il vous plaît, n'utilisez pas le
trusted=yes
drapeau habituellement pour tout, ou si vous n'êtes pas sûr de l'origine du paquet.Pour la facilité d'utilisation
Pour les utilisateurs finaux, il suffit de déposer un
HEADER.html
dans le répertoire du référentiel. Les Apachesmod_auto_index
ajouteront cette note:Des alternatives
De nos jours, il existe quelques outils pour automatiser la gestion des référentiels. Et il existe même des hébergeurs en ligne et des services de construction de paquets ( gemfury , packagecloud , bintray, etc.)
Une alternative plutôt pratique est prm . C'est un script Ruby, qui construit des pensions complexes APT et YUM. (Mais espérons simplement que RPM s'éteindra bientôt dans un instant ..) - Il vaut mieux l'installer
gem install prm
.Et j'ai aussi écrit un petit script pour automatiser cela de la même façon: http://apt.include-once.org/apt-phparchive - S'il vous plaît, notez qu'il n'est pas trop robuste et écrit en PHP (pour une fois, c'est une coïncidence), et était à l'origine destiné aux ensembles DEB, et RPM-over-APT et Phar.
Étant donné que cela est étroitement lié à la question initiale, il existe également des outils permettant de créer plus facilement des paquets Debian. Un peu dépassé: EPM . Beaucoup plus contemporain: FPM . Et ma fourchette personnelle: XPM (approche plus paresseuse pour empaqueter des applications en langage de script.)
la source
wget …/public.gpg -O- | apt-key add -
dpkg-scanpackages -m
pourrait suffire. Il listera toujours toutes les architectures dans le même fichier Release. Mais tant que chaque .deb a un nom unique / ou est stocké dans des sous-répertoires distincts (amd64 /, all /), il faut que cela fonctionne. Sinon, optez pour l'un des outils de référentiel les plus complexes.Oui. Tu peux le faire. Vous avez juste besoin d'organiser les fichiers de la bonne manière et de créer les fichiers d'index. Si vous placez la structure de répertoires à la racine du document de votre serveur Web, vous pouvez uniquement accéder aux packages via le serveur Web.
Voici une description détaillée de la manière dont les fichiers doivent être organisés et de la manière dont les fichiers d’index sont créés.
Vous pouvez également utiliser un outil appelé reprepro si vous souhaitez installer ce package. Cela rendra l'administration un peu plus pratique.
la source
Vous pouvez peut-être aussi envisager un PPA Launchpad
la source
Pour toute personne confrontée à cette erreur après avoir suivi la réponse de Mario:
faire ce qui suit:
Je mets mes
*.deb
fichiers dans undebs
dossier.la source