Solaris 打包保留文件时间戳

Solaris 打包保留文件时间戳

我已经创建 Solaris 软件包用于应用程序部署一段时间了,但最近我意识到部署的文件的时间戳与软件包的创建时间相同。查看各种手册页(pkgproto、prototype、attributes 等),我似乎找不到任何选项来指示 pkgproto/pkgmk 保留文件时间戳。

有人知道如何确保文件时间戳在 Solaris 包中保留吗?

答案1

文件的时间戳在软件包内的 pkgmap 文件中指定。例如:

1 f none man/man1m/sudo.1m 0444 root root 36805 40001 1329918580

最后一列是文件将获得的时间戳。创建软件包时,pkgmk 在运行期间会使用该文件的时间戳。因此,它确实会保留时间戳。如果您希望文件具有软件包安装时的时间戳,则必须编辑 pkgmap 文件并将所有时间戳替换为当前时间:

cd <pkg directory>
T=`perl -e 'print time()'`; sed -e 's/ [0-9][0-9]*$/'$T'/' pkgmap > pkgmap.new
mv pkgmap pkgmap.old
mv pkgmap.new pkgmap
cd ..
pkgadd -d . <pkg name>

相关内容