Cara membuat repositori RPM tersuai di Linux

Cara membuat repositori RPM tersuai di Linux

RPM adalah akronim dari Pengurus Pakej RPM: Ia adalah pengurus pakej peringkat rendah yang digunakan dalam semua keluarga pengagihan Red Hat, seperti Fedora dan Red Hat Enterprise Linux.

Pakej RPM adalah pakej yang mengandungi perisian yang dimaksudkan untuk dipasang menggunakan sistem pengurusan pakej ini, dan pakej RPM biasanya diedarkan melalui repositori perisian. Dalam tutorial ini, kita belajar bagaimana membuat repositori RPM tersuai dan cara mengkonfigurasi pengedaran kami untuk menggunakannya sebagai sumber perisian.

Dalam tutorial ini anda akan belajar:

  • Cara membuat repositori rpm
  • Cara menggunakan repositori sebagai sumber perisian

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Sebarang pengedaran keluarga Red Hat
Perisian DNF, Createrepo
Yang lain Keistimewaan pentadbiran untuk mengkonfigurasi repositori
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Pemasangan perisian



Demi tutorial ini, kami akan membuat repositori tersuai kami di mesin tempatan dengan IP 192.168.0.39 yang akan digunakan sebagai pelayan HTTP. Pada mesin ini, perkara pertama yang perlu kita lakukan ialah memasang Createrepo pakej. Pengedaran yang dipasang pada mesin jauh tidak perlu menjadi pengedaran berasaskan RPM itu sendiri, selagi pakej tersebut tersedia. Dalam kes kami, sebagai contoh, sistem yang dipasang pada pelayan adalah Debian, jadi untuk memasang pakej yang kami perlukan untuk menjalankan arahan berikut:

$ sudo apt-get update & & sudo apt-get install createrepo 

Seperti yang kami katakan sebelum ini, dalam contoh khusus kami, kami ingin menjadikan perisian yang dihoskan pada repositori tersuai kami dapat diakses melalui protokol HTTP, oleh itu kami perlu memasang pelayan HTTP; Dalam kes ini kita akan bekerjasama dengan Apache. Memasangnya di Debian, hanya masalah berjalan:

$ sudo apt-get memasang apache2 

Sebaik sahaja pakej dipasang, kami boleh meneruskan dan membuat repositori rpm kami dalam beberapa langkah yang sangat mudah.

Mewujudkan repositori

Lalai Apache VirtualHost Documentroot Dibuat semasa Apache dipasang pada Debian adalah /var/www/html. Pada ketika ini kita boleh memilih untuk membuat virtualhost untuk repositori kita, atau hanya membuat direktori repositori sebagai bahagian
yang lalai. Demi kesederhanaan, dalam tutorial ini kita akan meneroka pilihan yang terakhir:

$ sudo mkdir/var/www/html/repo 

The repo direktori yang kami buat dengan arahan di atas, di dalam lalai virtualhost Documentroot, akan menjadi tuan rumah pakej kami, dan akan menjadi asas repositori kami. Untuk membentuknya dengan lebih baik, kami kini ingin membuat beberapa subdirektori
Dinamakan selepas pengedaran, versi dan seni bina pakej yang ingin kami sediakan. Katakan, sebagai contoh, kami mahu menggunakan repositori di Fedora 33 x68_64, Kita harus menjalankan arahan berikut:

$ sudo mkdir -p/var/www/html/repo/fedora/siaran/33/x86_64 


Langkah seterusnya terdiri daripada penduduk repositori. Yang harus kita lakukan ialah meletakkan pakej yang ingin kami sediakan, di dalam direktori repositori yang sesuai. Dalam kes ini, sebagai contoh, saya akan mengisi repositori dengan pakej yang diperoleh dengan menyusun editor vscode dari sumber. Pakej ini dipanggil kod-1.56.0-1617183449.EL8.x86_64.rpm. Sebaik sahaja ia disalin, struktur fail kami sepatutnya kelihatan seperti itu:

repo └── Fedora └── Siaran └── 33 └── x86_64 └── kod-1.56.0-1617183449.EL8.x86_64.rpm 

Dengan repositori kami, semua yang kami mahu lakukan ialah menjalankan Createrepo perintah di dalam direktori yang mengandungi pakej. Dalam kes ini kita akan menjalankan:

$ sudo createrepo/var/www/html/repo/fedora/siaran/33/x86_64 

Perintah akan membuat metadata repositori di dalam direktori yang dinamakan repodata, Berdasarkan pakej yang terkandung dalam direktori destinasi dan mesti dilancarkan semula setiap kali repositori dikemas kini dengan pakej baru atau pakej lama dikeluarkan. Sebaik sahaja arahan dilancarkan, struktur direktori kami akan kelihatan seperti:

repo └── Fedora └── Siaran └── 33 └── x86_64 ├── kod-1.56.0-1617183449.EL8.x86_64.rpm └── repodata ├── 22ab1d1d123bb7d7cde556bf8a8ac4daf9cdb75572f40ebdd2f3999908cb7f6b9-otot.XML.GZ ├── 26ED9B63868B2E0263DFA817E21921C4E7542C1BE9F6B7875381BBA6BD78D1C6-PRIMARY.SQLITE.BZ2 ├── 50FC300A761812761CF9A8413A619DA23CF336D49999753568CE19A97C025D44-OTHER.SQLITE.BZ2 ├── A523F54B5FCD0720C182969F991F51E125728A361F31237725DC9418D5E126EA-Primary.XML.GZ ├── AF2FA9EA5DEAFFCA5FFC9F3E524155DEFA8CFA5656962845A45C8B0E984F3E19-Filelists.SQLITE.BZ2 ├── F95849CF860F1184B97D3000000EA1F9F1C35EDD6D625DCD387453187510DD4A18-Filelists.XML.Gz └── repomd.XML 

Repositori kami berjaya dibuat. Sekarang kita harus mengkonfigurasi pengedaran kami untuk menggunakannya sebagai sumber perisian.

Menambah repositori sebagai sumber perisian



Mari beralih ke pengedaran berasaskan RPM kami dan lihat cara mengkonfigurasinya untuk menggunakan repositori tersuai kami sebagai sumber perisian. Fail konfigurasi repositori terdapat di bawah /etc/yum.repos.d direktori, dan mesti mempunyai
.repo sambungan. Dengan melihat di dalam direktori kita dapat melihat yang sudah ada:

$ ls/etc/yum/repos.D Fedora-Cisco-OpenH264.Repo Fedora-updates-Testing-Modular.Repo Fedora-Modular.Repo Fedora-updates-Ujian.Repo Fedora.repo rpmfusion-bebas.repo fedora-updates-modular.repo rpmfusion-free-updates.Repo Fedora-updates.Repo RPMFusion-Updates-Ujian.repo 

Sekarang, mari buat konfigurasi repositori tersuai kami. Di dalam fail, sebagai set minimum maklumat, kita harus menyediakan:

  • ID repositori
  • Nama repositori
  • Baseurl repositori
  • Status repositori
  • Sama ada untuk memeriksa tandatangan GPG pakej atau tidak

Kami akan menyimpan maklumat tersebut dalam fail yang dipanggil milik.repo, Inilah kandungannya:

[OwnRepo] Name = Repository BaseUrl = http: // 192.168.0.39/repo/fedora/siaran/$ releasever/$ basearch enabled = 1 gpgcheck = 0 

Definisi yang dilaporkan di dalam kurungan ([OwnRepo]) adalah ID repositori, dan mesti unik dalam semua definisi repositori. Dengan nama Kunci kami memberikan nama yang boleh dibaca manusia untuk repositori sebagai rentetan. Ini adalah pilihan; Sekiranya nama tidak disediakan, ID repositori akan digunakan juga sebagai nama.

Dengan BaseUrl kunci kami menentukan senarai URL untuk repositori. URL mesti dipisahkan oleh ruang atau koma. Dalam contoh kami, kami hanya menyediakan URL tunggal, tetapi anda dapat melihat kami menggunakan dua pembolehubah di dalamnya:

  • $ melegakan
  • $ Basearch


Pengembangan yang pertama, $ melegakan, akan menghasilkan versi pelepasan sistem operasi, dalam kes ini 33, Oleh kerana kami memasang repositori kami di sistem fedora 33. Pembolehubah kedua, $ Basearch, akan diperluas dalam rentetan yang mewakili seni bina asas sistem, yang dalam kes kita adalah x86_64.

The didayakan kunci memerlukan a Boolean nilai yang menentukan jika repositori harus dianggap aktif atau tidak. Kunci terakhir yang kami gunakan ialah gpgcheck: Ia juga memerlukan nilai boolean, dan digunakan untuk menentukan sama ada pemeriksaan tandatangan GPG harus dilakukan pada pakej yang dipasang dari repositori. Dalam contoh kami, kami hanya melumpuhkan cek, kerana repositori itu dimaksudkan untuk kegunaan peribadi sahaja.

Sekarang repositori kami dikonfigurasikan, kami boleh cuba memasang kod Pakej daripadanya, hanya dengan berjalan:

$ sudo dnf pemasangan kod sendiri repositori 451 kb/s | 13 kb 00:00 ketergantungan diselesaikan. ================================================= ================================================= ============== Pakej Versi Senibina Versi Repositori ================================== ================================================= ============================== Memasang: Kod x86_64 1.56.0-1617183449.EL8 OWNREPO 100 m Ringkasan Transaksi ============================================================================ ================================================= =================== Pasang 1 pakej Jumlah muat turun Saiz: 100 m Pasang Saiz: 294 m Adakah ini OK [Y/N]: 

Sebaik sahaja kami memberikan jawapan afirmatif kepada prompt dan mengesahkannya, pakej akan dipasang pada sistem kami.

Kesimpulan

Dalam artikel ini, kami mengetahui betapa mudahnya membuat repositori RPM tersuai dengan Createrepo utiliti, dan kami melihat cara membuat fail konfigurasi DNF pada pengedaran kami untuk menggunakannya sebagai sumber perisian. Kami melihat subset minimum
kunci yang boleh digunakan dalam konfigurasi repositori; Untuk senarai yang lebih terperinci, anda boleh berunding dengan dokumentasi DNF rasmi.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Muat turun linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Bolehkah linux mendapat virus? Meneroka kelemahan Linux ..
  • Menguasai Gelung Skrip Bash
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
  • Perkara yang perlu dipasang di Ubuntu 22.04