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
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