English

Error: Bad location for < library > - Library not set or found

Solution or Workaround

Summary

The LIBRARIAN command returns this message:

Bad location for <coverage>.
Library not set (or found).

Cause

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

Solution

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:

Code:
unix%> arc
Arcplot: &sys echo $ARCHOME
/pop7/arc70/solaris1/arcexe70
Arcplot:

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.