[OS X TeX] Finally we are grown up

Anthony Morton amorton at fastmail.fm
Sun Nov 19 05:18:09 CET 2006


> It is all very nice mingling with the crowd if the crowd consists 
> essentially of yourself and your family. As soon as strangers get in, 
> things quickly become much less cosy. Enrico mentioned the problem of 
> dependency on a particular version of a library, and this is 
> impossible to solve if several third-party applications install their 
> libraries in the same default places /usr/local/lib and /Library. 
> These default places rather quickly become ugly garbage dumps where 
> after a while you don't even know where the things came from that you 
> find there.

Not sure I really see the problem here.  If a bunch of third-party apps 
between them depend on (say) two specific versions of some library, 
then having those two versions installed in /usr/local/lib with a 
generic name symlinked to the latest version is quite simply the most 
convenient and simple approach to use.  If your installed software 
really does depend on these different versions then the only 
alternative is to have these diffferent library versions installed in 
different locations, which IMO is even worse than having them all 
safely tucked away in /usr/local/lib where they're easy to find.

And since everything in /usr/local is entirely under your control as 
the local admin, there's nothing to stop you deleting the entire 
/usr/local tree and then reinstalling just the software you currently 
use.  (Of course it's better to use package uninstallers since some 
software also has side-effects like setting your PATH, but that's 
another issue.)

What would be useful is a way of easily walking through all your 
installed binaries and reporting which are linked against specific 
libraries.  That would tell you when it's safe to clean out an old 
version of a library that's cluttering up your filesystem.

> - If your ImageMagick is linked against a certain version of 
> libfreetype, then replacing that version of libfreetype by one with a 
> lower compatibility version (although the main library version may be 
> the same) will make the ImageMagick binaries crash. Replacing it with 
> a later version may or may not work, depending on backward 
> compatibility of the new library (and backward compatibility was not 
> one of the strong points of freetype2 in the past). Likewise, 
> installing libfreetype with i-installer may make other applications 
> crash that are expecting a different version in the default places.

At least with dynamically linked libraries, it's entirely possible to 
have two different versions of the same library in the same directory.  
What you do need is a simple check when installing a library that you 
don't overwrite any symlinks that point to a later version.  Of course, 
this is required no matter where you install your libraries, unless 
every piece of software maintains local copies of all third-party 
libraries it links against.

> - The current release 2.2.1 of freetype2 is broken on OSX/Intel when 
> the old-mac-fonts feature is activated. A patch is known, and you may 
> be incorporating it into your release or not, I don't know. But if 
> some other application or a standalone install of freetype2 installs 
> the "official" libfreetype-2.2.1, you will get crashes that you cannot 
> control.

Again, an intelligent (i-)installer would seek confirmation upon 
discovering that libfreetype-2.2.1 already exists on your system, 
particularly if the modification date is later than the date on the 
library it's installing.

> Or one uses a package manager like Fink or MacPorts (FKA DarwinPorts) 
> to control everything outside of the system. This is similar to what 
> every Linux distribution is doing. It is also where i-installer seemed 
> to be heading recently ("everything" then meaning "everything a 
> typical latex user might be interested in"), but it is much too big a 
> task for a single person to manage, it needs a community of > 
> developers.

The problem with this of course being that if your chosen package 
manager doesn't provide the particular piece of software you need (or 
doesn't provide the most up-to-date version) then you're left high and 
dry.  You're dependent on a particular subset of the developer 
community.

Cheers,
Tony M.
------------------------- Info --------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
          & FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/




More information about the macostex-archives mailing list