是否有可能从 Debian 软件包的 postinst 脚本访问文件?
通常,我会使用类似dpkg -c path/to/deb
, 但在 postinst 脚本中调用 apt/dpkg 是不可能的,对吧?
目前,我使用 安装包dpkg -i path/to/deb
,稍后该包将由存储库提供。
我正在努力实现的目标:
dpkg -i myPackage_1.0-0_all.deb
Run Code Online (Sandbox Code Playgroud)
解压文件(尤其是 *.specialTag)
postinst 运行一个脚本,该脚本适用于系统上的所有 *.specialTag 文件(使用find / -name *.specialTag
)。
如果系统上没有旧的 *.specialTag 文件,这工作正常,因为:如果我从 中删除 *.specialTag 文件myPackage_1.0-0_all.deb
,创建一个新版本myPackage_1.0-1_all.deb
并安装它,那么 *.specialTag 文件仍在系统上。我的 postinst 脚本会找到它并使用它。
所以我的想法不是遍历系统上的所有文件,而是只遍历我带来的那些文件 myPackage_1.0-1_all.deb
但是我需要在 postinst-script 中调用 dpkg/apt
谢谢。
要获取包安装的文件列表,您可以使用dpkg -L YOUR-PACKAGE-NAME
,这在postinst
. (因此,如果您的包被命名,example
则命令为dpkg -L example
.)
dpkg -L
看来即使在上班/var/lib/dpkg/lock
锁文件被锁定,并且在任何情况下,锁未期间举行postinst
。
您还可以使用该文件/var/lib/dpkg/info/YOUR-PACKAGE-NAME.list
,该文件是dpkg
在安装包的过程中创建的,然后再运行它的postinst
. (因此,如果您的包被命名example
为文件/var/lib/dpkg/info/example.list
。)
以上两个都给出了包含在包中的所有文件(以及根目录之前的所有父目录,您可能需要根据您在做什么来过滤掉)的列表。
归档时间: |
|
查看次数: |
3737 次 |
最近记录: |