After reviewing your additional comments, I believe I have potential solution. It looks like you are trying to install some Perl modules via the default Perl shell, cpan
. As part of the installation process, the make
utility is being executed. This utility is heavily used for compiling and building source from C
and C++
source code, along with other languages.
The make
utility is trying to call some executable i686-linux-gnu-ld
which is a linker, see ld. A linker is a utility used in C
programming for linking (combining) multiple compiled object files into a single executable binary. make
is calling this utility as some sort of build process. Instead of calling i686-linux-gnu-ld
it should probably just be calling ld
. The only thing I am not sure about is why it is using the full name of the utility instead of ld
.
I can think of two solutions. The first would be to update the make file to use the correct name for the linker. I'm not sure how you would do this when it is being installed via cpan
since it is downloading a package and executing the make file before you have a chance to modify it. The other option is to create a symbolic link from the incorrect name and path of ld
that the make file is using to the correct path /opt/bin/ld
. This will result in ld
being called when i686-linux-gnu-ld
is called. Also, I forgot to mention it earlier but the which
command will tell you where an executable / command is located on your shell's path.
The Stack Overflow post, How to symlink a file in Liunx?, gives a good explanation of how to create a symlink. You need to create a symlink to point to the correct name and path of the linker. To do so run the following command:
ln -s /opt/bin/ld /usr/bin/i686-linux-gnu-ld
Depending on the permissions of these directories you may need to run this command under a account with elevated permissions or via sudo
. I apologize for this post being rather long and verbose. I just wanted to explain my solution in detail. I hope this helps. Please let me know if this doesn't resolve the problem.
edit: fixed typo in the command.