is symbolic link failure cmake related issue in virtualbox?
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
is symbolic link failure cmake related issue in virtualbox?
I try to compile nlopt package on a linux virtualbox installed in a
Windows 7 host. nlopt makes use of cmake for its build/compilation. After
step cmake, I was told to run make, it then returns the following error
messages,
CMake Error: cmake_symlink_library: System Error: Read-only file system
CMake Error: cmake_symlink_library: System Error: Read-only file system
CMakeFiles/nlopt.dir/build.make:1264: recipe for target 'libnlopt.so.0.9.0'
failed
make[2]: *** [libnlopt.so.0.9.0] Error 1
make[2]: *** Deleting file 'libnlopt.so.0.9.0'
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/nlopt.dir/all' failed
make[1]: *** [CMakeFiles/nlopt.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
Is this a cmake related issue? Since virtualbox cannot set up symbolic link
within a windows host the way linux defines its soft links, is there way to deal with this failure? I am totally new to cmake (but am trying to study it now) and cannot track into it. Any advice, especially step by step guide on how to deal with it would be highly appreciated!
Unless you have your VirtualBox set up weird, it generally uses a file on your computer for the "hard drive" of the VM. Then that space is "formatted" to whatever filesystem you choose. In that way, as far as Linux is concerned, if you formatted it as an ext4 filesystem, you get an ext4 filesystem with all the bells and whistles that offers, including symlinks.
I imagine your issue is more related to the "Read-only file system" error at the beginning of the output. What filesystem are you running in the VM and what user are you trying to build nlopt as?
Thanks for the new perspective into the problem! The following is what is returned,
john@vb ~/work/software/nlopt/build $ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 19G 7.8G 10G 44% /
which seems to show the filesystem for the booting disk is indeed ext4. I never had virtualbox set up symbolic link correctly, don't know why it is the case.
Are you using the SlackBuild to build this or compiling it manually? All SlackBuilds are only tested by running it as root.
If you're building it manually, are you doing it as root or your regular user?
Thank you SO SO much!! Now I finally understand what you are saying, and installed nlopt through system packaging service, which is more reliable and easier to maintain than my manual installation (I guess/hope). Also, I realized that I didn't use sudo to install it, which might be why the error message shows up, but I didn't bother to try it.
I will try using the library and come over here for help again if I run into further questions!
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.