summaryrefslogtreecommitdiffstats
path: root/urpm/sys.pm
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@mandriva.org>2004-12-24 10:08:39 +0000
committerRafael Garcia-Suarez <rgarciasuarez@mandriva.org>2004-12-24 10:08:39 +0000
commit8ffb2ea28196ddeca75ef14eb356ee53ef08bc72 (patch)
tree911e43d68bcce54aa332c525b8f356a9b8f3dc6e /urpm/sys.pm
parentb99d49170f0d0d9c39481f1925e66ec3ca17bade (diff)
downloadurpmi-8ffb2ea28196ddeca75ef14eb356ee53ef08bc72.tar
urpmi-8ffb2ea28196ddeca75ef14eb356ee53ef08bc72.tar.gz
urpmi-8ffb2ea28196ddeca75ef14eb356ee53ef08bc72.tar.bz2
urpmi-8ffb2ea28196ddeca75ef14eb356ee53ef08bc72.tar.xz
urpmi-8ffb2ea28196ddeca75ef14eb356ee53ef08bc72.zip
As suggested by Giuseppe Ghibo, fail early if an essential filesystem
is mounted read-only
Diffstat (limited to 'urpm/sys.pm')
-rw-r--r--urpm/sys.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/urpm/sys.pm b/urpm/sys.pm
index 97f37435..1ccc3b6e 100644
--- a/urpm/sys.pm
+++ b/urpm/sys.pm
@@ -107,4 +107,17 @@ sub find_mntpoints {
@mntpoints;
}
+#- checks if the main filesystems are writeable for urpmi to install files in
+sub check_fs_writable () {
+ open my $mounts, '/proc/mounts' or do { warn "Can't read /proc/mounts: $!\n"; return 1 };
+ local *_;
+ while (<$mounts>) {
+ (undef, our $mountpoint, undef, my $opts) = split ' ';
+ if ($opts =~ /\bro\b/ && $mountpoint =~ m!^(/|/usr|/s?bin)$!) {
+ return 0;
+ }
+ }
+ 1;
+}
+
1;