<cjwatson> // IsMounted - Returns true if the mount point is mounted /*{{{*/
<cjwatson> // ---------------------------------------------------------------------
<cjwatson> /* This is a simple algorithm that should always work, we stat the mount point
<cjwatson> and the '..' file in the mount point and see if they are on the same device.
<cjwatson> By definition if they are the same then it is not mounted. This should
<cjwatson> account for symlinked mount points as well. */
<cjwatson> if /cdrom is bind-mounted from the same device then that algorithm would fail
<cjwatson> though I don't see why a symlink to something on the same device would be any better
<cjwatson> so, while this looks like a plausible guess, it could do with some verification
<cjwatson> oh, hmm now, apt is running in the live CD root filesystem not in /target
<cjwatson> maybe it just needs to be configured to use /target/cdrom
<cjwatson> you might try something like http://paste.ubuntu.com/23063/
<cjwatson> I'm not entirely sure that will work but it makes a twisted kind of sense
Paste from cjwatson at Thu, 26 Jun 2008 07:03:31 +0100
=== modified file 'scripts/install.py'
--- scripts/install.py 2008-04-23 21:25:05 +0000
+++ scripts/install.py 2008-06-26 11:07:52 +0000
@@ -954,6 +954,13 @@
};
}""") apt_conf_nmc.close()
+ # Configure python-apt separately. Leaving it at /cdrom normally
+ # works, but can lead to problems if /cdrom is bind-mounted from a
+ # directory on the same device.
+ apt_pkg.Config.Set("APT::CDROM::NoMount", "true")
+ apt_pkg.Config.Set("Acquire::cdrom::mount", "/target/cdrom")
+ apt_pkg.Config.Set("Acquire::cdrom::/target/cdrom/::Mount", "true")
+ apt_pkg.Config.Set("Acquire::cdrom::/target/cdrom/::UMount", "true")
dbfilter = apt_setup.AptSetup(None, self.db)
ret = dbfilter.run_command(auto_process=True)
<cjwatson> // IsMounted - Returns true if the mount point is mounted /*{{{*/ ------- ------- ------- ------- ------- ------- ------- ------- ------ paste.ubuntu. com/23063/
<cjwatson> // -------
<cjwatson> /* This is a simple algorithm that should always work, we stat the mount point
<cjwatson> and the '..' file in the mount point and see if they are on the same device.
<cjwatson> By definition if they are the same then it is not mounted. This should
<cjwatson> account for symlinked mount points as well. */
<cjwatson> if /cdrom is bind-mounted from the same device then that algorithm would fail
<cjwatson> though I don't see why a symlink to something on the same device would be any better
<cjwatson> so, while this looks like a plausible guess, it could do with some verification
<cjwatson> oh, hmm now, apt is running in the live CD root filesystem not in /target
<cjwatson> maybe it just needs to be configured to use /target/cdrom
<cjwatson> you might try something like http://
<cjwatson> I'm not entirely sure that will work but it makes a twisted kind of sense
Paste from cjwatson at Thu, 26 Jun 2008 07:03:31 +0100
=== modified file 'scripts/ install. py'
apt_conf_ nmc.close( ) Config. Set("APT: :CDROM: :NoMount" , "true") Config. Set("Acquire: :cdrom: :mount" , "/target/cdrom") Config. Set("Acquire: :cdrom: :/target/ cdrom/: :Mount" , "true") Config. Set("Acquire: :cdrom: :/target/ cdrom/: :UMount" , "true")
--- scripts/install.py 2008-04-23 21:25:05 +0000
+++ scripts/install.py 2008-06-26 11:07:52 +0000
@@ -954,6 +954,13 @@
};
}""")
+ # Configure python-apt separately. Leaving it at /cdrom normally
+ # works, but can lead to problems if /cdrom is bind-mounted from a
+ # directory on the same device.
+ apt_pkg.
+ apt_pkg.
+ apt_pkg.
+ apt_pkg.
dbfilter = apt_setup. AptSetup( None, self.db) run_command( auto_process= True)
ret = dbfilter.