[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