Rumah  >  Artikel  >  tutorial komputer  >  Sangat mudah untuk membuat pakej deb dalam Linux: Analisis komposisi dalaman dan prinsip penggunaan fail pakej pemasangan deb Ubuntu

Sangat mudah untuk membuat pakej deb dalam Linux: Analisis komposisi dalaman dan prinsip penggunaan fail pakej pemasangan deb Ubuntu

WBOY
WBOYke hadapan
2024-02-19 13:21:15830semak imbas

Sangat mudah untuk membuat pakej deb dalam Linux: Analisis komposisi dalaman dan prinsip penggunaan fail pakej pemasangan deb Ubuntu

Fail Deb ialah fail arkib yang digunakan untuk mengedar dan memasang Linux Debian dan program pengedaran terbitannya, biasanya mengandungi data aplikasi. Ia berguna untuk mengendalikan kebergantungan, penyepaduan desktop dan menjalankan skrip pra dan selepas pemasangan. Format pakej lain yang serupa dengan format Deb ialah fail rpm yang biasa digunakan dalam pengedaran siri Fedora.

Artikel ini menunjukkan cara membuat pakej deb yang ringkas melalui contoh, menerangkan peranan setiap fail dalam pakej deb dan cara untuk melaksanakan dan mengekalkannya selepas pemasangan.

analisis pakej deb

deb ialah format arkib Unix biasa yang mengandungi fail aplikasi dan utiliti lain. Komponen utama ialah fail kawalan (kawalan), yang mengandungi maklumat penting tentang pakej deb dan pemasang.

  • Secara dalaman, pakej deb mengandungi koleksi fail yang menyerupai struktur direktori sistem fail biasa Linux, seperti /usr, /usr/bin, /opt, dsb. Semasa pemasangan, fail yang diletakkan dalam salah satu daripada direktori ini disalin ke lokasi yang sama dalam sistem fail sebenar. Contohnya, fail binari seperti /usr/bin/binaryfile dalam pakej akan dipasang pada /usr/bin/binaryfile sistem.
  • Secara luaran, semua fail pakej deb mengikut konvensyen penamaan tertentu:
_-_.deb

Andaikan anda ingin menerbitkan program yang dipanggil mynano, versi 1.0, yang dibina untuk pemproses 64-bit (AMD64). Nama fail deb anda akan menjadi seperti mynano_1.0-0_amd64.deb

Buat pakej deb

Kami sedia menjana pakej. Sila pastikan sistem anda memasang alat dpkg-deb (disediakan oleh pakej dpkg). Pakej deb akhir akan dijana menggunakan dpkg-deb kemudian.

(1) Buat direktori kerja untuk menyimpan fail pakej dan namakannya mengikut konvensyen penamaan sebelumnya.

mkdir mynano_1.0-1_amd64/

(2) Cipta struktur dalaman dan letakkan fail program di tempat yang sepatutnya dipasang pada sistem sasaran. Andaikan anda ingin memasang boleh laku kepada: /usr/bin/

Buat direktori dahulu:

mkdir -p mynano_1.0-1_amd64/usr/bin/

Bendera -p arahan mkdir akan mencipta direktori bersarang dan menciptanya secara automatik jika mana-mana daripadanya tidak wujud. Kemudian salin fail boleh laku ke dalamnya:

# 假设你开发的程序可执行文件为 ~/YourProjects/mynano/src/targets/release/mynano
cp ~/YourProjects/mynano/src/targets/release/mynanomynano_1.0-1_amd64/usr/bin/

(3) Buat kawalan fail Fail ini terletak dalam direktori DEBIAN (perhatikan bahawa nama direktori adalah dalam huruf besar)

Buat folder dahulu: DEBIAN

mkdir mynano_1.0-1_amd64/DEBIAN

Kemudian buat fail kosong: control

touch mynano_1.0-1_amd64/DEBIAN/control

Isi kandungan fail kawalan:

Package: mynano
Version: 1.0
Architecture: amd64
Maintainer: linuxlibs 
Description: 基于nano的自定义编辑器
Depends: nano (>= 5.0)

Antaranya:

  • Pakej – nama program;
  • Versi – versi program;
  • Seni bina—Sasaran seni bina;
  • Penyelenggara – Nama dan alamat e-mel orang yang bertanggungjawab untuk menyelenggara pakej;
  • Penerangan – Penerangan ringkas tentang program.
  • Bergantung- Pakej lain bergantung pada pakej ini.

Fail mungkin mengandungi medan berguna lain, seperti Depends menunjukkan senarai kebergantungan pakej deb. Kemudian jika anda menggunakan arahan apt untuk memasang pakej deb, versi nano>=5.0 pakej perisian akan dipasang dahulu, dan kemudian mynano akan dipasang.

(5) Langkah terakhir: Bina pakej deb Panggil dpkg-deb seperti berikut:

dpkg-deb --build --root-owner-group 

Dalam contoh kami:

dpkg-deb --build --root-owner-group 

Bendera –root-owner-group di sini menjadikan semua kandungan pakej deb dimiliki oleh pengguna root, yang merupakan pendekatan standard. Jika tiada bendera sedemikian, pemilik semua fail dan folder ialah pengguna semasa anda Namun, memandangkan sistem di mana pakej deb akan dipasang tidak semestinya mempunyai akaun dengan nama yang sama seperti milik anda, gunakan –root-owner. -kumpulan lebih munasabah.

Arahan di atas akan menghasilkan fail .deb di sebelah direktori kerja, atau mencetak ralat jika terdapat ralat atau tiada dalam pakej. Jika operasi berjaya, anda boleh mengedarkan pakej deb yang dijana kepada orang lain.

(6) Gunakan pakej deb untuk memasang ke dalam sistem: Anda boleh melihat bahawa apabila memasang pakej deb yang kami buat melalui kaedah apt, kebergantungan akan dipasang secara automatik: pakej perisian nano

# apt install ./mynano_1.0-1_amd64.deb
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
注意,选中 'mynano' 而非 './mynano_1.0-1_amd64.deb'
将会同时安装下列软件:
nano
建议安装:
hunspell
下列【新】软件包将被安装:
mynano nano
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 79 个软件包未被升级。
需要下载 280 kB/1,135 kB 的归档。
解压缩后会消耗 881 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 /root/my-nano-editor-src/mynano_1.0-1_amd64.deb mynano amd64 1.0.0 [855 kB]
获取:2 https://mirrors.ustc.edu.cn/ubuntu jammy/main amd64 nano amd64 6.2-1 [280 kB]
已下载 280 kB,耗时 1秒 (422 kB/s)
正在选中未选择的软件包 nano。
(正在读取数据库 ... 系统当前共安装有 231799 个文件和目录。)
准备解压 .../archives/nano_6.2-1_amd64.deb...
正在解压 nano (6.2-1) ...
正在选中未选择的软件包 mynano。
准备解压 .../mynano_1.0-1_amd64.deb...
正在解压 mynano (1.0.0) ...
正在设置 nano (6.2-1) ...
update-alternatives: 使用 /bin/nano 来在自动模式中提供 /usr/bin/editor (editor)
update-alternatives: 使用 /bin/nano 来在自动模式中提供 /usr/bin/pico (pico)
正在设置 mynano (1.0.0) ...
正在处理用于 install-info (6.8-4build1) 的触发器 ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
Scanning processes...
Scanning processor microcode...
Scanning linux images...

(7) [Pilihan] Nyahpasang perisian mynano yang dipasang:

# apt remove mynamo -y
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列软件包将被【卸载】:
mynano
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 79 个软件包未被升级。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 231872 个文件和目录。)
正在卸载 mynano (1.0.0) ...

(8) [Pilihan] Semak kebergantungan mynano_0.1-1_amd64.deb: dpkg -I ./mynano*deb

Apa yang boleh diperbaiki dalam kaedah membuat pakej deb di atas:

Atas ialah kandungan terperinci Sangat mudah untuk membuat pakej deb dalam Linux: Analisis komposisi dalaman dan prinsip penggunaan fail pakej pemasangan deb Ubuntu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:mryunwei.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam