Cara membuat repositori rpm khusus di linux

Cara membuat repositori rpm khusus di linux

RPM adalah akronim dari Manajer Paket RPM: Ini adalah manajer paket tingkat rendah yang digunakan di semua keluarga distribusi Red Hat, seperti Fedora dan Red Hat Enterprise Linux.

Paket RPM adalah paket yang berisi perangkat lunak yang dimaksudkan untuk diinstal menggunakan sistem manajemen paket ini, dan paket RPM biasanya didistribusikan melalui repositori perangkat lunak. Dalam tutorial ini kami belajar cara membuat repositori RPM khusus dan cara mengkonfigurasi distribusi kami untuk menggunakannya sebagai sumber perangkat lunak.

Dalam tutorial ini Anda akan belajar:

  • Cara membuat repositori rpm
  • Cara menggunakan repositori sebagai sumber perangkat lunak

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi keluarga topi merah apa pun
Perangkat lunak DNF, CreateRepo
Lainnya Hak istimewa administratif untuk mengonfigurasi repositori
Konvensi # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$-mensyaratkan Linux-Commands untuk dieksekusi sebagai pengguna reguler yang tidak istimewa

Instalasi Perangkat Lunak



Demi tutorial ini, kami akan membuat repositori khusus kami di mesin lokal dengan IP 192.168.0.39 yang akan digunakan sebagai server http. Di mesin ini, hal pertama yang perlu kita lakukan adalah menginstal CreateRepo kemasan. Distribusi yang dipasang pada mesin jarak jauh tidak perlu menjadi distribusi berbasis rpm itu sendiri, selama paket tersebut tersedia. Dalam kasus kami, misalnya, sistem yang diinstal di server adalah Debian, jadi untuk menginstal paket, kami perlu menjalankan perintah berikut:

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

Seperti yang kami katakan sebelumnya, dalam contoh spesifik kami, kami ingin membuat perangkat lunak di -host di repositori khusus kami agar dapat diakses melalui protokol HTTP, oleh karena itu kami perlu menginstal server HTTP; Dalam hal ini kami akan bekerja dengan Apache. Memasangnya di Debian, itu hanya masalah menjalankan:

$ sudo apt-get install apache2 

Setelah paket diinstal, kami dapat melanjutkan dan membuat repositori RPM kami dalam beberapa langkah yang sangat sederhana.

Membuat repositori

Virtualhost apache default Root document dibuat saat Apache diinstal di Debian /var/www/html. Pada titik ini kita dapat memilih untuk membuat virtualhost untuk repositori kita, atau cukup membuat direktori repositori sebagai bagian
dari yang default. Demi kesederhanaan, dalam tutorial ini kita akan menjelajahi opsi yang terakhir:

$ sudo mkdir/var/www/html/repo 

Itu repo Direktori yang kami buat dengan perintah di atas, di dalam virtualhost default Root document, akan meng -host paket kami, dan akan menjadi dasar repositori kami. Untuk menyusunnya dengan lebih baik, kami sekarang ingin membuat beberapa subdirektori
Dinamai sesuai dengan distribusi, versinya dan arsitektur paket yang ingin kami sediakan. Misalkan, misalnya, kami ingin menggunakan repositori di Fedora 33 x68_64, Kita harus menjalankan perintah berikut:

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


Langkah selanjutnya terdiri dari mengisi repositori. Yang harus kami lakukan adalah menempatkan paket yang ingin kami sediakan, di dalam direktori repositori yang sesuai. Dalam hal ini, sebagai contoh, saya akan mengisi repositori dengan paket yang diperoleh dengan menyusun editor vscode dari sumber. Paket itu dipanggil Kode-1.56.0-1617183449.EL8.x86_64.RPM. Setelah disalin, struktur file kami akan terlihat seperti itu:

Repo └── Fedora └── Rilis └── 33 ── x86_64 └── kode-1.56.0-1617183449.EL8.x86_64.RPM 

Dengan repositori kami diisi, yang ingin kami lakukan hanyalah menjalankan CreateRepo Perintah di dalam direktori yang berisi paket. Dalam hal ini kami akan menjalankan:

$ sudo createRepo/var/www/html/repo/fedora/rilis/33/x86_64 

Perintah akan membuat metadata repositori di dalam direktori bernama repodata, Berdasarkan paket yang terkandung dalam direktori tujuan dan harus diluncurkan kembali setiap kali repositori diperbarui dengan paket baru atau paket lama dihapus. Setelah perintah diluncurkan, struktur direktori kami akan terlihat seperti:

Repo └── Fedora └── Rilis └── 33 ── x86_64 ├── kode-1.56.0-1617183449.EL8.x86_64.RPM └── Repodata ├── 22ab1d1d123bb7d7cde556bf8a8ac4daf9cdb75572f40ebddd2f399908cb7f6b9-other.xml.GZ ├── 26ED9B63868B2E0263DFA817E21921C4E7542C1BE9F6B7875381BBA6BD78D1C6-primary.sqlite.BZ2 ├── 50FC300A761812761CF9A8413A619DA23CF336D49999753568CE19A97C025D44-lainnya.sqlite.BZ2 ├── A523F54B5FCD0720C182969F991F51E125728A361F31237725DC9418D5E126A-SECARA.xml.GZ ├── AF2FA9EA5DEAFFCA5FFC9F3E524155DEFA8CFA5656962845A45C8B0E984F3F3E19-FileLists.sqlite.BZ2 ├── F95849CF860F1184B97D30000EA1F9F1C35EDD6D625DCD387453187510DD4A18-FILELIST.xml.GZ └── Repomd.xml 

Repositori kami berhasil dibuat. Sekarang kita harus mengonfigurasi distribusi kita untuk menggunakannya sebagai sumber perangkat lunak.

Menambahkan repositori sebagai sumber perangkat lunak



Mari kita pindah ke distribusi berbasis RPM kami dan lihat cara mengkonfigurasinya untuk menggunakan repositori khusus kami sebagai sumber perangkat lunak. File konfigurasi repositori ditemukan di bawah /etc/yum.repo.D direktori, dan harus memiliki
.repo perpanjangan. Dengan melihat ke dalam direktori kita dapat melihat yang sudah ada:

$ ls/etc/yum/repo.d Fedora-Cisco-Openh264.repo fedora-updates-testing-modular.repo fedora-modular.Repo-fedora-updates-testing.Repo Fedora.Repo RPMFusion-bebas.repo fedora-updates-modular.Repo RPMFusion-bebas-pembaruan.repo fedora-updates.Repo RPMFusion-Free-Updates-Testing.repo 

Sekarang, mari kita buat konfigurasi repositori khusus kami. Di dalam file, sebagai serangkaian informasi minimum, kami harus menyediakan:

  • ID repositori
  • Nama repositori
  • BaseUrl repositori
  • Status repositori
  • Apakah akan memeriksa tanda tangan GPG dari paket atau tidak

Kami akan menyimpan informasi tersebut dalam file yang dipanggil sendiri.repo, Inilah isinya:

[OwnRepo] Name = Own Repository BaseUrl = http: // 192.168.0.39/repo/fedora/rilis/$ rilis/$ basearch diaktifkan = 1 gpgcheck = 0 

Definisi yang dilaporkan di dalam kurung ([OwnRepo]) adalah ID repositori, dan harus unik di semua definisi repositori. Dengan nama Kunci Kami memberikan nama yang dapat dibaca manusia untuk repositori sebagai string. Ini opsional; Jika nama tidak disediakan, ID repositori akan digunakan juga sebagai nama.

Dengan baseurl Kunci Kami menentukan daftar URL untuk repositori. URL harus dipisahkan oleh ruang atau koma. Dalam contoh kami, kami hanya menyediakan satu URL, tetapi Anda dapat melihat kami menggunakan dua variabel di dalamnya:

  • $ Rilis
  • $ basearch


Perluasan yang pertama, $ Rilis, akan menghasilkan versi rilis sistem operasi, dalam hal ini 33, Karena kami memasang repositori kami pada sistem Fedora 33. Variabel kedua, $ basearch, akan diperluas dalam string yang mewakili arsitektur dasar sistem, yang dalam kasus kami x86_64.

Itu diaktifkan kunci membutuhkan a Boolean nilai yang menentukan apakah repositori harus dianggap aktif atau tidak. Kunci terakhir yang kami gunakan adalah gpgcheck: Ini juga membutuhkan nilai boolean, dan digunakan untuk menentukan apakah pemeriksaan tanda tangan GPG harus dilakukan pada paket yang dipasang dari repositori. Dalam contoh kami, kami hanya menonaktifkan cek, karena repositori hanya dimaksudkan untuk penggunaan pribadi.

Sekarang repositori kami dikonfigurasi, kami dapat mencoba menginstal kode paket darinya, hanya dengan menjalankan:

$ sudo dnf menginstal kode sendiri repositori 451 kb/s | 13 KB 00:00 Dependensi terselesaikan. ==================================================== ==================================================== ============== Paket Versi arsitektur Repositori ukuran ================================= ==================================================== ================================== Menginstal: Kode x86_64 1.56.0-1617183449.EL8 sendiri ringkasan transaksi 100 m ============================================== ==================================================== ==================== Instal 1 Paket Total Ukuran Unduh: 100 m Ukuran Terinstal: 294 m Apakah ini ok [y/n]: 

Setelah kami memberikan jawaban afirmatif untuk prompt dan mengonfirmasi, paket akan diinstal pada sistem kami.

Kesimpulan

Dalam artikel ini kami belajar betapa mudahnya membuat repositori RPM khusus dengan CreateRepo utilitas, dan kami melihat cara membuat file konfigurasi DNF pada distribusi kami untuk menggunakannya sumber perangkat lunak. Kami melihat subset minimal
kunci yang dapat digunakan dalam konfigurasi repositori; Untuk daftar yang lebih rinci, Anda dapat berkonsultasi dengan dokumentasi DNF resmi.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Unduh Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Can Linux mendapatkan virus? Menjelajahi kerentanan Linux…
  • Menguasai loop skrip bash
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Hal -hal yang harus diinstal pada Ubuntu 22.04