關於「dpkg --remove」和「dpkg --purge」

前提

做這個實驗前,先了解這篇『如何製作「deb檔(Debian Package)」』。

測試環境

以下測試是在「Xubuntu 14.04 64位元」。

執行步驟

準備工作環境

建立工作環境資料夾

$ mkdir ~/Templates/remove-and-purge-package -p

切換到工作環境資料夾

$ cd ~/Templates/remove-and-purge-package

建立套件最上層資料夾

建立一個資料夾「try」,這個是「套件最上層資料夾」,所有的檔案都要放在這裡面

$ mkdir try -p

建立「DEBIAN」資料夾

建立「try/DEBIAN」資料夾,這個資料夾是建立「Debian Package」的依據資料夾。

$ mkdir try/DEBIAN -p

建立「control」檔

建立「try/DEBIAN/control」檔,這個檔是建立「Debian Package」的依據檔案。

$ touch try/DEBIAN/control

撰寫「control」內容

執行執行下面的指令產生

echo 'Package: try' > try/DEBIAN/control
echo 'Version: 0.1' >> try/DEBIAN/control
echo 'Architecture: all' >> try/DEBIAN/control
echo 'Description: This is a test package.' >> try/DEBIAN/control
echo 'Maintainer: developer <developer@hell.heaven>' >> try/DEBIAN/control

確認觀看剛剛產生的內容

$ cat try/DEBIAN/control

顯示

Package: try
Version: 0.1
Architecture: all
Description: This is a test package.
Maintainer: developer <developer@hell.heaven>

建立「Maintainer Script」

建立「try/DEBIAN/prerm」

echo '#!/bin/sh -e' > try/DEBIAN/prerm
echo "echo 'prerm'" >> try/DEBIAN/prerm

確認觀看「try/DEBIAN/prerm」的內容

$ cat try/DEBIAN/prerm

顯示

#!/bin/sh -e
echo 'prerm'

建立「try/DEBIAN/postrm」

echo '#!/bin/sh -e' > try/DEBIAN/postrm
echo "echo 'postrm'" >> try/DEBIAN/postrm

確認觀看「try/DEBIAN/postrm」的內容

$ cat try/DEBIAN/postrm

顯示

#!/bin/sh -e
echo 'postrm'

建立「Conffiles」

建立「try/DEBIAN/conffiles」

echo "/usr/share/try/try.conf" >> try/DEBIAN/conffiles

確認觀看「try/DEBIAN/conffiles」的內容

$ cat try/DEBIAN/conffiles

顯示

/usr/share/try/try.conf

建立「try.conf」

建立「try/usr/share/try」這個資料夾

$ mkdir try/usr/share/try -p

建立「try/usr/share/try/try.conf」這個檔案

$ touch try/usr/share/try/try.conf

觀看目錄結構

觀看一下剛剛建立的目錄結構

$ tree try

顯示

try
├── DEBIAN
│   ├── conffiles
│   ├── control
│   ├── postrm
│   └── prerm
└── usr
    └── share
        └── try
            └── try.conf

4 directories, 5 files

製作「Debian Package」

執行

$ dpkg -b try

會顯示

dpkg-deb: error: maintainer script `prerm' has bad permissions 664 (must be >=0555 and <=0775)

更改「try/DEBIAN/prerm」權限

$ chmod 755 try/DEBIAN/prerm

再次執行

$ dpkg -b try

會顯示

dpkg-deb: error: maintainer script `postrm' has bad permissions 664 (must be >=0555 and <=0775)

更改「try/DEBIAN/postrm」權限

$ chmod 755 try/DEBIAN/postrm

再次執行

$ dpkg -b try

會顯示

dpkg-deb: building package `try' in `try.deb'.

測試安裝

執行安裝

$ sudo dpkg -i try.deb