Recherche de site Web

Créez un "référentiel de packages .deb" sur Sourceforge.net à l'aide de l'outil "Reprepro" dans Ubuntu


Reprepro est un petit outil en ligne de commande permettant de créer et de gérer facilement des référentiels .deb. Aujourd'hui, nous allons montrer comment créer facilement un référentiel de paquets Debian à l'aide de reprepro et comment téléchargez-le sur Sourceforge.net à l'aide de la commande rsync.

Étape 1 : installer Reprepro et générer la clé

Tout d’abord, installez tous les packages nécessaires à l’aide de la commande apt-get suivante.

sudo apt-get install reprepro gnupg

Vous devez maintenant générer une clé gpg en utilisant gnupg, pour ce faire, appliquez cette commande.

gpg --gen-key

Il vous posera quelques questions, comme le type de clé que vous souhaitez, combien de temps la clé doit être valide, si vous ne savez pas quoi répondre, cliquez simplement sur Entrée pour les options par défaut (recommandé ).

Bien sûr, il vous demandera un nom d’utilisateur et un mot de passe, gardez-les à l’esprit, car nous en aurons besoin plus tard.

gpg (GnuPG) 1.4.14; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 
Key does not expire at all
Is this correct? (y/N) Y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <[email >"

Real name: ravisaive
Email address: [email 
Comment: tecmint
You selected this USER-ID:
    "Ravi Saive (tecmint) <[email >"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

+++++
gpg: key 2EB446DD marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/2EB446DD 2014-06-24
      Key fingerprint = D222 B1C9 342E 5911 02B1  9147 3BD6 7918 2EB4 46DD
uid                  Ravi Saive (tecmint) <[email >
sub   2048R/7EF2F750 2014-06-24

Maintenant, votre clé sera générée, pour vérifier si c'est le cas, exécutez cette commande en tant que privilèges root.

sudo gpg --list-keys
Exemple de sortie
/home/ravisaive/.gnupg/pubring.gpg
----------------------------------
pub   2048R/2EB446DD 2014-06-24
uid                  ravisaive (tecmint) <[email >
sub   2048R/7EF2F750 2014-06-24

Étape 2 : Créer un référentiel de packages et une clé d'exportation

Nous allons maintenant commencer le travail pour créer le référentiel, vous devez d'abord créer quelques dossiers, notre référentiel sera dans le répertoire /var/www/apt, créons donc quelques dossiers.

sudo su
cd /var/www
mkdir apt
mkdir -p ./apt/incoming 
mkdir -p ./apt/conf
mkdir -p ./apt/key

Vous devez maintenant exporter la clé que vous avez créée vers le dossier du référentiel, exécutez.

gpg --armor --export username [email  >> /var/www/apt/key/deb.gpg.key

Remarque : remplacez le nom d'utilisateur par le nom d'utilisateur que vous avez saisi à l'étape ci-dessus, et [email  par votre adresse e-mail.

Nous devons créer un fichier appelé « distributions » dans /var/www/apt/conf.

touch /var/www/apt/conf/distributions

Ajoutez ces lignes suivantes au fichier de distributions et enregistrez le fichier.

Origin: (yourname)
Label: (name of repository)
Suite: (stable or unstable)
Codename: (the codename for the distribution you are using, like trusty)
Version: (the version for the distribution you are using, like 14.04)
Architectures: (the repository packages  architecture, like i386 or amd64)
Components: (main restricted universe multiverse)
Description: (Some information about the repository)
SignWith: yes

Ensuite, nous devrons créer l’arborescence du référentiel, pour ce faire, exécutez ces commandes.

reprepro --ask-passphrase -Vb /var/www/apt export
Exemple de sortie
Created directory "/var/www/apt/db"
Exporting Trusty...
Created directory "/var/www/apt/dists"
Created directory "/var/www/apt/dists/Trusty"
Created directory "/var/www/apt/dists/Trusty/universe"
Created directory "/var/www/apt/dists/Trusty/universe/binary-i386"
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created '/var/www/apt/dists/Trusty/Release.gpg.new'
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created '/var/www/apt/dists/Trusty/InRelease.new'

Étape 3 : ajouter des packages au référentiel nouvellement créé

Préparez maintenant vos packages .deb à ajouter au référentiel. Allez dans le répertoire /var/www/apt, vous devez le faire à chaque fois que vous souhaitez ajouter des packages.

cd /var/www/apt
reprepro --ask-passphrase -Vb . includedeb Trusty /home/ravisaive/packages.deb

Remarque : remplacez trusty par le nom de code que vous avez entré pour le référentiel dans le fichier de distribution, puis remplacez /home/username/package .deb avec le chemin d'accès au package, il vous sera demandé la phrase secrète à saisir.

Exemple de sortie
/home/ravisaive/packages.deb : component guessed as 'universe'
Created directory "./pool"
Created directory "./pool/universe"
Created directory "./pool/universe/o"
Created directory "./pool/universe/o/ojuba-personal-lock"
Exporting indices...
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created './dists/Trusty/Release.gpg.new'
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created './dists/Trusty/InRelease.new'

Votre package est ajouté au référentiel, pour le supprimer.

reprepro --ask-passphrase -Vb /var/www/apt remove trusty  package.deb

Et bien sûr, vous devez modifier la commande avec le nom de votre package et le nom de code du référentiel.

Étape 4 : Télécharger le référentiel sur Sourceforge.net

Pour télécharger le référentiel sur Sourceforge.net, vous devez bien sûr y avoir un compte en cours d'exécution et un projet en cours d'exécution. Supposons que vous souhaitiez télécharger le référentiel sur http://sourceforge. .net/projects/myfoo/testrepository où myfoo est le nom de votre projet (nom UNIX, pas l'URL, pas le titre), et testrepository est le dossier dans lequel vous souhaitez télécharger les fichiers, nous le ferons en utilisant rsync commande.

rsync -avP -e ssh /var/www/apt/ [email :/home/frs/project/myfoo/testrepository/

Remarque : remplacez le nom d'utilisateur par votre nom d'utilisateur sur sourceforge.net et myfoo par le nom UNIX de votre projet et le référentiel de test par le dossier dans lequel vous souhaitez stocker les fichiers.

Maintenant que votre référentiel est téléchargé sur http://sourceforge.net/projects/myfoo/testrepository, pour l'ajouter à votre système installé, vous devez d'abord importer la clé du référentiel, elle sera dans < b>/var/www/apt/key/deb.gpg.key, mais c'est un chemin local et les utilisateurs de votre référentiel ne pourront pas l'ajouter à leurs systèmes, c'est pourquoi nous le ferons importer la clé depuis sourceforge.net.

sudo su
wget -O - http://sourceforge.net/projects/myfoo/testrepository/apt/key/deb.gpg.key | apt-key add -

Vous pouvez maintenant ajouter facilement le référentiel à votre système, ouvrir /etc/apt/sources.list et ajouter cette ligne.

deb http://sourceforge.net/projects/myfoo/testrepository/apt/key/deb.gpg.key trusty main

Remarque : remplacez myfoo par le nom UNIX de votre projet, trusty par le nom de code de votre référentiel, testrepository par le dossier dans lequel vous avez téléchargé les fichiers et main par les composants du référentiel auxquels vous avez ajouté le fichier des distributions.

Ensuite, exécutez ce qui suit pour mettre à jour la liste des référentiels.

sudo apt-get update

Félicitations ! Votre référentiel est actif ! Vous pouvez désormais installer facilement des packages à partir de celui-ci si vous le souhaitez.