[OS X] first notes on leopard

Andy Jacobson andy.jacobson at noaa.gov
Fri Jan 25 14:27:11 EST 2008


Howdy,

I'm playing with fink, ferret, etc. on Leopard using a colleague's  
Intel machine.  I have a few brief notes on the experience at this  
time, and will have more later.

X11 has been changed to a completely new codebase in Leopard.  The  
new codebase comes from X.org and allegedly has set the stage for a  
much more modern and supportable X11 in the long term at the expense  
of having created some annoyances in the short term.  To remove the  
default launching of xterm when X11 is started, you need to  
substitute 'xterm' from the app_to_run key of the ~/Library/ 
Preferences/org.x.X11_launcher.plist file with some other innocuous  
X11 code.  You can do this from the command line using  
'defaults' (see below) or if you have the plist editor that comes  
with Apple's developer tools, just 'open /Library/Preferences/ 
org.x.X11_launcher.plist', and navigate to the app_to_run key and  
edit it as desired.  According to the discussions at http:// 
discussions.apple.com/thread.jspa?messageID=6056316, there has to be  
an X11-using program in this key, and the idea is to find one that  
doesn't create an annoyance (e.g. of annoyance: xeyes).  'xlsclients'  
appears to be the current favorite:

defaults write org.x.X11_launcher app_to_run /usr/X11/bin/xlsclients

Fink is pretty functional as far as I can tell.  You have to download  
http://downloads.sourceforge.net/fink/fink-0.27.8.tar.gz (see http:// 
www.finkproject.org/download/index.php?phpLang=en) manually.   Untar  
it, and run the bootstrap script with the single argument /sw:

tar zxvf fink-0.27.8.tar.gz
cd fink-0.27.8
./bootstrap /sw

A nice feature, this script actually asks you now whether you want to  
enable the 'unstable' repository (you *do* want unstable). This is a  
big win...no more futzing about with the /sw/etc/fink.conf file.

For Leopard there y is no fink binary repository at this point, so  
'apt-get install'  will fail and everything needs to be done with  
'fink install', which means that it takes a significant amount of  
time.  We've installed ghostscript, gv, wget, imagemagick, and lynx  
so far without any difficulty.  Next up are netcdf, hdf, g77, and  
gcc42.  This latter is needed to get gfortran.  Note that Apple's  
Developer Tools installs gcc-4.0.1 with no fortran frontend, so this  
gcc-4.2 from fink will exist as a second compiler set.

I have always installed fink's 'findutils' to get the 'locate'  
command, but Apple has included it in Leopard already, yay.  One side- 
effect of installing findutils was the installation of anacron, a  
cron work-alike that was smart about machines being put to sleep.  I  
don't know whether/if Apple has a smart solution to this yet.

Netinfo is gone.  This was Apple's old way of dealing with user and  
group configurations, and many other settings.  I guess this sort of  
thing all falls under the umbrella term of "directory services",  
which includes LDAP and other solutions to managing user accounts  
across a network.  I don't have the expertise to understand all of  
this, but one particular task about which I've written in the past  
has suddenly become much easier to deal with.  This is the  
automounter system, which not only requires configuring network  
drives but also (in a unix environment anyway), setting up the userid  
and groupid so that they agree with the server-side IDs and thus give  
correct file-access permissions.

First, get the numeric user and group ID from the server.  Assuming  
it's a linuxy machine you can type 'id' to get this info.  Then on  
your machine set up an account with those user and group IDs.  You do  
this from the System Preferences > Accounts preference pane (that's  
new).  Unfortunately, changing an existing account's IDs does not  
update the file ownerships on disk (especially in the home  
directory).  If you've already got an account that you've used for a  
while with wrong (e.g. 501) userids, then this means you'll have to  
log in to a *different* admin account, update the userid/groupid for  
the account in the Accounts pref pane, then use a shell command to  
change the ownership on the files in question.  I like to use 'find'  
to do this (this has been written about before here).

If for instance, I created a user 'andy' on a machine and it has 501  
as the userid, and I want to change it to userid 1000 with group id  
300, I might do:

find /Users -user 501 -exec chown 1000:300 {} \;

After that is done, you want to log back in as the user (e.g. above,  
andy) and fire up the new "Directory Utility" (in /Applications/ 
Utilities iirc).  In the "Services" pane, check the "BSD Flat File  
and NIS" box.  This allows you to add your particular group's name  
in /etc/group.  For us and using the example above, 300 is the group  
ID, and the group name is ccg.  We added the line

ccg:*:300:john,andy

to /etc/group.

In the Directory Utility pane called "Mounts", you just add a URL- 
style line for each filesystem exported by your NFS server.  In our  
case, the server ccgg.cmdl.noaa.gov exports a filesystem called ccg,  
and we have the following line in the Mounts box:

nfs://ccgg.cmdl.noaa.gov/ccg	/Volumes/ccgg/ccg

It was up to us where to put this mount, and we used the following  
logic.  In /Volumes, create a directory for each server in question.   
In this case, ccgg.  Then each filesystem gets a subdirectory (which  
you do *not* need to create).


Best Regards,

Andy



--
Andy Jacobson
andy.jacobson at noaa.gov

NOAA Earth System Research Lab
Global Monitoring Division
325 Broadway
Boulder CO 80305

303/497-4916





More information about the OSX mailing list