我创建了一个 bash 脚本,它将一些数据存储到 mysql 数据库中。然后我使用deb
该脚本创建文件,并通过创建本地 apt 存储库使其可供安装。
现在,我可以在任何系统中安装该包(apt-get install packgename
),但问题是,每次在每个系统上安装后,我必须手动为该脚本创建 mysql 数据库。
有什么方法可以在安装过程中运行创建 mysql 数据库的脚本(因为这是系统的一次性要求)。我听说过类似post
和pre
脚本的东西,但在谷歌上搜索时没有任何想法。你们能提供一些好的教程吗?
答案1
假设您有.deb
本地文件(如果没有,您可以通过下载它apt-get download package
)。
解压你的 deb 文件:
ar x package.deb
当前文件夹中现在有几个文件。data.tar.gz
是包含包内容的文件。但我们感兴趣的是control.tar.gz
包含后脚本和前脚本的文件。因此,在另一个文件夹中解压控制文件:
tar xfs control.tar.gz
现在,您要搜索的是名为 的脚本postinst
,该脚本在安装包后执行。如果该脚本不存在,只需创建它,并使用rwxr-xr-x
权限 (755)。在该脚本中放置您的 db create 命令,并让脚本以 结尾,表示exit 0
安装成功或exit 1
失败。
完成所有操作后,tar
文件将返回到控制文件。在文件夹中使用该命令创建control.tar.gz
文件。
tar -czf control.tar.gz *
现在,使用这些新文件重新创建 deb 包,使用以下命令:
ar r package.deb debian-binary control.tar.gz data.tar.gz
就是这样!