GNU/Linux >> Belajar Linux >  >> Debian

Cara mudah untuk membuat paket Debian dan repositori paket lokal

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

Dalam tutorial ini Anda akan mempelajari:

  • Cara membuat paket debian 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-essential
Lainnya Server web Apache dan izin root yang berfungsi
Konvensi # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa

Membuat biner yang dapat dieksekusi

Hal pertama yang perlu kita lakukan adalah membuat program C++ sederhana, mengkompilasinya dan mengujinya. Jika Anda ingin menulis program C sederhana, kunjungi tutorial komprehensif kami tentang pemrograman C. Program kami tidak akan melakukan apa-apa lagi hanya mencetak "linuxconfig.org" di layar. Ini kodenya:

#include <iostream>
int main() {
    using namespace std;
    cout << "linuxconfig.org\n";
}

Simpan kode di atas sebagai linuxconfig.cc . Untuk mengkompilasi program kita membutuhkan g++ compiler, yang disediakan oleh paket build-essential. Kita dapat menginstalnya dengan menjalankan:

$ sudo apt-get install build-essential

Untuk mengkompilasi kode, kita menggunakan perintah linux berikut:

$ g++ linuxconfig.cc -o linuxconfig
$ ./linuxconfig
linuxconfig.org

Semua terlihat bagus. Pada titik ini kita harus memiliki executable bernama “linuxconfig” yang mencetak beberapa string di layar.

Membuat paket Debian

Sekarang kita telah menyiapkan program kecil kita dalam bentuk biner yang dapat dieksekusi, kita dapat membuat paket debian. Untuk melakukan itu kita 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 untuk menjadi bagian dari paket (tidak wajib)

Pertama buat direktori bernama linuxconfig . Direktori ini akan menampung 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:

Package: linuxconfig
Version: 1.0
Section: custom
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: linuxconfig.org
Description: Print linuxconfig.org on the screen

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 di sistem, dan salin
yang dapat dieksekusi ke dalamnya:

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

Pada titik ini kita siap untuk membuat paket:

$ dpkg-deb --build linuxconfig
dpkg-deb: building package `linuxconfig' in `linuxconfig.deb'.
$ ls
linuxconfig  linuxconfig.deb

Anda mungkin ingin mengubah nama paket sehingga menyertakan 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, kita memerlukan file yang berfungsi. Dalam hal ini kita akan mengasumsikan penggunaan Apache dengan pengaturan default. Untuk menginstal server web Apache, yang perlu kita lakukan hanyalah 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 di mesin itu sendiri) yang, dalam kasus kami adalah http:// 10.1.1.4. Kita harus melihat
terkenal Berhasil! pesan.

Perangkat lunak server web berjalan tetapi belum ada konten yang ditambahkan. DocumentRoot dari default Apache VirtualHost , adalah /var/www/html :di sinilah kita akan membuat repositori kita.

Mari kita buat direktori “debian” di dalam /var/www/html dan salin paket linuxconfig-1.0_amd64.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 pembuatan 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 tidak ada:

$ dpkg-scanpackages . | gzip -c9  > Packages.gz
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.

Repositori lokal kami sekarang sudah siap.

Menambahkan repositori ke sumber perangkat lunak

Pada titik ini untuk dapat menginstal paket kita dari repositori lokal yang kita buat, kita perlu mengedit /etc/apt/sources.list file, tambahkan entri relatif terhadapnya (ubah alamat IP untuk mencerminkan mesin Anda), dan
sinkronkan repositori:

echo "deb [trusted=yes] http://10.1.1.4/debian ./" | tee -a /etc/apt/sources.list > /dev/null

Pastikan untuk menambahkan [trusted=yes] di atas untuk menghindari pesan kesalahan berikut:

 Release' does not have a Release file.                   
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Sinkronkan repositori:

$ sudo apt-get update
Ign:1 http://10.1.1.4/debian ./ InRelease
Ign:2 http://10.1.1.4/debian ./ Release
Ign:3 http://10.1.1.4/debian ./ Packages
Ign:3 http://10.1.1.4/debian ./ Packages
Ign:3 http://10.1.1.4/debian ./ Packages
Get:3 http://10.1.1.4/debian ./ Packages [303 B]

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

$ sudo apt-get install linuxconfig
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  linuxconfig
0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded.
Need to get 3174 B of archives.
After this operation, 1,049 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  linuxconfig
Install these packages without verification [y/N]? y

Jalankan:

$ linuxconfig
linuxconfig.org

Untuk menghapus paket dari sistem, jalankan saja:

$ sudo apt-get remove linuxconfig
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  linuxconfig
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
After this operation, 1049 kB disk space will be freed.
Do you want to continue? [Y/n] y

Debian
  1. Cara Membuat Repositori Red Hat Lokal

  2. Cara Membuat repositori YUM Lokal di CentOS 7 / RHEL 7 menggunakan DVD

  3. Cara Mudah Menginstal Dan Menghapus Grup Paket Di Arch Linux

  1. Debian – Keamanan Repositori Debian?

  2. Cara mengaktifkan pengujian dan repositori yang tidak stabil di Debian

  3. Cara Membuat dan Menghapus Pengguna di Debian 9

  1. Debian – Buat Paket .deb Dengan Hanya Ketergantungan?

  2. Debian – Bagaimana Mengetahui Repositori Sumber Paket Di Debian?

  3. Apa cara termudah untuk membuat paket virtual di debian?