Cara mudah untuk membuat paket Debian dan repositori paket lokal

Cara mudah untuk membuat paket Debian dan repositori paket lokal

Artikel ini menjelaskan cara sederhana untuk membuat paket Debian buatan rumah dan memasukkannya ke dalam repositori paket lokal. Meskipun kami dapat menggunakan paket Debian/Ubuntu yang ada, kami akan mulai dari awal dengan membuat dan mengemas aplikasi sepele kami sendiri. Setelah paket kami siap, kami akan memasukkannya ke dalam repositori paket lokal kami. Artikel ini menggambarkan pendekatan yang sangat sederhana, namun dapat berfungsi sebagai templat dalam banyak skenario yang berbeda.

Dalam tutorial ini Anda akan belajar:

  • Cara membuat paket Debian yang sepele
  • Cara membuat repositori debian lokal
  • Cara menambahkan repositori ke daftar 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 Debian
Perangkat lunak Paket build-esensial
Lainnya Server web Apache yang berfungsi dan izin root
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Membuat biner yang dapat dieksekusi

Hal pertama yang perlu kita lakukan, adalah membuat program C ++ sederhana, mengkompilasi dan mengujinya. Jika Anda ingin menulis program C sederhana sebagai gantinya kunjungi tutorial komprehensif kami untuk pemrograman C. Program kami tidak akan melakukan apa pun hanya mencetak “linuxconfig.org ”di layar. Ini kodenya:

#include int main () menggunakan namespace std; cout << "linuxconfig.org\n"; 
Menyalin

Simpan kode di atas sebagai LinuxConfig.CC. Untuk mengkompilasi program, kita membutuhkan G++ kompiler, yang disediakan oleh paket build-esensial. Kami dapat menginstalnya dengan menjalankan:

$ sudo apt-get install build-esential

Untuk mengkompilasi kode, kami menggunakan perintah Linux berikut:

$ G ++ linuxconfig.CC -O LinuxConfig $ ./LinuxConfig LinuxConfig.org

Semuanya terlihat bagus. Pada titik ini kita harus memiliki yang dapat dieksekusi yang disebut "LinuxConfig" yang mencetak beberapa string di layar.



Membuat Paket Debian

Sekarang kami memiliki program kecil kami yang siap dalam bentuk biner yang dapat dieksekusi, kami dapat membuat paket Debian. Untuk melakukan itu, kami menggunakan dpkg-deb alat. Pertama -tama, kita perlu membuat struktur paket Debian. Satu -satunya file yang diperlukan untuk membangun paket Debian adalah:

  • Debian/Kontrol
  • file khusus menjadi bagian dari paket (tidak diperlukan)

Pertama buat direktori yang dipanggil LinuxConfig. Direktori ini akan menyimpan semua file paket yang diperlukan:

$ mkdir linuxconfig

Selanjutnya, buat direktori Debian dan file kontrol:

$ mkdir linuxconfig/debian $ vi linuxconfig/debian/control

Di dalam file kontrol, kami memasukkan informasi berikut:

Paket: LinuxConfig Versi: 1.0 Bagian: Prioritas Kustom: Arsitektur Opsional: Semua Esensi: Tidak Ada Ukuran Terpasang: 1024 Pemeliharaan: LinuxConfig.Deskripsi org: cetak linuxconfig.org di layar

Hebat, satu -satunya hal yang hilang adalah program linuxconfig kami. Di dalam LinuxConfig Direktori Kami membuat pohon direktori yang mewakili jalur di mana program kami akan diinstal dalam sistem, dan menyalin
Dieksekusi ke dalamnya:

$ mkdir -p linuxconfig/usr/bin/$ cp/path/to/linuxconfig linuxconfig/usr/bin/

Pada titik ini kami siap membuat paket:

$ dpkg-deb-Build linuxconfig dpkg-deb: Paket bangunan 'linuxconfig' di 'linuxconfig.Deb '. $ ls linuxconfig linuxconfig.Deb

Anda mungkin ingin mengubah nama paket sehingga termasuk versi program dan arsitektur paket. Misalnya:

$ MV LinuxConfig.Deb LinuxConfig-1.0_amd64.Deb

Semua selesai ! Paket kami sudah siap ! (Catatan: Ini hanya sebuah contoh, pembuatan paket resmi membutuhkan lebih banyak pekerjaan).

Menyiapkan repositori paket lokal

Untuk membuat repositori paket lokal, kami membutuhkan yang berfungsi. Dalam hal ini kita akan menganggap penggunaannya Apache dengan pengaturan default. Untuk menginstal Webserver Apache, yang perlu kita lakukan adalah menjalankan:

$ sudo apt-get install apache2


Setelah diinstal, untuk memverifikasi bahwa server web berfungsi, kami dapat menavigasi ke alamat IP mesin (atau ke 'http: // localhost', jika menjalankan browser pada mesin itu sendiri) yang, dalam kasus kami http: // 10.1.1.4. Kita harus melihat
terkenal Berhasil! pesan.

Perangkat lunak server web sedang berjalan tetapi belum ada konten yang ditambahkan. Itu Root document dari apache default VirtualHost, adalah /var/www/html: Di sinilah kita akan membuat repositori kita.

Mari kita buat direktori "debian" di dalam /var/www/html dan salin linuxconfig-1.0_amd64.Paket Deb di dalamnya:

$ sudo mkdir/var/www/html/debian $ sudo cp/path/to/linuxconfig-1.0_amd64.Deb/var/www/html/debian/

Langkah selanjutnya terdiri dari generasi daftar paket. Kami pindah ke Debian direktori, dan gunakan DPKG-scanpackages utilitas untuk menyelesaikan tugas. Anda mungkin perlu menginstal dpkg-dev paket jika DPKG-scanpackages Perintah hilang:

$ dpkg-scanpackages . | gzip -c9> paket.GZ DPKG-SCANPackages: Info: Menulis 1 entri ke file paket output.

Repositori lokal kami sekarang siap.

Menambahkan repositori ke sumber perangkat lunak

Pada titik ini untuk dapat menginstal paket kami dari repositori lokal yang kami buat, kami perlu mengedit /etc/apt/sumber.daftar file, tambahkan entri relatif ke sana (ubah alamat IP untuk mencerminkan mesin Anda), dan
Sinkronisasi repositori:

echo "deb [tepercaya = ya] http: // 10.1.1.4/Debian ./"| tee -a/etc/apt/sumber.Daftar> /dev /null 

Pastikan untuk menambahkan hal di atas [tepercaya = ya] Untuk menghindari pesan kesalahan berikut:

 Rilis 'tidak memiliki file rilis. N: Memperbarui dari repositori seperti itu tidak dapat dilakukan dengan aman, dan karenanya dinonaktifkan secara default. 

Sinkronisasi repositori:

$ sudo apt-get update IGN: 1 http: // 10.1.1.4/Debian ./Inrelease ign: 2 http: // 10.1.1.4/Debian ./Rilis IGN: 3 http: // 10.1.1.4/Debian ./Paket IGN: 3 http: // 10.1.1.4/Debian ./Paket IGN: 3 http: // 10.1.1.4/Debian ./Paket dapatkan: 3 http: // 10.1.1.4/Debian ./ Paket [303 b]

Untuk menginstal paket kami, kami sekarang dapat menggunakan alat apt-get:

$ sudo apt-get install linuxconfig Paket bacaan Daftar… Selesai Membangun Ketergantungan Pohon Pembacaan Informasi Keadaan… Selesai Paket baru berikut akan diinstal: LinuxConfig 0 ditingkatkan, 1 yang baru diinstal, 0 untuk menghapus dan 8 tidak ditingkatkan. Perlu mendapatkan 3174 B arsip. Setelah operasi ini, 1.049 kb ruang disk tambahan akan digunakan. PERINGATAN: Paket -paket berikut tidak dapat diautentikasi! LinuxConfig Instal Paket -paket ini tanpa verifikasi [Y/N]? y

Menjalankan:

$ linuxconfig linuxconfig.org

Untuk menghapus paket dari sistem, cukup jalankan:

$ sudo apt-get hapus daftar paket bacaan linuxconfig… selesai Membangun Informasi Pembacaan Pohon Ketergantungan… Selesai Paket-paket berikut akan dihapus: LinuxConfig 0 ditingkatkan, 0 yang baru diinstal, 1 untuk menghapus dan 3 tidak ditingkatkan. Setelah operasi ini, ruang disk 1049 kb akan dibebaskan. Apakah Anda ingin melanjutkan? [Y/n] y

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Menguasai loop skrip bash
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Bagaimana bekerja dengan WooCommerce Rest API dengan Python
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Cara membuat file sementara menggunakan mktemp di linux
  • Cara membangun kembali paket menggunakan sistem build arch linux
  • Cara membuat aplikasi flatpak dari awal
  • Cara bekerja dengan grup paket DNF