房地產(chǎn)網(wǎng)站建設(shè)批發(fā)互聯(lián)網(wǎng)推廣工作好做嗎
創(chuàng)建一個打包的目錄,類似rpmbuild,這里創(chuàng)建了目錄deb_build
mkdir deb_build
目標(biāo)
我有一個hello的二進制文件hello和源碼hello.c, 準(zhǔn)備安裝到/opt/helloworld目錄中
步驟
- 在deb_build目錄創(chuàng)建一個文件夾用于存放我的安裝文件
mkdir helloworld
- 在helloworld文件里創(chuàng)建DEBIAN文件夾和opt文件夾
- 在DEBIAN文件夾創(chuàng)建一個文件control
- 在opt文件夾新建一個helloworld文件夾,存放上hello和hello.c,如下
$ tree helloworld/
helloworld/
├── DEBIAN
│ └── control
└── opt└── helloworld├── hello└── hello.c3 directories, 3 files
control文件類似rpm的spec文件,包含deb的包信息
只要把想安裝的文件寫到對應(yīng)目錄就可以安裝到對應(yīng)的系統(tǒng)目錄
這里描述一個最簡易的control文件
Package: helloworld Description: my deb test Maintainer: username <user@mail.com> Version: 0.1 Architecture: all
- 回到deb_build目錄,執(zhí)行
dpkg -b helloworld
即可在當(dāng)前目錄生成deb包
$ dpkg -b helloworld
dpkg-deb: building package 'hello' in 'helloworld.deb'.
也可以指定
dpkg -b hellorld hellorld-0.1-all.deb
$ dpkg -b helloworld helloworld-0.1-all.deb dpkg-deb: building package 'helloworld' in 'helloworld-0.1-all.deb'.
- 觀看deb包的信息
查看包的字段信息:
$ dpkg -f helloworld-0.1-all.deb
Package: helloworld
Description: my deb test
Maintainer: WangLin <email@163.com>
Version: 0.1
Architecture: all
查看deb包的詳細信息:
$ dpkg -I helloworld-0.1-all.deb new Debian package, version 2.0.size 2804 bytes: control archive=296 bytes.112 bytes, 5 lines control Package: helloworldDescription: my deb testMaintainer: WangLin <email@163.com>Version: 0.1Architecture: all
查看deb包中的文件列表:
$ dpkg -c helloworld-0.1-all.deb
drwxrwxr-x wanglin/wanglin 0 2023-01-11 07:51 ./
drwxrwxr-x wanglin/wanglin 0 2023-01-11 07:54 ./opt/
drwxrwxr-x wanglin/wanglin 0 2023-01-11 07:54 ./opt/helloworld/
-rwxrwxr-x wanglin/wanglin 8304 2023-01-11 07:53 ./opt/helloworld/hello
-rw-rw-r-- wanglin/wanglin 100 2023-01-11 07:53 ./opt/helloworld/hello.c
- 安裝打好的deb包
$ sudo dpkg -i helloworld-0.1-all.deb
Selecting previously unselected package helloworld.
(Reading database ... 208913 files and directories currently installed.)
Preparing to unpack helloworld-0.1-all.deb ...
Unpacking helloworld (0.1) ...
Setting up helloworld (0.1) ...
此時/opt/helloworld/hello和hello.c 就安裝在/opt/helloworld目錄下了
檢測安裝效果
- 查看包安裝
$ dpkg -l helloworld
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=======================-================-================-===================================================
ii helloworld 0.1 all my deb test
- 檢測/opt/helloworld目錄
$ ls /opt/helloworld/
hello hello.c$ sudo /opt/helloworld/hello
hello world
- 查看包的安裝信息
$ dpkg -s helloworld
Package: helloworld
Status: install ok installed
Maintainer: WangLin <email@163.com>
Architecture: all
Version: 0.1
Description: my deb test
- 查看/var/lib/dpkg/status中的記錄
$ cat /var/lib/dpkg/status|grep helloworld -A 5
Package: helloworld
Status: install ok installed
Maintainer: WangLin <email@163.com>
Architecture: all
Version: 0.1
Description: my deb test
- 查看deb包安裝了哪些文件
$ dpkg -L helloworld
/.
/opt
/opt/helloworld
/opt/helloworld/hello
/opt/helloworld/hello.c