blob: 0fcd77ec9480d3fbed7ab26074b0936bec2cd6d5 (
plain)
- #!/bin/sh
- #
- # /usr/local/sbin/aptdpkgro
- # Put together and tweaked by Jonas Smedegaard <dr@jones.dk>
- # 2001-2006
- #
- # $Id: aptdpkgro,v 1.2 2006-07-16 12:33:59 jonas Exp $
- #
- # Auto re-mounting of a readonly /usr
- # Put the following in a file below /etc/apt/apt.conf.d:
- #
- # // Auto re-mounting of a readonly /usr
- # // Based on mail from Anthony Towns <aj@azure.humbug.org.au>
- # // http://lists.debian.org/debian-devel/2001/debian-devel-200111/msg00212.html
- #
- # // This is the intended thing:
- # // DPkg {
- # // Pre-Invoke {"mount -o remount,rw /usr";};
- # // Post-Invoke {"mount -o remount,ro /usr";};
- # // };
- #
- # DPkg {
- # Pre-Install-Pkgs {"/usr/local/sbin/aptdpkgro";};
- # Pre-Invoke {"mount -o remount,rw /usr";};
- # Post-Invoke {"/usr/local/sbin/aptdpkgclean; mount -o remount,ro /usr";};
- # };
- #
- pathmatch="^/usr"
- while read debname; do
- pkg=$(dpkg --info $debname | sed -n 's/^ Package: *//p' | head -n 1)
- (dpkg -L "$pkg" 2>/dev/null || true) | grep "$pathmatch" |
- while read file; do
- [ -f "$file" -a ! -L "$file" ] || continue
- dir=`dirname "$file"`;
- base=`basename "$file"`;
- inode=`find "$file" -printf "%i\n"`
- [ -L "$dir/.${base}.dpkg-ro-used.$inode" ] || continue
- (cd "$dir" && ln "$base" ".${base}.dpkg-ro-used.$inode")
- echo "$dir/.${base}.dpkg-ro-used.$inode"
- done >>/var/lib/my_ro_hack.todel
- done
|