Sukurkite „.deb paketų saugyklą“ svetainėje Sourceforge.net naudodami „Reprepro“ įrankį Ubuntu


Reprepro yra mažas komandų eilutės įrankis, leidžiantis lengvai kurti ir valdyti .deb saugyklas. Šiandien parodysime, kaip lengvai sukurti Debian paketų saugyklas naudojant reprepro ir kaip įkelkite jį į Sourceforge.net naudodami komandą rsync.

1 veiksmas: įdiekite „Reprepro“ ir sugeneruokite raktą

Pirmiausia įdiekite visus reikiamus paketus naudodami šią komandą apt-get.

sudo apt-get install reprepro gnupg

Dabar turite sugeneruoti gpg raktą naudodami gnupg. Norėdami tai padaryti, taikykite šią komandą.

gpg --gen-key

Jis užduos jums keletą klausimų, pvz., kokio tipo rakto norite, kiek laiko turėtų galioti raktas, jei nežinote, ką atsakyti, tiesiog spustelėkite Enter, kad pamatytumėte numatytąsias parinktis (rekomenduojama ).

Žinoma, jis paprašys jūsų vartotojo vardo ir slaptažodžio, atminkite juos, nes mums jų prireiks vėliau.

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

Dabar jūsų raktas bus sugeneruotas, kad patikrintumėte, ar taip, paleiskite šią komandą kaip root teises.

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

2 veiksmas: sukurkite paketų saugyklą ir eksportuokite raktą

Pradėsime dabar, kad sukurtume saugyklą, pirmiausia turite sukurti keletą aplankų, mūsų saugykla bus /var/www/apt kataloge, taigi sukurkime keletą aplankų.

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

Dabar turite eksportuoti sukurtą raktą į saugyklos aplanką, paleisti.

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

Pastaba: pakeiskite naudotojo vardą naudotojo vardu, kurį įvedėte atlikdami ankstesnį veiksmą, o [el. paštas apsaugotas] savo el. pašto adresu.

Turime sukurti failą pavadinimu distributions, esantį /var/www/apt/conf.

touch /var/www/apt/conf/distributions

Pridėkite šias eilutes į paskirstymo failą ir išsaugokite failą.

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

Tada turėsime sukurti saugyklos medį, kad tai padarytumėte, paleiskite šias komandas.

reprepro --ask-passphrase -Vb /var/www/apt export
Pavyzdžio išvestis
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'

3 veiksmas: pridėkite paketus į naujai sukurtą saugyklą

Dabar paruoškite .deb paketus, kurie bus įtraukti į saugyklą. Eikite į /var/www/apt katalogą, tai turite padaryti kiekvieną kartą, kai norite įtraukti paketus.

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

Pastaba: pakeiskite trusty kodo pavadinimu, kurį įvedėte saugyklai platinimo faile, ir pakeiskite /home/username/package .deb su keliu į paketą, jūsų bus paprašyta įvesti slaptafrazę.

Pavyzdžio išvestis
/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'

Jūsų paketas pridedamas prie saugyklos, kad jį pašalintumėte.

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

Ir, žinoma, turite pakeisti komandą su savo paketo pavadinimu ir saugyklos kodiniu pavadinimu.

4 veiksmas: įkelkite saugyklą į Sourceforge.net

Norėdami įkelti saugyklą į Sourceforge.net, žinoma, turite turėti ten veikiančią paskyrą ir vykdomą projektą, tarkime, kad norite įkelti saugyklą į http://sourceforge .net/projects/myfoo/testrepository kur myfoo yra jūsų projekto pavadinimas (UNIX pavadinimas, o ne URL, o ne pavadinimas), o testrepository yra aplankas, į kurį norite įkelti failus. Tai padarysime naudodami rsync komandą.

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

Pastaba: pakeiskite naudotojo vardą savo naudotojo vardu adresu sourceforge.net ir myfoo savo projekto UNIX pavadinimu ir bandomąją saugyklą su aplanku, kuriame norite saugoti failus.

Dabar tai jūsų saugykla įkelta į http://sourceforge.net/projects/myfoo/testrepository, kad pridėtumėte ją prie įdiegtos sistemos, pirmiausia turite importuoti saugyklos raktą, jis bus < b>/var/www/apt/key/deb.gpg.key, tačiau tai yra vietinis kelias ir jūsų saugyklos naudotojai negalės jo pridėti prie savo sistemų, todėl mes importuojant raktą iš sourceforge.net.

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

Dabar galite lengvai pridėti saugyklą prie savo sistemos, atidarykite /etc/apt/sources.list ir pridėkite šią eilutę.

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

Pastaba: pakeiskite myfoo savo projektu UNIX-Name, patikimą saugyklos kodiniu pavadinimu, bandomąją saugyklą aplanku, į kurį įkėlėte failus, ir pagrindinę saugyklos komponentais, prie kurių pridėjote paskirstymo failą.

Tada vykdykite toliau nurodytus veiksmus, kad atnaujintumėte saugyklų sąrašą.

sudo apt-get update

Sveikiname! Jūsų saugykla aktyvi! Dabar galite lengvai įdiegti paketus iš jo, jei norite.