GNU/Linux >> Belajar Linux >  >> Debian

Cara Membangun Paket Debian Dari Sumber

Dalam panduan langkah demi langkah ini, mari kita lihat bagaimana membangun paket debian dari sumber di Debian, Ubuntu dan sistem berbasis APT lainnya seperti Linux Mint.

Sistem berbasis Debian dan Debian seperti Ubuntu menggunakan Alat Paket Lanjutan , atau APT singkatnya, untuk menginstal, memperbarui, meningkatkan, dan menghapus perangkat lunak dari baris perintah.

Biasanya, manajer paket APT menyimpan daftar repositori dalam file bernama /etc/apt/sources.list dan dalam file apa pun dengan akhiran .list di bawah direktori /etc/apt/sources.list.d/ .

Saat kita menginstal sebuah paket, apt perintah mengambil versi biner atau pra-kompilasi dari paket yang diberikan dari repositori ini.

Selain menginstal paket biner, APT juga memungkinkan Anda untuk mengunduh kode sumber suatu paket. Jadi Anda kemudian dapat menambahkan beberapa fitur di sumber, membangun paket dari kode sumber, dan terakhir menginstal versi paket yang dimodifikasi.

Mengapa kita harus membuat paket dari sumber?

Mungkin ada banyak alasan untuk membuat paket dari sumber. Berikut adalah beberapa alasan yang dapat saya pikirkan sekarang:

  • Periksa kode sumber untuk menemukan bug.
  • Tambahkan fitur baru dalam paket yang tidak lagi dikembangkan secara aktif.
  • Instal paket versi terbaru dari sumber. Secara umum, paket-paket di repositori resmi mungkin agak lama.
  • Dan yang lebih penting - pelajari cara membuat paket Debian dari sumber.

Instal alat pembangunan yang diperlukan

Untuk membangun paket biner dari sumber, pertama-tama kita perlu menginstal alat pembangunan yang diperlukan. Bergantung pada alat baris perintah untuk membangun paket biner, Anda mungkin perlu menginstal salah satu dari paket berikut:

  1. dpkg-dev
  2. skrip dev

Paket-paket ini menyediakan banyak alat untuk membangun paket biner dari kode sumber.

Untuk menginstal "dpkg-dev" , jalankan:

$ sudo apt install dpkg-dev

Perintah untuk menginstal "devscripts" paketnya adalah:

$ sudo apt install devscripts

Aktifkan repositori sumber

Pastikan Anda telah mengaktifkan repositori sumber.

Untuk melakukannya, buka /etc/apt/sources.list berkas:

$ sudo vim /etc/apt/sources.list

Anda akan melihat beberapa baris di dalamnya seperti di bawah ini:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://in.archive.ubuntu.com/ubuntu focal main restricted
# deb-src http://in.archive.ubuntu.com/ubuntu focal main restricted
[...]

Pada file di atas, semua baris yang diawali dengan satu atau dua hash (#) hanyalah komentar, sebagai informasi saja. Dan baris tanpa hash adalah repositori yang tepat .

Di baris repositori apt yang dimulai dengan "deb" relatif terhadap paket biner, yang dapat diinstal menggunakan manajer paket apt oleh pengguna. Dan baris yang dimulai dengan "deb-src" relatif terhadap paket sumber. Ini berguna untuk pengembang. Secara default, "deb-src" dikomentari di daftar sumber.

Untuk mengunduh paket sumber, Anda perlu menghapus komentar pada baris "deb-src". Hapus # simbol untuk menghapus komentar pada suatu baris. Setelah menghapus komentar, baris repositori akan terlihat seperti di bawah ini:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://in.archive.ubuntu.com/ubuntu focal main restricted
deb-src http://in.archive.ubuntu.com/ubuntu focal main restricted
[...]

Simpan dan tutup file. Perbarui daftar repositori menggunakan perintah:

$ sudo apt update

Unduh paket sumber

Unduh sumber paket menggunakan "apt source <package-name>" memerintah. Misalnya, perintah berikut akan mengunduh kode sumber "Hello World!" program:

$ apt source hello

Contoh keluaran:

Reading package lists... Done
Need to get 734 kB of source archives.
Get:1 http://in.archive.ubuntu.com/ubuntu focal/main hello 2.10-2ubuntu2 (dsc) [1847 B]
Get:2 http://in.archive.ubuntu.com/ubuntu focal/main hello 2.10-2ubuntu2 (tar) [726 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu focal/main hello 2.10-2ubuntu2 (diff) [6560 B]
Fetched 734 kB in 2s (336 kB/s)
dpkg-source: info: extracting hello in hello-2.10
dpkg-source: info: unpacking hello_2.10.orig.tar.gz
dpkg-source: info: unpacking hello_2.10-2ubuntu2.debian.tar.xz

Seperti yang Anda lihat, saya telah mengunduh kode sumber program Hello World.

$ ls
hello-2.10 hello_2.10-2ubuntu2.debian.tar.xz hello_2.10-2ubuntu2.dsc hello_2.10.orig.tar.gz

Lihat konten sebenarnya dari kode sumber:

$ ls hello-2.10/
ABOUT-NLS  ChangeLog    INSTALL      NEWS        README-release  aclocal.m4  configure     debian   lib       man  tests
AUTHORS    ChangeLog.O  Makefile.am  README      THANKS          build-aux   configure.ac  doc      m4        po
COPYING    GNUmakefile  Makefile.in  README-dev  TODO            config.in   contrib       hello.1  maint.mk  src

Instal dependensi build untuk paket

Selanjutnya, kita perlu menginstal dependensi untuk paket itu juga. Untuk melakukannya, jalankan:

$ sudo apt build-dep hello

Kami sekarang telah mengunduh kode sumber paket dan menginstal dependensi yang diperlukan untuk membangun paket ini. Selanjutnya lakukan perubahan pada source code.

Memodifikasi kode sumber paket debian

Cd ke direktori yang berisi sumber paket. Dalam kasus kami, ini adalah halo-2.10 .

$ cd hello-2.10

Ubah kode sesuai keinginan. Kode ada di file "hello.c" di bawah "src" direktori.

$ vi src/hello.c

Tweak kode dan/atau buat perubahan apa pun. Setelah selesai mengedit kode, simpan dan tutup file.

Sekarang saatnya untuk membangun paket .deb yang sebenarnya.

Buat paket Debian dari sumber

Kami mengunduh kode sumber dan memodifikasi kodenya. Mari kita membangun paket dari sumber. Kita dapat melakukannya dengan tiga cara:

  1. Menggunakan "dpkg-buildpackage" perintah
  2. Menggunakan "debuild" perintah
  3. Unduh sumbernya dan buat langsung

Metode 1 - Menggunakan dpkg-buildpackage:

Pastikan Anda telah menginstal "dpkg-dev" paket.

Dan kemudian jalankan perintah berikut untuk membangun paket dari sumber:

$ dpkg-buildpackage -rfakeroot -b -uc -us

Di sini,

  • dpkg-buildpackage -  Perintah untuk membuat paket biner atau sumber dari sumber.
  • -rfakeroot - Buat lingkungan fakeroot untuk mensimulasikan hak akses root (untuk menghindari masalah kepemilikan dan izin).
  • -b - Bangun paket biner saja.
  • -uc - Jangan menandatangani changelog secara kriptografis. yaitu Jangan menandatangani .buildinfo dan .changes file
  • -us - Jangan menandatangani paket sumber.

Harap pastikan bahwa Anda menjalankan perintah di atas di direktori utama dari pohon sumber. Jika tidak, itu tidak akan berhasil.

Jika build berhasil, Anda akan melihat pesan seperti di bawah ini:

[...]
dpkg-deb: building package 'hello' in '../hello_2.10-2ubuntu2_amd64.deb'.
dpkg-deb: building package 'hello-dbgsym' in 'debian/.debhelper/scratch-space/build-hello/hello-dbgsym_2.10-2ubuntu2_amd64.deb'.
        Renaming hello-dbgsym_2.10-2ubuntu2_amd64.deb to hello-dbgsym_2.10-2ubuntu2_amd64.ddeb
 dpkg-genbuildinfo --build=binary
 dpkg-genchanges --build=binary >../hello_2.10-2ubuntu2_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
 dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)

Selamat! Kami telah berhasil membangun paket .deb dari sumber. Sekarang, kembali ke direktori induk dan Anda akan melihat file .deb yang baru dibuat:

$ cd ..
$ ls

Contoh keluaran:

hello-2.10                             hello_2.10-2ubuntu2.dsc              hello_2.10-2ubuntu2_amd64.deb
hello-dbgsym_2.10-2ubuntu2_amd64.ddeb  hello_2.10-2ubuntu2_amd64.buildinfo  hello_2.10.orig.tar.gz
hello_2.10-2ubuntu2.debian.tar.xz      hello_2.10-2ubuntu2_amd64.changes

Metode 2 - Menggunakan debuild

Pastikan Anda telah menginstal "devscripts" paket.

Kemudian, buat paket biner dengan menjalankan perintah berikut dari pohon sumber:

$ debuild -b -uc -us

Setelah berhasil membangun, .deb yang dihasilkan paket akan disimpan di direktori induk.

Metode 3 - Unduh dan buat secara langsung

Ini adalah metode termudah dan lurus ke depan daripada dua metode di atas. Dalam metode ini, kami mengunduh kode sumber paket dan meneruskan "--compile" opsi untuk membangun biner dalam satu baris perintah di bawah ini:

$ sudo apt-get source --compile hello

Perintah di atas akan mengunduh kode sumber "hello" memprogram dan membangun .deb paket dan simpan di direktori saat ini.

Instal file .deb

Pergi ke lokasi di mana .deb file disimpan dan instal seperti di bawah ini:

$ sudo dpkg -i hello_2.10-2ubuntu2_amd64.deb

Jika Anda melihat pesan kesalahan dependensi yang hilang, jalankan:

$ sudo apt install -f

Seperti yang Anda lihat, membuat paket debian dari sumber di Linux sangatlah mudah!

Bacaan terkait:

  • Cara Membuat Paket Dari Sumber Menggunakan CheckInstall
  • Cara Mudah Membuat Paket Linux Untuk Berbagai Platform
  • Buat Ulang Paket Biner Debian Yang Sudah Terinstal Pada Sistem
  • Cara Mengonversi Paket Linux Dengan Alien
  • Cara Mengonversi Paket DEB Menjadi Paket Arch Linux

Semoga membantu.


Debian
  1. Cara Mengkompilasi Alat Kompresi Brotli dari Sumber di Debian 9

  2. Cara Upgrade dari Debian 10 ke Debian 11

  3. Cara Membangun Paket Dari Sumber Menggunakan CheckInstall

  1. Cara Menginstal Paket RPM di Debian 11 Bullseye

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

  3. Bagaimana cara mengaktifkan paket tidak bebas di Debian?

  1. Cara mengekstrak file dari arsip paket Debian DEB

  2. Cara Memasang Benang di Debian 9

  3. Debian – Bagaimana Menginstal Beberapa Paket Dari Debian “tidak stabil” Di Komputer Menjalankan Debian “stabil”?