Ստեղծեք _.deb փաթեթի պահեստարան_ Sourceforge.net-ում՝ օգտագործելով _Reprepro_ գործիքը Ubuntu-ում


Որպես ծրագրային ապահովման մշակող, ձեզ կարող է անհրաժեշտ լինել բաժանել ձեր ծրագրակազմը տարբեր օգտվողների: Ubuntu-ում ծրագրային ապահովման տարածման ընդհանուր եղանակներից մեկը Debian փաթեթի ստեղծումն է (.deb) և այն վերբեռնելու փաթեթների պահեստ: Փաթեթների պահոցը Debian փաթեթների հավաքածու է, որը տեղակայված է սերվերի վրա, որը կարող է օգտագործվել Ubuntu-ի մեքենաներում ծրագրակազմը տեղադրելու և թարմացնելու համար: Այս հոդվածում մենք ձեզ ցույց կտանք, թե ինչպես ստեղծել .deb փաթեթի պահոց՝ օգտագործելով Reprepro գործիքը և տեղադրել այն SourceForge.net-ում:

Նախադրյալներ

  • Ubuntu 18.04 կամ ավելի բարձր

  • Արմատային արտոնություններ

  • Ubuntu փաթեթի կառավարման հիմնական գիտելիքներ

Քայլ 1. Տեղադրեք Reprepro

Reprepro-ն գործիք է, որը կարող է օգտագործվել փաթեթների պահեստը կառավարելու համար: Reprepro-ն Ubuntu-ում տեղադրելու համար բացեք տերմինալ և գործարկեք հետևյալ հրամանը −

sudo apt-get update
sudo apt-get install reprepro

Քայլ 2. Պատրաստեք ձեր փաթեթները

Նախքան ձեր փաթեթները պահեստում ավելացնելը, դուք պետք է ստեղծեք դրանք: Փաթեթ ստեղծելու համար հարկավոր է գրել կառավարման ֆայլ և կանոնների ֆայլ, որը նկարագրում է փաթեթը և ինչպես կառուցել այն։ Փաթեթը ստեղծելուց հետո կարող եք այն կառուցել՝ օգտագործելով dpkg-buildpackage հրամանը: Լրացուցիչ տեղեկությունների համար, թե ինչպես ստեղծել Debian փաթեթներ, տե՛ս Debian փաթեթավորման պաշտոնական ուղեցույցը:

Քայլ 3. Ստեղծեք պահեստային գրացուցակ

Դուք պետք է ստեղծեք գրացուցակ՝ ձեր փաթեթները և պահեստի տեղեկությունները պահելու համար: Այս օրինակում մենք կստեղծենք «myrepo» անունով գրացուցակ:

sudo mkdir /var/www/html/myrepo
cd /var/www/html/myrepo
sudo mkdir -p dists/bionic/main/binary-amd64

Քայլ 4. Նախնականացրեք պահեստը

Այժմ, երբ դուք ունեք ձեր փաթեթները պահելու գրացուցակ, կարող եք սկզբնավորել պահեստը հետևյալ հրամանով −

sudo reprepro -Vb . init

Սա կստեղծի անհրաժեշտ ֆայլերը և գրացուցակները պահեստի համար:

Քայլ 5. Ավելացրեք ձեր փաթեթները պահեստում

Ձեր փաթեթները պահեստարան ավելացնելու համար պատճենեք դրանք «myrepo» գրացուցակում և գործարկեք հետևյալ հրամանը.

sudo reprepro -Vb . includedeb bionic /path/to/package.deb

Փոխարինեք «/path/to/package.deb»-ը ձեր փաթեթի ուղով: Սա կավելացնի փաթեթը պահեստի «բիոնիկ» բաշխմանը:

Քայլ 6. Թարմացրեք պահեստը

Պահեստում փաթեթներ ավելացնելուց հետո անհրաժեշտ է թարմացնել այն հետևյալ հրամանով −

sudo reprepro -Vb . update

Սա կթարմացնի պահոցը նոր փաթեթներով:

Քայլ 7. Ստորագրեք պահեստը

Ապահովելու համար, որ պահեստի փաթեթները չեն կեղծվել, դուք պետք է ստորագրեք պահոցը GPG բանալիով: Եթե դուք չունեք GPG բանալի, կարող եք ստեղծել այն հետևյալ հրամանով −

gpg --gen-key

Պահեստը ստորագրելու համար գործարկեք հետևյալ հրամանը −

sudo reprepro -Vb . sign

Սա կստորագրի պահեստը ձեր GPG բանալիով:

Քայլ 8. Կարգավորեք Apache վեբ սերվերը

SourceForge.net-ում փաթեթի պահոցը հյուրընկալելու համար հարկավոր է կարգավորել Apache վեբ սերվերը: Նախ, տեղադրեք Apache -

sudo apt-get install apache2

Հաջորդը, միացրեք անհրաժեշտ մոդուլները −

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html

Այնուհետև ստեղծեք վիրտուալ հոսթի կազմաձևման ֆայլ /etc/apache2/sites-available/ գրացուցակում: Օրինակ, եթե ցանկանում եք հյուրընկալել փաթեթի պահոցը http://packages.example.com կայքում, կարող եք ստեղծել packages.example.com.conf անունով ֆայլ հետևյալ բովանդակությամբ.

sudo nano /etc/apache2/sites-available/packages.example.com.conf
<VirtualHost *:80>
    ServerName packages.example.com
    DocumentRoot /var/www/html
    RewriteEngine on
    RewriteRule ^/reprepro(.*) /reprepro$1 [R,L]
</VirtualHost>

Այս կազմաձևման ֆայլը նշում է, որ վիրտուալ հոսթը լսում է 80-րդ նավահանգիստը և սպասարկում ֆայլեր /var/www/html գրացուցակից: RewriteRule-ն օգտագործվում է հարցումները վերագրելու համար դեպի /reprepro URL-ի ուղին դեպի իրական reprepro պահոց գրացուցակը:

Միացնել վիրտուալ հոսթը՝ ստեղծելով սիմվոլիկ հղում դեպի կայքերը միացված գրացուցակը −

sudo ln -s /etc/apache2/sites-available/packages.example.com.conf /etc/apache2/sites-enabled/

Վերագործարկեք Apache վեբ սերվերը, որպեսզի փոփոխություններն ուժի մեջ մտնեն −

sudo systemctl restart apache2

Այժմ կարող եք մուտք գործել փաթեթի պահեստ՝ http://packages.example.com/reprepro/ հասցեով:

Քայլ 9. Փաթեթների ավելացում պահեստում

Այժմ, երբ պահոցը ստեղծվել է, կարող եք սկսել փաթեթներ ավելացնել դրան: Ահա թե ինչպես դա անել -

  • Տեղադրեք .deb փաթեթի ֆայլերը մուտքային գրացուցակում −

sudo mv /path/to/package.deb /srv/packages.example.com/reprepro/incoming/
sudo chown reprepro:reprepro /srv/packages.example.com/reprepro/incoming/package.deb
  • Ներմուծեք փաթեթը պահոց −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro includedeb buster /srv/packages.example.com/reprepro/incoming/package.deb
In this example, "buster" is the distribution name, which can be changed to match the name of the distribution you are using.
  • Թարմացրեք պահեստը −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro update
  • Հրապարակեք փաթեթը −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro publish

Վե՛րջ: Ձեր փաթեթն այժմ հասանելի է փաթեթի պահոցում:

Քայլ 10. Փաթեթների թարմացում պահեստում

Եթե Ձեզ անհրաժեշտ է թարմացնել փաթեթը պահեստում, կարող եք դա անել՝ հետևելով այս քայլերին

  • Տեղադրեք թարմացված .deb փաթեթի ֆայլը մուտքային գրացուցակում −

sudo mv /path/to/updated_package.deb /srv/packages.example.com/reprepro/incoming/
sudo chown reprepro:reprepro /srv/packages.example.com/reprepro/incoming/updated_package.deb
  • Ներմուծեք թարմացված փաթեթը պահոց −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro includedeb buster /srv/packages.example.com/reprepro/incoming/updated_package.deb
  • Թարմացրեք պահեստը −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro update
  • Հրապարակեք թարմացված փաթեթը −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro publish

Վե՛րջ: Ձեր թարմացված փաթեթն այժմ հասանելի է փաթեթի պահոցում:

Քայլ 11. Փաթեթների հեռացում պահոցից

Եթե Ձեզ անհրաժեշտ է հեռացնել փաթեթը պահոցից, կարող եք դա անել՝ հետևելով այս քայլերին

  • Հեռացրեք փաթեթը պահոցից −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro remove buster package_name

Այս օրինակում «buster»-ը բաշխման անունն է, որը կարող է փոխվել, որպեսզի համապատասխանի ձեր օգտագործած բաշխման անվանմանը: «package_name»-ն այն փաթեթի անունն է, որը ցանկանում եք հեռացնել:

  • Թարմացրեք պահեստը −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro update
  • Հրապարակեք փոփոխությունները −

sudo -u reprepro reprepro -Vb /srv/packages.example.com/reprepro publish

Վե՛րջ: Փաթեթը հեռացվել է պահոցից:

Եզրակացություն

Այս հոդվածում դուք սովորեցիք, թե ինչպես ստեղծել Debian փաթեթի պահոց՝ օգտագործելով Reprepro գործիքը Ubuntu-ում: Դուք սովորեցիք, թե ինչպես ստեղծել պահեստ, փաթեթներ ավելացնել դրան, թարմացնել փաթեթները և հեռացնել փաթեթները: Դուք նաև սովորեցիք, թե ինչպես կարգավորել Apache վեբ սերվերը, որպեսզի հյուրընկալի փաթեթի պահեստը: Այս հմտություններով դուք այժմ կարող եք ստեղծել ձեր փաթեթների պահոցը՝ ծրագրակազմը բաժանելու ձեր հաճախորդներին, գործընկերներին կամ ավելի լայն համայնքին: