On Thu, Jul 05, 2018 at 08:18:08AM -0400, Jonathan Billings
wrote:> The /var/run symlink to /run is part of the 'filesystem' package,
and
> has existed as a symlink since 7.0.1406 was released:
>
> $ rpmls -l
vault.centos.org/7.0.1406/os/x86_64/Packages/filesystem-3.2-18.el7.x86_64.rpm
|grep /var/run
> lrwxrwxrwx root root /var/run
More specifically, the 'filesystem' package creates and symlinks the
/var/run directory as part of the pretrans scriptlet (which is a lua
script):
$ rpm -q --scripts
vault.centos.org/7.0.1406/os/x86_64/Packages/filesystem-3.2-18.el7.x86_64.rpm
pretrans scriptlet (using <lua>):
--# If we are running in pretrans in a fresh root, there is no /usr and
--# symlinks. We cannot be sure, to be the very first rpm in the
--# transaction list. Let's create the needed base directories and symlinks
--# here, to place the files from other packages in the right locations.
--# When our rpm is unpacked by cpio, it will set all permissions and modes
--# later.
posix.mkdir("/usr")
posix.mkdir("/usr/bin")
posix.mkdir("/usr/sbin")
posix.mkdir("/usr/lib")
posix.mkdir("/usr/lib/debug")
posix.mkdir("/usr/lib/debug/usr")
posix.mkdir("/usr/lib64")
posix.symlink("usr/bin", "/bin")
posix.symlink("usr/sbin", "/sbin")
posix.symlink("usr/lib", "/lib")
posix.symlink("usr/bin", "/usr/lib/debug/bin")
posix.symlink("usr/lib", "/usr/lib/debug/lib")
posix.symlink("usr/lib64", "/usr/lib/debug/lib64")
posix.symlink("../.dwz", "/usr/lib/debug/usr/.dwz")
posix.symlink("usr/sbin", "/usr/lib/debug/sbin")
posix.symlink("usr/lib64", "/lib64")
posix.mkdir("/run")
posix.symlink("../run", "/var/run")
posix.symlink("../run/lock", "/var/lock")
return 0
posttrans scriptlet (using /bin/sh):
#/bin/sh dependency should not be problem for posttrans
#we need to restorecon on some dirs created in %pretrans or by other packages
restorecon /var/run 2>/dev/null >/dev/null || :
restorecon /var/lock 2>/dev/null >/dev/null || :
restorecon -r /usr/lib/debug/ 2>/dev/null >/dev/null || :
restorecon /sys 2>/dev/null >/dev/null || :
restorecon /boot 2>dev/null >/dev/null || :
restorecon /proc 2>dev/null >/dev/null || :
restorecon /dev 2>dev/null >/dev/null || :
--
Jonathan Billings <billings at negate.org>