Bad Installers - wednesday 2012-02-22 1909 last modified 2012-02-22 1909
Categories: Nerdy
TrackBacks Sent:

The OS X 10.7.3 update blew up and ate most of a day. Delaying installing the update well after its release had the benefit of others' experience with the failure, so there appeared to be a way in via safe mode (hold shift on boot until the Apple logo shows up). This managed to get by the boot kernel panic but revealed several gaps in the install, including no audio. So I went to reinstall with the Combo Update, which is apparently the preferred way to go for operating system updates. The installer log usefully reported it was hanging trying to move non-existent files in /var/db/dyld to /var/run. While contemplating whether to just touch the files in their destination, the looked-for files actually appeared in place, so I moved them - and the installer finished correctly. I would not say that "just worked."

Another frustrating installation mechanism also ate up hours. Cydia for jailbroken iOS devices uses the Debian package management system to manage software installs. With little help in error reporting on why an app I was writing suddenly wouldn't install after prior successes, I ended up locating the source for dpkg and trolling through code to figure out what was going on. Apparently in 1.14.25 (and others, perhaps?), there's a character limit to file names in a .deb. If it goes over 100 characters, preceding path segments get chopped until it falls under the limit. But that produces a name for a file that doesn't exist, and so it fails with "unable to create [truncated file name]" messages, saying "No such file or directory exists." The truncated file name looks fine if you don't know the full path, making things confusing. The only solution is to shorten path segment names, because XCode tends to generate some rather long names outside your control. A more appropriate solution would be to update Cydia's dpkg to a version that isn't stupid.

You must login to leave a comment


No TrackBacks for this entry.