Opret et ".deb Package Repository" på Sourceforge.net ved hjælp af "Reprepro" -værktøjet i Ubuntu


Reprepro er et lille kommandolinjeværktøj til nemt at oprette og administrere .deb repositories. I dag viser vi, hvordan man opretter en Debian-pakke repositories nemt ved hjælp af reprepro, og hvordan man upload det til Sourceforge.net ved hjælp af kommandoen rsync .

Trin 1: Installer Reprepro og generer nøgle

Installer først alle de nødvendige pakker ved hjælp af følgende apt-get-kommando.

$ sudo apt-get install reprepro gnupg

Nu skal du generere en gpg-nøgle ved hjælp af gnupg . For at gøre dette skal du anvende denne kommando.

$ gpg --gen-key

Det vil stille dig nogle spørgsmål, som den slags nøgle, du vil have, hvor længe nøglen skal være gyldig. Hvis du ikke ved hvad du skal svare, skal du bare klikke på Enter for standardindstillingerne (anbefales ).

Selvfølgelig vil det bede dig om et brugernavn og en adgangskode, husk dem, for vi har brug for dem senere.

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 genereres din nøgle for at kontrollere, om det er tilfældet, skal du køre denne kommando som en root-rettighed.

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

Trin 2: Opret et pakkelager og en eksportnøgle

Vi starter arbejdet nu med at oprette lageret, først skal du oprette nogle mapper, vores lager vil være i mappen /var/www/apt , så lad os oprette nogle mapper.

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

Du skal nu eksportere den nøgle, du oprettede til arkivmappen, kør.

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

Bemærk: Udskift brugernavn med det brugernavn, du indtastede i ovenstående trin, og [email med din email.

Vi er nødt til at oprette en fil kaldet “ distributioner ” inde i /var/www/apt/conf .

# touch /var/www/apt/conf/distributions

Tilføj disse følgende linjer til distributionsfilen, og gem filen.

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

Derefter bliver vi nødt til at oprette lagertræet, for at gøre dette skal du køre disse kommandoer.

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

Trin 3: Tilføj pakker til nyoprettet lager

Forbered nu dine .deb -pakker, der skal føjes til lageret. Gå til mappen /var/www/apt , du skal gøre dette hver gang du vil tilføje pakker.

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

Bemærk: Udskift pålidelig med det kodenavn, du indtastede for lageret i distributionsfilen, og erstat /home/username/package.deb med stien til pakken, du vil blive bedt om adgangskoden for at indtaste.

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

Din pakke føjes til lageret for at fjerne den.

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

Og selvfølgelig skal du ændre kommandoen med dit pakkenavn og lagerets kodenavn.

Trin 4: Upload arkiv til Sourceforge.net

For at uploade lageret til Sourceforge.net skal du selvfølgelig have en kørende konto der og et kørende projekt, lad os antage, at du vil uploade lageret til http:/sourceforge .net/projects/myfoo/testrepository hvor myfoo er dit projektnavn (UNIX-navn, ikke URL, ikke titel), og testrepository er den mappe, hvor du vil uploade filerne til. Vi gør dette ved hjælp af rsync kommando.

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

Bemærk: Udskift brugernavn med dit brugernavn på sourceforge.net og myfoo med dit projekt UNIX-navn og testlokale med den mappe, du vil gemme filerne i.

Nu er dit arkiv uploadet til http://sourceforge.net/projects/myfoo/testrepository . For at føje det til dit installerede system skal du først importere lagernøglen, det vil være i < b> /var/www/apt/key/deb.gpg.key , men det er en lokal sti, og brugerne til dit lager kan ikke tilføje det til deres systemer, det er derfor, vi bliver importerer nøglen fra sourceforge.net.

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

Du kan nu nemt tilføje lageret til dit system, åbne /etc/apt/sources.list og tilføje denne linje.

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

Bemærk: Udskift myfoo med dit projekt UNIX-navn, troværdigt med dit arkivkodenavn, testposition med den mappe, du uploadede filerne til, og hoved med arkivkomponenter, du tilføjede til distributionsfilen.

Kør derefter følgende for at opdatere lagringslisten.

$ sudo apt-get update

Tillykke! Dit lager er aktivt! Du kan nu nemt installere pakker fra det, hvis du vil.