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.