DEBIAN目录下以.ex结尾的文件介绍

我们知道运 行dh_make 后 , 程序源代码目录下新出现了一个名为debian的子目录。
这个目录中有很多用于定制软件包行为的文件,需要我们编辑。
其中最重要的几个是control、changelog、copyright 和rules,它们是所有软件包必须的。
然而,大家不难发现同时还生成了一些以.ex结尾的文件postinst.ex, preinst.ex, postrm.ex, prerm.ex.

这些文件叫做维护者脚本。它们位于软件包的控制区域中,并且在你安装、升级 或删除软件包时,dpkg会调用他们。
这四个文件分别有什么作用呢?

这些是软件包安装前后自动运行的可执行脚本. 统称为控制文件, 是Deian 软件包的"控制"部分。

preinst

Debian软件包(“.deb”)解压前执行的脚本, 为正在被升级的包停止相关服务,直到升级或安装完成。(成功后执行 ‘postinst’ 脚本)。

postinst

主要完成软件包(“.deb”)安装完成后所需的配置工作. 通常, postinst 脚本要求用户输入, 和/或警告用户接受默认值, 应该记得按要求返回重新配置这个软件。一个软件包安装或升级完成后,postinst 脚本驱动命令, 启动或重起相应的服务。

prerm

停止一个软件包的相关进程, 要卸载软件包的相关文件前执行。

postrm

修改相关文件或连接, 和/或卸载软件包所创建的文件。
当前的所有配置文件都可在 /var/lib/dpkg/info 目录下找到, 与 foo 软件包相关的命名以 “foo” 开头,以 “preinst”, “postinst”, 等为扩展。这个目录下的 foo.list 文件列出了软件包安装的所有文件。Debian里用apt-get安装或卸载软件时,会常发生前处理或后处理的错误,这时只要删除对应的脚本文件,重新执行安装或卸载即可。
今天简单写了一个安装后脚本,用来创建软链接。对shell脚本不太熟悉,代码可能写的笨,应该有更简单的方法,希望大家多多指教~~~
功能简介:在/usr/lib下创建lib.so.1.0.0库文件的三个软链接。首先将/usr/lib下三个软链接文件删除,然后再重新创建链接文件。代码如下:

#!/bin/sh
#create symlink
libfile="/usr/lib/lib.so.1.0.0"
sudo sh -c "rm /usr/lib/lib.so"
sudo sh -c "rm /usr/lib/lib.so.1"
sudo sh -c "rm /usr/lib/lib.so.1.0"
sudo sh -c "ls $libfile | xargs -i ln -s $libfile /usr/lib/lib.so"
sudo sh -c "ls $libfile | xargs -i ln -s $libfile /usr/lib/lib.so.1"
sudo sh -c "ls $libfile | xargs -i ln -s $libfile /usr/lib/lib.so.1.0"

补充一句,这些些以.ex结尾的文件postinst.ex, preinst.ex, postrm.ex, prerm.ex.是模板文件,根据实际需求改进后,需要将ex后缀去掉。