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:

[mas...@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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions- [email protected]"

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

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[email protected]"

Reply via email to