[clue] seeking advice cleaning up root

Raymond DeRoo rderoo at deroo.net
Sun Mar 20 13:44:06 MDT 2011


Chris--

> I'm curious who has "strongly discouraged" using symbolic links in
> this way?  I know that sysadmins each have habits and tastes of choice
> but I can think of no performance or maintenance reason why use of
> symbolic links in this way should cause a problem.

Who, would be the authors of the original program. The people who, in theory, know how it operates best. When program make changes to the data directory they expect there to be an actual directory and not a symlink. Having a symlink as the data directory caused some real issue in MySQL 3.23.40-.48 because the server was making permission modifications, which didn't work. So, as a former MySQL trainer and support engineer, I can tell you it is *STRONGLY* discouraged.

> Personally I prefer using links in this way and letting the
> application config remain default.

... I would never agree with such a statement. Nor would anyone I know who does high performance computing. Typically I start by throwing out the config that comes with most software is it is woefully inadequate to do the needed job.

> Using symbolic links has the advantage of minimizing change tracking
> required at upgrade time.  Symbolic links are a stable feature of the
> OS and can be safely used to isolate applications and users from
> complexities of the deployment history.

"stable feature"? They have different behaviors than actual files and directories ( yes, which is also file... ). When a program asks for the permissions of a given path ( directory ) and it resolves to a symlink, what permissions are returned? ;) Other examples also exist ( such as performance ), but the simple point is they have *different*, and at times unexpected, behaviors.

They can make *some* things easier, but in typically they are sort cuts used as a bypass for doing the job correctly. When I rollout a deploy it's typically to about 800 hosts, sometimes as many as 10.000. The deploy software understands how the various configuration files work and what is expected in them. Though I have not touched each and every one of the machines, I can assure you none of them use symlinks to relocation core component directories. 

> As always: programmers solve complexity by adding layers of indirection.

Good programmers do not. They take the time to learn enough about the OS to write the most optimal code available. ( For the record: Most of us who write in bash, perl, php, python, ruby etc are *scripters* and not programmers. )

.r ( and let the flames being! )



More information about the clue mailing list