Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 2009 11:39:40 -0400
From:      John Almberg <jalmberg@identry.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: links vs real directories
Message-ID:  <751DE4C1-73B1-4430-8373-A57B59676BBC@identry.com>
In-Reply-To: <AA5A8761-794A-427B-9E9F-2872BD746038@identry.com>
References:  <AA5A8761-794A-427B-9E9F-2872BD746038@identry.com>

next in thread | previous in thread | raw e-mail | index | archive | help

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.
>
> so:
>
> 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@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/ 
> master/shared/config
> drwxr-xr-x  4 master  master   512 Mar 16 11:06 db
> etc...
>
>
> 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@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions- 
> unsubscribe@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:

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in  
`gem_original_require': no such file to load -- application  
(MissingSource     File)

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..

-- John




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?751DE4C1-73B1-4430-8373-A57B59676BBC>