Error: Bad location for < library > - Library not set or found
Solution or Workaround
The LIBRARIAN command returns this message:
Bad location for <coverage>. Library not set (or found).
This error may occur when:
- The pathname in the LIBRARIES file is incorrect - The pathname is correct but points to a non-existent or incorrect database directory - The pathname can not be correctly interpreted - The LIBRARIES file cannot be read due to file permissions - $ARCHOME is not pointing to the correct installation directory
LIBRARIAN finds a library by checking the library NAME and LOCATION items on the INFO file LIBRARIES. The NAME item stores the library name, and the LOCATION item stores the path to the library's database directory. The LIBRARIES file is stored in the INFO directory $ARCHOME/tables.
Check the LIBRARIES file by typing the following:
Code: unix%>cd $ARCHOME/tables unix%>../programs/info ARC DIR SEL LIBRARIES LI
The above commands display each library name and database directory location. For example:
Code: ENTER COMMAND> DIR TYPE NAME INTERNAL NAME NO. RECS LENGTH EXTERNL DF LIBRARY.DATA ARC002DAT - 160 DF LIBRARIES ARC003DAT 2 160
ENTER COMMAND >SEL LIBRARIES READ ONLY ACCESS! 2 RECORD(S) SELECTED ENTER COMMAND >LI 1 NAME =REDPROP LOCATION =$SAMPLESHOME/MISC/REDLANDS/LIB/PROPERTY/DATABASE 2 NAME =TEST-LIB2 LOCATION =/support/qatest/aussie/b6/database
Often the problem is leading blanks or typographical errors in the LOCATION item. Use the INFO UPDATE command to re-enter the LOCATION without any leading blanks and with the correct path. Note that the path begins with an environment variable or with a slash (/) and ends with DATABASE.
The casing of the LOCATION entry is not important since the LIBRARY and LIBRARIAN commands will convert the pathname to lower case. Because of this, it is important that the UNIX pathname definition is all in lower case, otherwise the software will not be able to find the DATABASE directory.
Installing a new version of ArcInfo will overwrite the $ARCHOME/tables directory causing the entries in the LIBRARIES file to be lost. In such case, use the INFO commands ADD or UPDATE to re-enter the LIBRARIES NAME and LOCATION information into the new LIBRARIES file. If you saved the old LIBRARIES file using the INFO SAVE command, use INFO COPY to replace the new LIBRARIES file. You can also do a UNIX copy of the appropriate previous versions arcxxxnit and arcxxxdat files into the new version's TABLES directory. Be careful to match the numbers in arcxxxdat to what is expected in the newly installed TABLES directory. Also make sure the 8.3 file naming format is used if the newly installed TABLES directory uses this format.
It is possible that the links in the DATABASE directory pathname may be set incorrectly. For example: the .cshrc file may have set 'sampleshome' instead of 'SAMPLESHOME'; thus, the operating system will not interpret the LIBRARIES LOCATION value $SAMPLESHOME/redlib/database.
Make sure you have read permission to the LIBRARIES file to be able to execute the LIBRARIAN command, This means you must have read access to the two operating files (arc003dat and arc003nit in the above example) that are the INFO file LIBRARIES.
Make sure $ARCHOME is set correctly when the ARC LIBRARIES, the LIBRARIAN LIBRARY, the ARCPLOT LIBRARY, or the ARCEDIT LIBRARY command is entered. Do this by bringing up the appropriate prompt and echoing the ARCHOME environment variable. If the ARCPLOT LIBRARY command is at issue, verify by doing:
If the ARC LIBRARIAN command is at issue, do the following:
Code: unix%> arc Arc: echo $ARCHOME Submitting command to Operating System ... /pop7/arc70/solaris1/arcexe70 Arc:
To identify and locate the library, the executing ARC software uses the echoed pathname to find the TABLES directory. Is this is not correct, run the correct ArcInfo version, or put the library name and location in this TABLES directory, or make sure $ARCHOME is set properly.