Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm running under Ubuntu but using a shared drive which is NTFS formatted. I've got blender sitting in a folder (it's the 2.66RC build with some trivial python customisations.) I'm calling blender from a script, which is why I want a contained, local copy of the program that won't get updated.

The whole thing runs cheerfully on my desktop but the minute I move it to the shared drive, I run into problems. First I have to skip all the symlinks because NTFS doesn't support them (I have to skip libGL.so and libGLU.so, along with their respective *.so.1 selves.)

Then I can't run the blender binary directly because you can't change NTFS file permissions with chmod. So I have to run it using sudo bash blender-2.66RC/blender, at which point I get the message,

cannot execute binary file

Is what I'm trying to do even possible? It would mean a lot less organisational hassle if I could work off the shared drive rather than keep copying everything over to my desktop and back.

share|improve this question

migrated from blender.stackexchange.com Jul 9 '13 at 15:57

This question came from our site for people who use Blender to create 3D graphics, animations, or games.

    
You can't run a binary with Bash. Try running it with ld.so. –  tripleee Jul 9 '13 at 20:31

2 Answers 2

Try creating a sparse file/disk on the NTFS share, format the sparse disk as ext3 or whatever works happily with your Blender app.

Sparse file/disk management manual from Arch Linux: https://wiki.archlinux.org/index.php/Sparse_file

share|improve this answer

sudo bash blender-2.66RC/blender only makes sense if blender-2.66RC/blender is a bash script. Is it? Run file blender-2.66RC/blender (or sudo file blender-2.66RC/blender if necessary) to check.

If the problem is that you have the permission to read the blender file but not execute it, then sudo won't help. What you need is to call the loader for the blender program and pass it the blender file as an argument. If blender is a script, the loader is the interpreter, e.g. bash blender-2.66RC/blender if it's a bash script, python blender-2.66RC/blender if it's a Python script, etc. If blender is a binary, then the loader is the dynamic loader: /lib/ld-linux.so.2 blender-2.66RC/blender for a 32-bit x86 binary, or /lib/ld-linux-x86-64.so.2 blender-2.66RC/blender for a 64-bit x86 binary.

If blender is executable but you don't have the permission to access it, then a plain sudo blender-2.66RC/blender is what you need. If blender is neither executable nor readable, combine the two workarounds, e.g. sudo /lib/ld-linux.so.2 blender-2.66RC/blender.


This is a rather strange situation. Hard disk space is cheap. Instead of fiddling with a removable drive (slow, unreliable), copy the files to your hard disk. You'll be able to set the permissions correctly, and you'll waste a lot less time fiddling with a removable drive, and you won't lose files when you drop the disk.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.