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 http://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 http://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>