- Download the SDK from ESRI's website http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api
- Extract the SDK, and put the contents of the directory in a known location, I used
~/local/filegdb. Here's an example path to one of the files:~/local/filegdb/lib/libFileGDBAPI.dylib - I use
~/local/filegdbso it can stay isolated in it's own place. You can put it anywhere, but the next few steps might be different. - Go into the directory containing the FileGDB SDK, e.g.
~/local/filegdb - ESRI built these dylib's using
@rpath's, so to avoid needing to mess withDYLD_LIBRARY_PATH, I updated the@rpath's usinginstall_name_tool. There might be a more elegant way to handle this. If so, comments are welcome! - Here are the commands I used to patch the dylibs, this is not required if you want to use
DYLD_LIBRARY_PATHyourself:
install_name_tool -id "$(pwd)/lib/libFileGDBAPI.dylib" ./lib/libFileGDBAPI.dylib
install_name_tool -change "@rpath/libfgdbunixrtl.dylib" "$(pwd)/lib/libfgdbunixrtl.dylib" ./lib/libFileGDBAPI.dylib
install_name_tool -id "$(pwd)/lib/libfgdbunixrtl.dylib" ./lib/libfgdbunixrtl.dylib
- To verify the paths, use
otool -L lib/libFileGDBAPI.dylibandotool -L lib/libfgdbunixrtl.dyliband make sure the paths are correct - We need to make some changes to the
configure.inscript for GDAL now, since the FileGDB config script hasn't yet been updated for the OSX FileGDB SDK - In the GDAL source root, edit the
configure.inand replace it with: - In the GDAL source root, run
./autogen.shto re-create theconfigurescript - Now run the
configurescript:
./configure --with-fgdb="$HOME/local/filegdb"
- The
configurescript has many options, here is the configure line I use for my custom build: https://gist.github.com/2005091, if you have other GDAL builds on your machine (e.g. homebrew) that you don't want to interfere with, I recommend at least using--prefix="$HOME/local"or some other place on your machine besides/usr/local(default for homebrew) or/opt/local(default for MacPorts). - If it worked properly, you should see in the output of
configureindicatingyesfor FileGDB support - Build it:
`make && make install`
- If everything worked, it's time to test it out! Here's a test file: http://trac.osgeo.org/gdal/raw-attachment/wiki/FileGDB/test_fgdb.gdb.zip
which ogr2ogr # make sure it's the correct ogr2ogr first
ogrinfo --formats # list out the formats
ogrinfo ~/Downloads/test_fgdb.gdb
#convert FileGDB directly to PostGIS
ogr2ogr -f "PostgreSQL" PG:"dbname='somedatabase' host='localhost' port='5432'" ~/Downloads/test_fgdb.gdb
# save your current GDAL so you can put it back if you want cp /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL_orig # symlink the custom GDAL build to the place QGIS looks rm /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL ln -s ~/local/lib/libgdal.dylib /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL
Note: to select one in QGIS, go to Add Vector Layer -> select the Directory radio button -> Select your .gdb directory
I had some problems opening certain FileGDB's. I believe the API only supports FileGDB's created with ArcGIS 10.0+.
More info: http://trac.osgeo.org/gdal/wiki/FileGDB
I found a world of pain getting FileGDB to work using ESRI drivers, but the good news is that as of GDAL 1.11 an open driver has been included. So now you can use homebrew to install it.
It currently requires a bit of tweaking, but here's my instructions - takes 5 mins.
http://scottdavey.net/article/Installing-GDAL-1.11-on-OSX-using-Homebrew-227