Summary

Synaptic's "Add CD-ROM" option is not nearly as flexible as it could be. The feature makes too many expectations, such as what medium is being used to store a repository. What if someone wants to update from a DVD, a flash drive, a disk image or a directory already on their computer? "Add CD-ROM" still does work, but it needs to be tricked into working by linking /cdrom to whatever directory contains the packages.

The feature is obviously more powerful than it allows itself to be so it should behave more flexibly. It should not make any assumptions as to what medium is being used to store packages.

The current interface also feels clunky for two reasons:

Firstly, it is strange that adding a repository stored locally is any different from adding one that is available via the Internet. It makes sense that the two probably work very differently, but putting them both under the same "Add Repository" interface via Synaptic's menu would make more sense than having the two methods under completely different menu titles!

Secondly, the "Add CD-ROM" interface seems a lot less automatic than it could be. Why can't it detect this for me? Why do I have to tell Synaptic about a disk which has just been mounted right under its nose? Why do I have to follow a precise order of operations, where I first open the "Add CD-ROM" dialog /then/ put the disk in the drive, in order for it to work?

Rationale

To update to Feisty Herd 5, I saved the Alternate CD ISO onto a USB flash drive using another computer, then I mounted the ISO at /media/cdrom using the command line.

At this point I was aware of Synaptic's "Add CD" option and somewhat willing to use it (after it had worked upgrading from Herd 3 to 4 using a CD), so I opened Synaptic and navigated to Edit->Add CD-ROM. There are a number of problems with the operation of this particular dialog. Firstly, it unmounts whatever was in /cdrom originally. This is confusing in, for example, this situation:

Back to my adventures: What I did not realize at first was that Synaptic is VERY picky about where this new CD repository is. It checked /cdrom for the repository, so since I mounted my ISO image to /media/cdrom, it did not read my disk. I eventually figured out to mount it to /media/cdrom0 (which is what /cdrom links to for me), then I went to "Add CD-ROM" in Synaptic. It unmounted my image and told me to "insert a disk in the drive", I mounted it again, and all went well.

This is not nearly as nice as it could be!

Use cases

Implementation

Comments

Cleaner addition of local package repositories

Yes, I'm adding a comment to my own spec at the same date as its original creation. Laugh at me if you wish, but remember this: I'm keeping the doctor away.

After using the install CD to update, it lost its usefulness. In fact, since my "CD" was actually a flash drive, the ISO was deleted. However, Synaptic still listed it (with a very long-winded title!) as an origin for packages and I have unfortunate memories of it telling me to insert CDs which I may not possess anymore in order to download packages. This is alright, in fact kind of cool that it keeps a documentation of which of my disks contains what information, but it is certainly not pretty that the only way to get rid of those disks from my list of repositories is to edit sources.list!

If local package repositories were automatically detected and examined, only when inserted Synaptic could perhaps get away with removing them from sources.list when they are no longer present, simply to keep things tidy.

An alternative would be for the repositories to be remembered, but not cluttering the interface. If someone tries to install a package that Synaptic knows is available on a local storage medium instead of over the Internet, Synaptic could suggest that the package is available locally if the user wishes to insert the medium it is known to be stored on. However, that storage medium would only be explicitly selectable and browseable if it was inserted. (Instead of always being listed).

The rationale for this is that if the user wants to install a package from a particular CD he will probably insert it himself.

--DylanMccall (March 4, 2007)

Fall back gracefully

At present, Synaptic insists that the user insert the CD containing the necessary packages and does not offer any obvious choice not to. This is a significant hindrance! When a wanted source is not immediately available, the system should offer to try a different source such as the Internet or a flash drive known to have the necessary packages.


CategorySpec

AddLocalRepositorySpec (last edited 2008-08-06 16:15:49 by localhost)