Zoeken op website

Maak een ".deb Package Repository" op Sourceforge.net met behulp van de "Reprepro" tool in Ubuntu


Reprepro is een klein opdrachtregelprogramma waarmee u eenvoudig .deb-repository's kunt maken en beheren. Vandaag laten we zien hoe u eenvoudig een Debian-pakketrepository's kunt maken met reprepro en hoe u dit kunt doen upload het naar Sourceforge.net met de opdracht rsync.

Stap 1: Installeer Reprepro en genereer sleutel

Installeer eerst alle benodigde pakketten met behulp van de volgende opdracht apt-get.

sudo apt-get install reprepro gnupg

Nu moet je een gpg-sleutel genereren met behulp van gnupg. Om dit te doen, pas je deze opdracht toe.

gpg --gen-key

Er worden enkele vragen gesteld, zoals het soort sleutel dat u zoekt, hoe lang de sleutel geldig moet zijn. Als u niet weet wat u moet antwoorden, klikt u gewoon op Enter voor de standaardopties (aanbevolen ).

Natuurlijk zal het u om een gebruikersnaam en een wachtwoord vragen. Houd deze in gedachten, want we hebben deze later nodig.

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

Nu wordt uw sleutel gegenereerd. Om te controleren of dit het geval is, voert u deze opdracht uit als rootrechten.

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

Stap 2: Maak een pakketrepository en exportsleutel

We beginnen nu met het werk om de repository te maken. Eerst moet je een aantal mappen maken. Onze repository bevindt zich in de map /var/www/apt, dus laten we een paar mappen maken.

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

U moet nu de door u gemaakte sleutel exporteren naar de repositorymap, uitvoeren.

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

Opmerking: Vervang gebruikersnaam door de gebruikersnaam die u in de bovenstaande stap heeft ingevoerd, en [email  door uw e-mailadres.

We moeten een bestand maken met de naam “distributies ” in /var/www/apt/conf.

touch /var/www/apt/conf/distributions

Voeg de volgende regels toe aan het distributiebestand en sla het bestand op.

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

Vervolgens moeten we de repositoryboom maken. Voer hiervoor deze opdrachten uit.

reprepro --ask-passphrase -Vb /var/www/apt export
Voorbeelduitvoer
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'

Stap 3: Voeg pakketten toe aan de nieuw gemaakte repository

Bereid nu uw .deb-pakketten voor om aan de repository te worden toegevoegd. Ga naar de map /var/www/apt. Dit moet u elke keer doen als u pakketten wilt toevoegen.

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

Opmerking: vervang trusty door de codenaam die je hebt ingevoerd voor de repository in het distributiebestand, en vervang /home/username/package .deb met het pad naar het pakket, wordt u gevraagd om de wachtwoordzin in te voeren.

Voorbeelduitvoer
/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'

Uw pakket wordt aan de repository toegevoegd om het te verwijderen.

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

En natuurlijk moet u de opdracht wijzigen met uw pakketnaam en de codenaam van de repository.

Stap 4: Upload de repository naar Sourceforge.net

Om de repository naar Sourceforge.net te uploaden, heb je daar uiteraard een actief account nodig, en een lopend project. Laten we aannemen dat je de repository wilt uploaden naar http://sourceforge .net/projects/myfoo/testrepository waarbij myfoo uw projectnaam is (UNIX-naam, niet URL, niet de titel), en testrepository de map is waarnaar u de bestanden wilt uploaden. We zullen dit doen met rsync commando.

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

Opmerking: Vervang gebruikersnaam door uw gebruikersnaam op sourceforge.net en myfoo door uw project UNIX-naam en testrepository door de map waarin u de bestanden wilt opslaan.

Nu uw repository is geüpload naar http://sourceforge.net/projects/myfoo/testrepository, om deze aan uw geïnstalleerde systeem toe te voegen, moet u eerst de repositorysleutel importeren, deze zal in < b>/var/www/apt/key/deb.gpg.key, maar dat is een lokaal pad en de gebruikers van uw repository kunnen het niet aan hun systemen toevoegen. Daarom zullen wij dat doen het importeren van de sleutel van sourceforge.net.

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

U kunt de repository nu eenvoudig aan uw systeem toevoegen, open /etc/apt/sources.list en voeg deze regel toe.

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

Opmerking: Vervang myfoo door de UNIX-naam van uw project, trusty door de codenaam van uw repository, testrepository door de map waarnaar u de bestanden heeft geüpload, en main door repositorycomponenten waaraan u heeft toegevoegd het distributiebestand.

Voer vervolgens het volgende uit om de lijst met repository's bij te werken.

sudo apt-get update

Gefeliciteerd! Je repository is actief! U kunt er nu eenvoudig pakketten van installeren als u dat wilt.