Cara Mudah untuk Membuat Pakej Debian dan Repositori Pakej Tempatan

Cara Mudah untuk Membuat Pakej Debian dan Repositori Pakej Tempatan

Artikel ini menerangkan cara mudah untuk membuat pakej Debian yang dibuat di rumah dan memasukkannya ke dalam repositori pakej tempatan. Walaupun kita boleh menggunakan pakej Debian/Ubuntu yang ada, kita akan bermula dari awal dengan membuat dan membungkus aplikasi remeh kita sendiri. Setelah pakej kami siap, kami akan memasukkannya ke repositori pakej tempatan kami. Artikel ini menggambarkan pendekatan yang sangat sederhana, namun ia mungkin berfungsi sebagai templat dalam banyak senario.

Dalam tutorial ini anda akan belajar:

  • Cara membuat pakej debian remeh
  • Cara Membuat Repositori Debian Tempatan
  • Cara Menambah Repositori ke Senarai Sumber Perisian


Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Debian
Perisian Pakej Build-Essential
Yang lain Pelayan web Apache yang berfungsi dan kebenaran root
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Membuat Executable Perduaan

Perkara pertama yang perlu kita lakukan, adalah untuk membuat program C ++ yang mudah, menyusunnya dan mengujinya. Sekiranya anda ingin menulis program C yang mudah sebaliknya lawati tutorial komprehensif kami ke pengaturcaraan c. Program kami tidak akan melakukan apa -apa lagi hanya mencetak "linuxconfig.org ”di skrin. Inilah kodnya:

#include int main () menggunakan ruang nama std; cout << "linuxconfig.org\n"; 
Salinan

Simpan kod di atas sebagai Linuxconfig.cc. Untuk menyusun program yang kita perlukan g++ pengkompil, yang disediakan oleh pakej yang penting. Kita boleh memasangnya dengan menjalankan:

$ sudo apt-get memasang binaan-penting

Untuk menyusun kod, kami menggunakan arahan Linux berikut:

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

Semua kelihatan baik. Pada ketika ini, kita harus mempunyai executable yang dipanggil "Linuxconfig" yang mencetak beberapa rentetan pada skrin.



Membuat Pakej Debian

Sekarang kita mempunyai program kecil kita siap dalam bentuk binari yang boleh dilaksanakan, kita boleh membuat pakej debian. Untuk melakukan itu kita menggunakan dpkg-deb alat. Pertama sekali, kita perlu membuat struktur pakej Debian. Satu -satunya fail yang diperlukan untuk membina pakej Debian ialah:

  • Debian/Kawalan
  • fail tersuai menjadi sebahagian daripada pakej (tidak diperlukan)

Pertama buat direktori yang dipanggil Linuxconfig. Direktori ini akan memegang semua fail pakej yang diperlukan:

$ mkdir linuxconfig

Seterusnya, buat direktori Debian dan fail kawalan:

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

Di dalam fail kawalan, kami memasukkan maklumat berikut:

Pakej: Linuxconfig Versi: 1.0 Seksyen: Keutamaan Custom: Senibina Pilihan: Semua Penting: Tiada Saiz Dipasang: 1024 Penyelenggara: Linuxconfig.Penerangan Org: Cetak Linuxconfig.org di skrin

Hebat, satu -satunya perkara yang hilang ialah program Linuxconfig kami. Di dalam Linuxconfig direktori kami membuat pokok direktori yang mewakili laluan di mana program kami akan dipasang dalam sistem, dan menyalin
boleh dilaksanakan ke dalamnya:

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

Pada ketika ini kami sudah bersedia untuk membuat pakej:

$ dpkg-deb-Membina linuxconfig dpkg-deb: pakej bangunan 'linuxconfig' dalam 'linuxconfig.Deb '. $ ls linuxconfig linuxconfig.Deb

Anda mungkin mahu menukar nama pakej supaya ia termasuk versi program dan seni bina pakej. Sebagai contoh:

$ mv linuxconfig.Deb Linuxconfig-1.0_AMD64.Deb

Semua selesai ! Pakej kami sudah siap ! (Nota: Ini hanya satu contoh, penciptaan pakej rasmi memerlukan lebih banyak kerja).

Menyediakan repositori pakej tempatan

Untuk membuat repositori pakej tempatan, kami memerlukan kerja. Dalam kes ini kita akan menganggap penggunaan Apache dengan tetapan lalai. Untuk memasang Webserver Apache, yang perlu kita lakukan ialah menjalankan:

$ sudo apt-get memasang apache2


Sebaik sahaja dipasang, untuk mengesahkan bahawa webserver berfungsi, kami boleh menavigasi ke alamat IP mesin (atau ke 'http: // localhost', jika menjalankan penyemak imbas pada mesin itu sendiri) yang, dalam kes kami adalah http: // 10.1.1.4. Kita mesti melihat
terkenal Ianya berfungsi! mesej.

Perisian pelayan web sedang berjalan tetapi belum ada kandungan yang ditambah. The Documentroot Apache lalai Virtualhost, adalah /var/www/html: di sinilah kita akan membuat repositori kita.

Mari buat direktori "Debian" di dalam /var/www/html dan salin linuxconfig-1.0_AMD64.Pakej Deb di dalamnya:

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

Langkah seterusnya terdiri daripada generasi senarai pakej. Kami bergerak ke Debian direktori, dan gunakan DPKG-scanpackages utiliti untuk melaksanakan tugas. Anda mungkin perlu memasang DPKG-DEV pakej sekiranya berlaku DPKG-scanpackages Perintah hilang:

$ dpkg-scanpackages . | gzip -c9> pakej.gz dpkg-scanpackages: Info: Menulis 1 entri ke fail pakej output.

Repositori tempatan kami kini sudah siap.

Menambah repositori ke sumber perisian

Pada ketika ini dapat memasang pakej kami dari repositori tempatan yang kami buat, kami perlu mengeditnya /etc/apt/sumber.senarai fail, tambahkan entri relatif kepadanya (tukar alamat IP untuk mencerminkan mesin anda), dan
Menyegerakkan repositori:

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

Pastikan anda menambah perkara di atas [dipercayai = ya] Untuk mengelakkan mesej ralat berikut:

 Pelepasan 'tidak mempunyai fail pelepasan. N: mengemas kini dari repositori sedemikian tidak dapat dilakukan dengan selamat, dan oleh itu dilumpuhkan secara lalai. 

Menyegerakkan 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 ./Pakej IGN: 3 http: // 10.1.1.4/Debian ./Pakej IGN: 3 http: // 10.1.1.4/Debian ./Pakej Dapatkan: 3 http: // 10.1.1.4/Debian ./ Pakej [303 B]

Untuk memasang pakej kami, kami kini boleh menggunakan alat apt-get:

$ sudo apt-get Install Linuxconfig bacaan Pakej Pakej… Dilakukan Bangunan Kebergantungan Pokok Membaca Maklumat Negeri ... Selesai pakej baru berikut akan dipasang: Linuxconfig 0 ditingkatkan, 1 yang baru dipasang, 0 untuk dikeluarkan dan 8 tidak dinaik taraf. Perlu mendapatkan 3174 b arkib. Selepas operasi ini, 1,049 kb ruang cakera tambahan akan digunakan. Amaran: Pakej berikut tidak dapat disahkan! Linuxconfig memasang pakej ini tanpa pengesahan [Y/N]? y

Jalankan:

$ linuxconfig linuxconfig.org

Untuk mengeluarkan pakej dari sistem, hanya jalankan:

$ sudo apt-get mengalih keluar senarai pakej bacaan linuxconfig… Dilakukan bangunan ketergantungan pokok membaca maklumat negeri ... dilakukan pakej berikut akan dikeluarkan: linuxconfig 0 dinaik taraf, 0 baru dipasang, 1 untuk dikeluarkan dan 3 tidak dinaik taraf. Selepas operasi ini, ruang cakera 1049 kb akan dibebaskan. Adakah anda mahu meneruskan? [Y/n] y

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Menguasai Gelung Skrip Bash
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Cara Bekerja Dengan API Rest WooCommerce dengan Python
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara membuat fail sementara menggunakan mktemp pada linux
  • Cara Membangun semula Pakej Menggunakan Sistem Membina Linux Arch
  • Cara membuat aplikasi flatpak dari awal
  • Cara Bekerja dengan Kumpulan Pakej DNF