links vs real directories
jalmberg at identry.com
Mon Mar 16 08:39:43 PDT 2009
On Mar 16, 2009, at 11:22 AM, John Almberg wrote:
> I always thought that links to real directories were pretty much
> the same as real directories, but I've just discovered a situation
> where they are not and I'm wondering if I'm doing something wrong...
> I have a Ruby on Rails application running on a FreeBSD server. All
> Rails apps use the same directory structure, that consists of an
> application directory, plus a number of subdirectories. One of
> these sub directories is called 'config'.
> I would like to move this config directory out of the main Rails
> app directory, and then add a link from the app directory to the
> moved config directory.
> app --> config
> will become
> app --> config(link) --> config
> Basically, what I'm doing is:
> cd ~/app # now in directory with real 'config' dir
> mv config ~/shared/config
> ln -s ~/shared/config config
> That moves the directory and creates a functional link to it (I
> tested it), but Rails doesn't like it and refuses to run the app.
> The permissions are correct, I believe:
> [master at on:current]> ls -l
> total 34
> ... snip ...
> drwxrwxr-x 3 master master 512 Mar 16 11:06 bin
> drwxrwxr-x 3 master master 512 Mar 16 11:06 components
> lrwxr-xr-x 1 master master 26 Mar 16 11:07 config -> /home/
> drwxr-xr-x 4 master master 512 Mar 16 11:06 db
> So, I guess a link is NOT exactly equivalent to a directory. At
> least not the way I am doing it.
> I'm guessing I'm making a real newbie mistake, so if anyone can set
> me straight, I'd appreciate it.
> Thank: John
> freebsd-questions at freebsd.org mailing list
> To unsubscribe, send any mail to "freebsd-questions-
> unsubscribe at freebsd.org"
A little more information on this... from the Rails log, I can see
that a Ruby script in the config directory cannot load ('require') a
needed file because it can't find it:
`gem_original_require': no such file to load -- application
It looks like this require statement is using a relative path, like
'../path/to/file'. Does '..' not work properly with a soft link? In
other words, '..', should mean ~/app, but since the config directory
is really in '~/shared', perhaps '..' translates to '~/shared'? That
would cause the problem finding the file.
Is there a way around this problem?
Digging in man ls, right now..
More information about the freebsd-questions