GNU/Linux >> Belajar Linux >  >> Linux

Cara membuat repositori rpm khusus di Linux

Rpm adalah singkatan dari RPM Package Manager :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 kita mempelajari cara membuat repositori rpm kustom dan cara mengonfigurasi distribusi kita 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 apa pun dari keluarga Red Hat
Perangkat Lunak dnf, buat repo
Lainnya Hak istimewa administratif untuk mengonfigurasi repositori
Konvensi # – mengharuskan perintah-linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo command
$ – mengharuskan perintah-linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak 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. Pada mesin ini, hal pertama yang perlu kita lakukan adalah menginstal createrepo kemasan. Distribusi yang diinstal pada mesin jarak jauh tidak perlu menjadi distribusi berbasis rpm itu sendiri, selama paket tersebut tersedia. Dalam kasus kita, misalnya, sistem yang terinstal di server adalah Debian, jadi untuk menginstal paket kita 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 yang dihosting di repositori khusus kami dapat diakses melalui protokol HTTP, oleh karena itu kami perlu menginstal server HTTP; dalam hal ini kita akan bekerja dengan Apache. Menginstalnya di Debian, tinggal menjalankannya:

$ sudo apt-get install apache2

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

Membuat repositori

DocumentRoot Apache VirtualHost default dibuat ketika Apache diinstal pada Debian adalah /var/www/html . Pada titik ini kita dapat memilih untuk membuat VirtualHost untuk repositori kita, atau cukup membuat direktori repositori sebagai bagian
dari direktori default. Demi kesederhanaan, dalam tutorial ini kita akan mengeksplorasi opsi terakhir:

$ sudo mkdir /var/www/html/repo

repo direktori yang kami buat dengan perintah di atas, di dalam VirtualHost default DocumentRoot , akan meng-host paket kami, dan akan menjadi basis repositori kami. Untuk menyusunnya dengan lebih baik, sekarang kita ingin membuat beberapa subdirektori
dinamai setelah distribusi, versinya, dan arsitektur paket yang ingin kita sediakan. Misalkan, misalnya, kita ingin menggunakan repositori di Fedora 33 x68_64 , kita harus menjalankan perintah berikut:

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

Langkah selanjutnya adalah mengisi repositori. Yang harus kita lakukan adalah menempatkan paket yang ingin kita sediakan, di dalam direktori repositori yang sesuai. Dalam hal ini, sebagai contoh, saya akan mengisi repositori dengan paket yang diperoleh dengan mengkompilasi editor VSCode dari sumber. Paket tersebut bernama code-1.56.0-1617183449.el8.x86_64.rpm . Setelah disalin, struktur file kita akan terlihat seperti ini:

repo
└── fedora
    └── releases
        └── 33
            └── x86_64
                └── code-1.56.0-1617183449.el8.x86_64.rpm

Dengan repositori kami terisi, yang ingin kami lakukan hanyalah menjalankan createrepo perintah di dalam direktori yang berisi paket-paket. Dalam hal ini kita akan menjalankan:

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

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

repo
└── fedora
    └── releases
        └── 33
            └── x86_64
                ├── code-1.56.0-1617183449.el8.x86_64.rpm
                └── repodata
                    ├── 22ab1d1d123bb7d7cde556bf8a8ac4daf9cdb75572f40ebdd2f399908cb7f6b9-other.xml.gz
                    ├── 26ed9b63868b2e0263dfa817e21921c4e7542c1be9f6b7875381bba6bd78d1c6-primary.sqlite.bz2
                    ├── 50fc300a761812761cf9a8413a619da23cf336d49999753568ce19a97c025d44-other.sqlite.bz2
                    ├── a523f54b5fcd0720c182969f991f51e125728a361f31237725dc9418d5e126ea-primary.xml.gz
                    ├── af2fa9ea5deaffca5ffc9f3e524155defa8cfa5656962845a45c8b0e984f3e19-filelists.sqlite.bz2
                    ├── f95849cf860f1184b97d30000ea1f9f1c35edd6d625dcd387453187510dd4a18-filelists.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 beralih ke distribusi berbasis rpm dan melihat cara mengonfigurasinya untuk menggunakan repositori khusus kita sebagai sumber perangkat lunak. File konfigurasi repositori ditemukan di bawah /etc/yum.repos.d direktori, dan harus memiliki
.repo perpanjangan. Dengan melihat ke 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-testing.repo
fedora.repo                  rpmfusion-free.repo
fedora-updates-modular.repo  rpmfusion-free-updates.repo
fedora-updates.repo          rpmfusion-free-updates-testing.repo

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

  • Id repositori
  • Nama repositori
  • Sebuah basis url repositori
  • Status penyimpanan
  • Apakah akan memeriksa tanda tangan gpg paket atau tidak

Kami akan menyimpan informasi tersebut dalam file bernama ownrepo.repo , ini dia isinya:

[ownrepo]
name=Own repository
baseurl=http://192.168.0.39/repo/fedora/releases/$releasever/$basearch
enabled=1
gpgcheck=0

Definisi dilaporkan di dalam tanda kurung ([ownrepo] ) adalah ID repositori, dan harus unik di semua definisi repositori. Dengan name key kami memberikan nama yang dapat dibaca manusia untuk repositori sebagai string. Ini opsional; jika nama tidak diberikan, ID repositori akan digunakan juga sebagai nama.

Dengan baseurl key kami menentukan daftar URL untuk repositori. URL harus dipisahkan dengan spasi atau koma. Dalam contoh kami, kami hanya menyediakan satu URL, tetapi Anda dapat melihat bahwa kami menggunakan dua variabel di dalamnya:

  • $releasever
  • $basearch

Perluasan yang pertama, $releasever , akan menghasilkan versi rilis sistem operasi, dalam hal ini 33 , karena kami menginstal repositori kami di sistem Fedora 33. Variabel kedua, $basearch , akan diperluas dalam string yang mewakili arsitektur dasar sistem, yang dalam kasus kami adalah x86_64 .

enabled kunci memerlukan boolean nilai yang menentukan apakah repositori harus dianggap aktif atau tidak. Kunci terakhir yang kami gunakan adalah gpgcheck :itu juga memerlukan nilai boolean, dan digunakan untuk menentukan apakah pemeriksaan tanda tangan gpg harus dilakukan pada paket yang diinstal dari repositori. Dalam contoh kami, kami hanya menonaktifkan centang, karena repositori dimaksudkan untuk penggunaan pribadi saja.

Sekarang setelah repositori kita dikonfigurasi, kita dapat mencoba menginstal code paket darinya, cukup dengan menjalankan:

$ sudo dnf install code
Own repository                                                                    451 kB/s |  13 kB     00:00
Dependencies resolved.
==================================================================================================================
 Package              Architecture           Version                                Repository               Size
==================================================================================================================
Installing:
 code                 x86_64                 1.56.0-1617183449.el8                  ownrepo                 100 M

Transaction Summary
==================================================================================================================
Install  1 Package

Total download size: 100 M
Installed size: 294 M
Is this ok [y/N]:

Setelah kami memberikan jawaban afirmatif untuk permintaan dan mengonfirmasinya, paket akan diinstal pada sistem kami.

Kesimpulan

Dalam artikel ini kita mempelajari betapa mudahnya membuat repositori rpm kustom dengan createrepo utilitas, dan kami melihat cara membuat file konfigurasi dnf pada distribusi kami untuk menggunakannya sebagai sumber perangkat lunak. Kami melihat subset minimal dari
kunci yang dapat digunakan dalam konfigurasi repositori; untuk daftar yang lebih detail, Anda dapat melihat dokumentasi resmi dnf.


Linux
  1. Cara membuat paket rpm

  2. Cara Menambahkan Repositori Perangkat Lunak Linux Microsoft

  3. Cara membuat paket RPM Linux

  1. Cara Membuat Script Perintah Linux

  2. Cara Menginstal CVS dan Membuat Repositori CVS di Server Linux

  3. Bagaimana cara membuat perintah khusus di Unix/Linux?

  1. Cara Membuat Swap di Linux

  2. Cara membuat layanan Systemd di Linux

  3. Cara membuat file swap di Linux