Δημιουργήστε ένα ".deb Package Repository" στο Sourceforge.net χρησιμοποιώντας το εργαλείο "Reprepro" στο Ubuntu


Το Reprepro είναι ένα μικρό εργαλείο γραμμής εντολών για τη δημιουργία και τη διαχείριση των αποθετηρίων .deb εύκολα. Σήμερα θα δείξουμε πώς να δημιουργείτε εύκολα αποθετήρια πακέτων Debian χρησιμοποιώντας το reprepro και πώς να μεταφορτώστε το στο Sourceforge.net χρησιμοποιώντας την εντολή rsync.

Βήμα 1: Εγκαταστήστε το Reprepro και Δημιουργήστε κλειδί

Αρχικά, εγκαταστήστε όλα τα απαραίτητα πακέτα, χρησιμοποιώντας την ακόλουθη εντολή apt-get.

sudo apt-get install reprepro gnupg

Τώρα πρέπει να δημιουργήσετε ένα κλειδί gpg χρησιμοποιώντας το gnupg, για να το κάνετε αυτό, εφαρμόστε αυτήν την εντολή.

gpg --gen-key

Θα σας κάνει κάποιες ερωτήσεις, όπως το είδος του κλειδιού που θέλετε, πόσο καιρό θα πρέπει να ισχύει το κλειδί, εάν δεν ξέρετε τι να απαντήσετε, απλώς κάντε κλικ στο Enter για τις προεπιλεγμένες επιλογές (συνιστάται ).

Φυσικά, θα σας ζητήσει όνομα χρήστη και κωδικό πρόσβασης, έχετε υπόψη σας, γιατί θα τα χρειαστούμε αργότερα.

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

Τώρα θα δημιουργηθεί το κλειδί σας, για να ελέγξετε εάν ναι, εκτελέστε αυτήν την εντολή ως δικαιώματα ρίζας.

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

Βήμα 2: Δημιουργήστε ένα αποθετήριο πακέτων και κλειδί εξαγωγής

Θα ξεκινήσουμε τώρα τη δουλειά για τη δημιουργία του αποθετηρίου, πρώτα πρέπει να δημιουργήσετε μερικούς φακέλους, το αποθετήριο μας θα βρίσκεται στον κατάλογο /var/www/apt, οπότε ας δημιουργήσουμε μερικούς φακέλους.

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

Πρέπει τώρα να εξαγάγετε το κλειδί που δημιουργήσατε στο φάκελο αποθετηρίου, εκτελέστε.

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

Σημείωση: Αντικαταστήστε το όνομα χρήστη με το όνομα χρήστη που εισαγάγατε στο παραπάνω βήμα και [email  με το email σας.

Πρέπει να δημιουργήσουμε ένα αρχείο που ονομάζεται "διανομές " μέσα στο /var/www/apt/conf.

touch /var/www/apt/conf/distributions

Προσθέστε αυτές τις ακόλουθες γραμμές στο αρχείο διανομών και αποθηκεύστε το αρχείο.

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

Στη συνέχεια, θα πρέπει να δημιουργήσουμε το δέντρο του αποθετηρίου, για να το κάνουμε αυτό, εκτελέστε αυτές τις εντολές.

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'

Βήμα 3: Προσθέστε πακέτα στο αποθετήριο που δημιουργήθηκε πρόσφατα

Τώρα ετοιμάστε τα πακέτα σας .deb που θα προστεθούν στο αποθετήριο. Μεταβείτε στον κατάλογο /var/www/apt, πρέπει να το κάνετε κάθε φορά που θέλετε να προσθέσετε πακέτα.

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

Σημείωση: Αντικαταστήστε το trusty με το κωδικό όνομα που εισαγάγατε για το χώρο αποθήκευσης στο αρχείο διανομών και αντικαταστήστε το /home/username/package .debμε τη διαδρομή προς το πακέτο, θα σας ζητηθεί να εισαγάγετε τη φράση πρόσβασης.

Δείγμα εξόδου
/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'

Το πακέτο σας προστίθεται στο αποθετήριο, για να το αφαιρέσετε.

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

Και φυσικά, πρέπει να τροποποιήσετε την εντολή με το όνομα του πακέτου σας και το κωδικό όνομα του αποθετηρίου.

Βήμα 4: Ανεβάστε το αποθετήριο στο Sourceforge.net

Για να ανεβάσετε το αποθετήριο στο Sourceforge.net, πρέπει φυσικά να έχετε έναν λογαριασμό σε λειτουργία εκεί και ένα έργο που εκτελείται, ας υποθέσουμε ότι θέλετε να ανεβάσετε το αποθετήριο στο http://sourceforge .net/projects/myfoo/testrepository όπου myfoo είναι το όνομα του έργου σας (όνομα UNIX, όχι URL, όχι ο τίτλος) και το testrepository είναι ο φάκελος στον οποίο θέλετε να ανεβάσετε τα αρχεία. Αυτό θα το κάνουμε χρησιμοποιώντας το rsync εντολή.

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

Σημείωση: Αντικαταστήστε το όνομα χρήστη με το όνομα χρήστη σας στο sourceforge.net και στο myfoo με το UNIX-name και το testrepository του έργου σας με το φάκελο στον οποίο θέλετε να αποθηκεύσετε τα αρχεία.

Τώρα που το αποθετήριο σας έχει μεταφορτωθεί στο http://sourceforge.net/projects/myfoo/testrepository, για να το προσθέσετε στο εγκατεστημένο σύστημά σας, πρώτα πρέπει να εισαγάγετε το κλειδί αποθήκης, θα βρίσκεται στο < b>/var/www/apt/key/deb.gpg.key, αλλά αυτή είναι μια τοπική διαδρομή και οι χρήστες του αποθετηρίου σας δεν θα μπορούν να την προσθέσουν στα συστήματά τους, γι' αυτό θα εισαγωγή του κλειδιού από το sourceforge.net.

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

Μπορείτε να προσθέσετε το αποθετήριο εύκολα τώρα στο σύστημά σας, ανοίξτε το /etc/apt/sources.list και προσθέστε αυτήν τη γραμμή.

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

Σημείωση: Αντικαταστήστε το myfoo με το UNIX-Name του έργου σας, αξιόπιστο με το κωδικό όνομα του αποθετηρίου σας, το testrepository με το φάκελο στον οποίο ανεβάσατε τα αρχεία και το κύριο με τα στοιχεία του αποθετηρίου που προσθέσατε το αρχείο διανομών.

Στη συνέχεια, εκτελέστε το ακόλουθο για να ενημερώσετε τη λίστα των αποθετηρίων.

sudo apt-get update

Συγχαρητήρια! Το αποθετήριό σας είναι ενεργό! Μπορείτε πλέον να εγκαταστήσετε πακέτα εύκολα από αυτό αν θέλετε.