VirtualBox shared folder makes cmake_symlink_library fail
June 20, 2017
In the morning I decided to do some work on my Markdown-to-site project, a project that will eventually generate this website. At this early stage the project required me to install the Perl module CommonMark:
$ cpanm CommonMark --> Working on CommonMark Fetching http://www.cpan.org/authors/id/N/NW/NWELLNHOF/CommonMark-0.240100.tar.g z ... OK Configuring CommonMark-0.240100 ... N/A ! Configure failed for CommonMark-0.240100. See /home/john/.cpanm/work/149796912 4.7545/build.log for details.
The log contains the following line, explaining the reason of failure:
libcmark 0.21.0 or higher not found at Makefile.PL line 16.
Next, as I am developing on Ubuntu 17.04, I tried to install
sudo apt-get install libghc-cmark-dev
But this did not solve the issue. I am not sure why not, but decided to just build the required library from source. Also because the version that comes with Ubuntu 17.04 might already be outdated.
So I cloned the CommonMark parsing and rendering library repository as follows.
git clone https://github.com/jgm/cmark.git
make complained that
cmake could not be found I installed this
program as follows:
sudo apt-get install cmake
And another speed bump was hit: the make process failed unexpectedly. Output edited for brevity follows:
$ make mkdir -p build; \ cd build; \ cmake .. \ -G "Unix Makefiles" \ -DCMAKE_BUILD_TYPE= \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON : : [ 64%] Linking C shared library libcmark.so CMake Error: cmake_symlink_library: System Error: Read-only file system src/CMakeFiles/libcmark.dir/build.make:562: recipe for target 'src/libcmark.so.0 .27.1' failed make: *** [src/libcmark.so.0.27.1] Error 1 make: *** Deleting file 'src/libcmark.so.0.27.1' : : Makefile:32: recipe for target 'cmake_build' failed make: *** [cmake_build] Error 2
A Google search for "CMake Error: cmake_symlink_library: System Error:
Read-only file system" (without the quotes) gave as a first result:
0015837: cmake_symlink_library fails on shared folders in Virtualbox with linux vm and linux host - MantisBT
which made clear that this error has to do with me using
VirtualBox Shared folder. Hence,
the solution was as easy as moving the
cmark directory out of the
mounted directory and running:
make make test sudo make install
After these three commands I could install the
distribution without any problem:
$ cpanm CommonMark --> Working on CommonMark Fetching http://www.cpan.org/authors/id/N/NW/NWELLNHOF/CommonMark-0.240100.tar.g z ... OK Configuring CommonMark-0.240100 ... OK Building and testing CommonMark-0.240100 ... OK Successfully installed CommonMark-0.240100 1 distribution installed