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.
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.
_-_.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
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:
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
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!