symlink confusion

Bruce Labitt bruce.labitt at myfairpoint.net
Sat Nov 14 16:29:04 EST 2015


On 11/14/2015 04:07 PM, Joshua Judson Rosen wrote:
> Bruce Labitt <bruce.labitt at myfairpoint.net> wrote:
>> Pardon my denseness (density?), but what you have shown is still
>> confusing to me.
>>
>> ln -s thing-I-want-a-symlink-to where-I-want-to-put-it  <-- I don't
>> understand this :(
>>
>> In my case, I want any reference to cc to point to
>> /opt/compiler_cuda/gcc.  It turns out /opt/compiler_cuda/gcc will be a
>> symlink as well.  Eventually the cc reference will end up pointing to
>> gcc-4.9, since CUDA7.5 does not support gcc5.
>>
>> Is it
>> 1)  ln -s cc /opt/compiler_cuda/gcc      or
>> 2)  ln -s /opt/compiler_cuda/gcc cc
>>
>> Which one does what I want?  Seriously confused.
> I suspect you don't quite want either of those, actually.
>
> It sounds a little like you're expecting "ln -s" to create a shell
> command-alias or something (you never said *what directory* you want
> to contain the "cc" symlink, but that's important!). It just creates a file.
> In order for that file to be recognised as a command, you need to put it
> in one of the directories that the shell searches ($PATH).
>
> IF you want to used a symlink to create a "cc" command, you probably want
> either:
>
>          ln -s /opt/compiler_cuda/gcc /usr/local/bin/cc
>
> ... or:
>
>          ln -s /opt/compiler_cuda/gcc ~/bin/cc
>
> ... depending on whether you're doing this for a system-wide default
> or just for yourself. But I'm surprised that you're trying to do it
> this way at all.
>
> I usually just do something more like:
>
>          export CC=/opt/compiler_cuda/gcc
>
> ... and then let the makefiles pick up that environment-variable.
> Even if your Makefile is using implicit rules, it'll still pick up
> and use the ${CC} value from your environment.
>
> Are you actually using a Makefile or something that actually,
> *explicitly*, has "cc" hardcoded rather than using "${CC}"?
>
> I'd expect that you don't actually want to make a CUDA compiler
> the default compiler for *all software* you build,
> which is probably what you'll do by naming it "cc"
> and putting it into your search-path....
>
>

Original link:  from 
http://askubuntu.com/questions/693145/installing-cuda-7-5-toolkit-on-ubuntu-15-10

/I wanna share my experience on installing CUDA 7.5 (in order to use 
with Theano) on Ubuntu 15.10. /

//

 1.

    /I installed Ubuntu 15.10 and the video driver (352.41) from the
    "Additional Drivers" tab;/

 2.

    /Installed few dependencies like //|nvidia-modprobe|//(fix
    permissions problems), and for the samples compiling
    //|freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev|/

 3.

    /And because it needs GCC 4.9: //|sudo apt-get install gcc-4.9
    g++-4.9|//, then made symlinks in //|/opt/compiler_cuda|//(created
    the folder with an arbitrary name of my choice) as follows://
    / /|$ ls -la /opt/compiler_cuda/|//
    / /|lrwxrwxrwx 1 root root 22 Nov 2 16:14 cc ->
    /opt/compiler_cuda/gcc|//
    / /|lrwxrwxrwx 1 root root 16 Nov 2 16:13 g++ -> /usr/bin/g++-4.9|//
    / /|lrwxrwxrwx 1 root root 16 Nov 2 16:12 gcc -> /usr/bin/gcc-4.9|//
    //Registered //|update-alternatives|//with://
    / /|sudo update-alternatives --install /usr/bin/gcc gcc
    /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5|//
    / /|sudo update-alternatives --install /usr/bin/gcc gcc
    /usr/bin/gcc-4.9 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9|//
    /

 4.

    /Downloaded "runfile (local)" 15.04 version, from //CUDA 7.5
    Downloads <https://developer.nvidia.com/cuda-downloads>//; and
    installed with://
    / /|sudo sh cuda_7.5.18_linux.run --silent --toolkit --override|//
    / /|sudo sh cuda_7.5.18_linux.run --silent --samples --override|//
    //and appended in //|.bash_aliases|//(.bashrc reads it)://
    / /|export PATH=/usr/local/cuda-7.5/bin:$PATH|//
    / /|export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH|/

 5.

    /Appended //|compiler-bindir = /opt/compiler_cuda|//in
    //|nvcc.profile|//, so nvcc can use it./


I'm trying to do step 3.  I have seen similar instructions in the past.  
I may have done something like this in the past, but, I am temporarily 
suffering from CRS.  I believe this will work, although as you have 
stated, it may not be optimal.  For Wily Ubuntu 15.10, the default gcc 
is 5.2.  Nvidia is stuck at 4.9, hence the update alternatives command 
in step 3.

Is there any reason step 3) won't work?

To make the symlink |cc -> /opt/compiler_cuda/gcc, what is the command?

Does *ln -s  /usr/bin/cc /opt/compiler_cuda/gcc*  do what the author 
states above?  Or do I have it backwards?  Let's just say this is a 
dyslexic moment. Please confirm if this makes sense, or I should be 
doing something else.

As far as I know, nvcc has the smarts to use nvcc to compile cuda code, 
and gcc/g++ for everything else.

Best regards
-Bruce


|
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.gnhlug.org/pipermail/gnhlug-discuss/attachments/20151114/ad7fdbe0/attachment.html 


More information about the gnhlug-discuss mailing list